{
  "openapi": "3.0.1",
  "info": {
    "title": "ZipRecruiter Jobs Scraper | Salary, Company & Location Filters",
    "description": "ZipRecruiter scraper for US job listings: titles, companies, locations, salary ranges, benefits, full descriptions, GPS coordinates and apply links. Search by keyword and city or paste job URLs, filter by job type, date and salary. 50 jobs in 29 seconds, 45 fields each, no account required.",
    "version": "1.0",
    "x-build-id": "r4GB4WAZfwyzVcVm8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~ziprecruiter-scraper-ppe/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-ziprecruiter-scraper-ppe",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/silentflow~ziprecruiter-scraper-ppe/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-ziprecruiter-scraper-ppe",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/silentflow~ziprecruiter-scraper-ppe/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-ziprecruiter-scraper-ppe",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "ZipRecruiter URLs to scrape directly. Supports job pages and search result pages.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "jobIds": {
            "title": "Job IDs",
            "type": "array",
            "description": "ZipRecruiter job ids to scrape in full, one per row (e.g. \"8oBtB8PKt-ZdE7QsFt7vZw\"). Use the id field from this actor's results to re-read specific jobs. A full job URL works too.",
            "items": {
              "type": "string"
            }
          },
          "searches": {
            "title": "Search queries",
            "type": "array",
            "description": "Keywords to search on ZipRecruiter (e.g. \"software engineer\", \"data analyst\", \"nurse\").",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or region to search in (e.g. \"New York, NY\", \"San Francisco, CA\", \"Remote\")."
          },
          "countryName": {
            "title": "Country",
            "enum": [
              "",
              "canada",
              "uk",
              "australia",
              "india",
              "france",
              "germany",
              "spain",
              "italy",
              "new zealand",
              "singapore",
              "israel",
              "philippines"
            ],
            "type": "string",
            "description": "Which ZipRecruiter site to search. Only the United States and Canada sites are still online. The other options fall back to the United States site.",
            "default": ""
          },
          "sort": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "date",
              "distance",
              "salary"
            ],
            "type": "string",
            "description": "Sort order for search results.",
            "default": "relevance"
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "",
              "full_time",
              "part_time",
              "contract",
              "internship",
              "temporary"
            ],
            "type": "string",
            "description": "Filter by employment type.",
            "default": ""
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "anytime",
              "today",
              "3days",
              "week",
              "2weeks",
              "month"
            ],
            "type": "string",
            "description": "Filter by posting date.",
            "default": "anytime"
          },
          "salaryRange": {
            "title": "Salary range",
            "type": "string",
            "description": "Minimum salary filter (e.g. \"50000\" for $50K+, \"100000\" for $100K+).",
            "default": ""
          },
          "companyName": {
            "title": "Company name filter",
            "type": "string",
            "description": "Only keep jobs from companies matching this name (case-insensitive, partial match).",
            "default": ""
          },
          "maxItems": {
            "title": "Maximum number of jobs",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "The maximum total number of jobs to save.",
            "default": 50
          },
          "maxPages": {
            "title": "Maximum pages per search",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of result pages to scrape per search query (~20 jobs per page).",
            "default": 5
          },
          "includeDetails": {
            "title": "Scrape full job details",
            "type": "boolean",
            "description": "Visit each job page to collect full data: description, salary, benefits, coordinates, apply link, company details. Each job whose full detail page is read is billed as a separate \"job details\" event, on top of the job itself. Turn it off to get search-card rows only (title, company, location, salary when listed, link): faster and cheaper. Job page URLs given in Start URLs and job ids given in Job IDs are always read in full.",
            "default": true
          },
          "concurrency": {
            "title": "Concurrent workers",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of parallel workers for scraping job pages. Higher values are faster but use more memory.",
            "default": 5
          },
          "requestTimeout": {
            "title": "Request timeout (seconds)",
            "minimum": 10,
            "maximum": 120,
            "type": "integer",
            "description": "HTTP request timeout in seconds.",
            "default": 30
          },
          "debugMode": {
            "title": "Debug mode",
            "type": "boolean",
            "description": "Activate to see detailed logs.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}