{
  "openapi": "3.0.1",
  "info": {
    "title": "Ziprecruiter Scraper",
    "description": "ZipRecruiter job scraper with search, filters, and detail enrichment. Extract titles, salaries, companies, locations, descriptions, and apply links across 13 countries. Filter by job type, posting date, and salary. Get 50+ structured fields per job including company profile and GPS coordinates.",
    "version": "1.0",
    "x-build-id": "64de6RDnSSY3Rkpjp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~ziprecruiter-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-ziprecruiter-scraper",
        "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/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-ziprecruiter-scraper",
        "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/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-ziprecruiter-scraper",
        "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"
                }
              }
            }
          },
          "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": [
              "",
              "uk",
              "canada",
              "australia",
              "india",
              "france",
              "germany",
              "spain",
              "italy",
              "new zealand",
              "singapore",
              "israel",
              "philippines"
            ],
            "type": "string",
            "description": "Country for job search. Leave empty for USA (default). Uses country-specific ZipRecruiter domains.",
            "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. Disable for faster listing-only scraping.",
            "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
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select the proxy to use for scraping."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}