{
  "openapi": "3.0.1",
  "info": {
    "title": "Indeed Job Scraper",
    "description": "Scrape Indeed job listings across 59 country storefronts by keyword or search URL. Every row carries title, company_name, salary_min, salary_max, latitude, longitude, skills, benefits and the full description_text. Export JSON, CSV or Excel, or pull it from the API.",
    "version": "2.0",
    "x-build-id": "ShSfIoPdz2IF9bzNC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/herus13~indeed-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-herus13-indeed-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/herus13~indeed-scraper/runs": {
      "post": {
        "operationId": "runs-sync-herus13-indeed-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/herus13~indeed-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-herus13-indeed-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": {
          "search_queries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Keywords to search on Indeed, one per entry. Each keyword returns every matching job up to `max_results`, with title, company, structured salary, location and the full description. Examples: `python developer`, `data scientist`, `product manager`. Provide at least one of `search_queries` or `search_urls`; leave empty to collect only the URLs you paste.",
            "items": {
              "type": "string"
            }
          },
          "search_urls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Ready-made Indeed search URLs, one per entry: apply the filters you want on Indeed, then paste the resulting address. Each URL returns every matching job up to `max_results`, and the country comes from the URL itself. Provide at least one of `search_urls` or `search_queries`; leave empty to search by keyword only.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IE",
              "DE",
              "FR",
              "IT",
              "NL",
              "ES",
              "AE",
              "AR",
              "AT",
              "BE",
              "BH",
              "BR",
              "CH",
              "CL",
              "CO",
              "CR",
              "CZ",
              "DK",
              "EC",
              "EG",
              "FI",
              "GR",
              "HK",
              "HU",
              "ID",
              "IL",
              "IN",
              "JP",
              "KR",
              "KW",
              "LU",
              "MX",
              "MY",
              "NG",
              "NO",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PH",
              "PK",
              "PL",
              "PT",
              "QA",
              "RO",
              "SA",
              "SE",
              "SG",
              "TH",
              "TR",
              "TW",
              "UA",
              "UY",
              "VN",
              "ZA"
            ],
            "type": "string",
            "description": "Indeed country storefront to search. It decides which site is queried, the language of the listings and the currency of every salary. Default US. Supported: US GB CA AU IE DE FR IT NL ES AE AR AT BE BH BR CH CL CO CR CZ DK EC EG FI GR HK HU ID IL IN JP KR KW LU MX MY NG NO NZ OM PA PE PH PK PL PT QA RO SA SE SG TH TR TW UA UY VN ZA. A pasted search URL carries its own country and ignores this setting.",
            "default": "US"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, postcode or `Remote` to narrow the search inside the chosen country. Examples: `New York`, `London`, `Remote`. Leave empty to search the whole country."
          },
          "job_type": {
            "title": "Job Type",
            "enum": [
              "",
              "full-time",
              "part-time",
              "contract",
              "temporary",
              "internship"
            ],
            "type": "string",
            "description": "Employment type a listing must advertise. Values: `full-time`, `part-time`, `contract`, `temporary`, `internship`. Leave empty for any type. Indeed applies the filter before results are returned, so a filtered run does not charge you for rows you would throw away."
          },
          "workplace_type": {
            "title": "Workplace Type",
            "enum": [
              "",
              "remote",
              "hybrid",
              "on-site"
            ],
            "type": "string",
            "description": "Where the work happens. Values: `remote` fully remote, `hybrid` part office part home, `on-site` at the employer's premises. Leave empty for any arrangement."
          },
          "date_posted": {
            "title": "Date Posted",
            "enum": [
              "",
              "24h",
              "3d",
              "week",
              "2weeks"
            ],
            "type": "string",
            "description": "How recent a posting must be. Values: `24h` the last day, `3d` the last three days, `week` the last seven days, `2weeks` the last fourteen days. Leave empty for any date. Pair `24h` with a daily schedule to collect only what is new."
          },
          "salary_min": {
            "title": "Minimum Salary (annual)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest advertised annual salary a listing must offer, in the currency of the chosen country — for example 80000 in the US. Minimum 0. Leave empty to include every listing, including the many that advertise no salary at all."
          },
          "fetch_descriptions": {
            "title": "Fetch Full Descriptions",
            "type": "boolean",
            "description": "Also collect each job's full description, in plain text and in HTML, as `description_text` and `description_html`. Default `true`. Set it to `false` for a quicker listing-only run when title, company, salary and location are all you need.",
            "default": true
          },
          "max_results": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Most jobs returned across every keyword and URL combined. Default 200, minimum 1, maximum 10000. Lower it to cap what a run costs; raise it to sweep a busy keyword to the end.",
            "default": 200
          },
          "request_delay": {
            "title": "Request Delay (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Seconds to wait between requests, to spread a long run out over time. Default 0, minimum 0, which runs at full speed inside the ceiling set by `max_requests_per_minute`.",
            "default": 0
          },
          "max_concurrency": {
            "title": "Max Concurrent Requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many requests may be in flight at the same time. Default 8, minimum 1, maximum 20. A higher number finishes a large run sooner; 4 to 10 suits most searches.",
            "default": 8
          },
          "max_requests_per_minute": {
            "title": "Max Requests Per Minute",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Ceiling on how many requests a run may send each minute. Default 60, minimum 1, maximum 600. Raise it to finish a wide search sooner, lower it to stretch a long run out.",
            "default": 60
          },
          "proxyUrls": {
            "title": "Your own proxy URLs (optional)",
            "type": "array",
            "description": "Leave empty: the run uses the residential proxy this actor ships with, included in the price of the run. To route the run through your own provider instead, add one gateway URL per entry, for example `http://user:pass@host:port` — works with any provider that issues URLs (DataImpulse, Bright Data, Oxylabs, Smartproxy, or your own). When set, these are used exactly as entered and nothing else is.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}