{
  "openapi": "3.0.1",
  "info": {
    "title": "ZipRecruiter Jobs Scraper | Salary & Company Data",
    "description": "Collect ZipRecruiter job listings from the US and Canada by keyword and location. Get titles, companies, salary ranges, descriptions and application links when available. Filter by date, job type, remote status or ZipApply, then export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "cEb6VfXLfGFGj6JGF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datascraperes~ziprecruiter-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datascraperes-ziprecruiter-jobs-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/datascraperes~ziprecruiter-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-datascraperes-ziprecruiter-jobs-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/datascraperes~ziprecruiter-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-datascraperes-ziprecruiter-jobs-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",
        "required": [
          "keywords",
          "country"
        ],
        "properties": {
          "keywords": {
            "title": "Search keywords",
            "minItems": 1,
            "maxItems": 50,
            "type": "array",
            "description": "One job search phrase per item. Duplicate phrases are removed before the run.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            }
          },
          "country": {
            "title": "Search country",
            "enum": [
              "usa",
              "canada"
            ],
            "type": "string",
            "description": "Country used by ZipRecruiter. The public ZipRecruiter search endpoint supports the United States and Canada.",
            "default": "usa"
          },
          "location": {
            "title": "Location (optional)",
            "maxLength": 200,
            "type": "string",
            "description": "City, state, province, postal code, or other location text understood by ZipRecruiter. Leave empty for a country-wide search.",
            "default": null
          },
          "distanceMiles": {
            "title": "Search radius in miles",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Distance around the location. Use 50 miles for a broad search. Range: 1 to 100 miles.",
            "default": 50
          },
          "maxItemsPerQuery": {
            "title": "Maximum jobs per keyword",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Maximum unique jobs collected for each keyword, up to 60 (three public result pages). This is a limit, not a guarantee of available matches.",
            "default": 25
          },
          "maxTotalItems": {
            "title": "Maximum total jobs per run",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "Global output limit across all keywords, up to 3,000 (50 keywords x 60). Use this to control the maximum Dataset size and spend.",
            "default": 1000
          },
          "offset": {
            "title": "Result offset",
            "minimum": 0,
            "maximum": 59,
            "type": "integer",
            "description": "Skip this many results for every keyword. Offset plus maxItemsPerQuery cannot exceed 60.",
            "default": 0
          },
          "datePostedHours": {
            "title": "Posted within hours",
            "minimum": 0,
            "maximum": 720,
            "type": "integer",
            "description": "Return jobs published within this many hours. Use 0 for any age.",
            "default": 0
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "any",
              "fullTime",
              "partTime",
              "contract",
              "internship"
            ],
            "type": "string",
            "description": "Optional ZipRecruiter employment-type filter.",
            "default": "any"
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Return listings identified by ZipRecruiter as remote.",
            "default": false
          },
          "easyApplyOnly": {
            "title": "ZipApply only",
            "type": "boolean",
            "description": "Return only listings with an internal ZipApply flow. Applied locally after search; may reduce the number of returned jobs.",
            "default": false
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "markdown",
              "html",
              "plain"
            ],
            "type": "string",
            "description": "Format of the public job description in each Dataset item.",
            "default": "markdown"
          },
          "includeEmails": {
            "title": "Include public emails",
            "type": "boolean",
            "description": "Extract email addresses found in public job descriptions. Disabled by default.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}