{
  "openapi": "3.0.1",
  "info": {
    "title": "Indeed Jobs Scraper",
    "description": "Scrape Indeed.com job listings with salaries, company ratings, descriptions, and remote work info. Full JSON output, fast, residential-proxy-ready.",
    "version": "0.1",
    "x-build-id": "1RuCnvS6DySeiY9cE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cirkit~indeed-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cirkit-indeed-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/cirkit~indeed-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cirkit-indeed-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/cirkit~indeed-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cirkit-indeed-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",
        "properties": {
          "position": {
            "title": "Search keywords or position",
            "type": "string",
            "description": "What to search for on Indeed. Example: 'python developer', 'senior data scientist', 'registered nurse'. Combine multiple terms with a space. Used together with `location` and `country` to build the search. If you only provide `startUrls`, leave this empty."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, ZIP, or 'remote'. Example: 'Austin, TX', '94103', 'remote'. Leave blank to search the whole country."
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "CA",
              "GB",
              "AU",
              "DE",
              "FR",
              "NL",
              "IT",
              "ES",
              "BR",
              "MX",
              "IN",
              "IE",
              "SG",
              "HK",
              "NZ",
              "PL",
              "SE",
              "AT",
              "BE",
              "CH",
              "DK",
              "FI",
              "GR",
              "HU",
              "JP",
              "KR",
              "NO",
              "PT",
              "RO",
              "ZA",
              "TH",
              "TR",
              "AE",
              "AR",
              "CL",
              "CO",
              "CR",
              "EC",
              "PE",
              "UY",
              "VE",
              "BH",
              "EG",
              "IL",
              "KW",
              "LU",
              "MA",
              "NG",
              "OM",
              "PA",
              "PH",
              "PK",
              "QA",
              "SA",
              "TW",
              "UA",
              "VN",
              "ID",
              "CZ",
              "CN"
            ],
            "type": "string",
            "description": "Two-letter country code. Indeed has dedicated country sites; this picks the right one. Defaults to US.",
            "default": "US"
          },
          "maxItemsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of jobs to scrape for each `position` keyword and each `startUrls` entry. Indeed itself caps any single search at about 1000 results; set this lower for cheaper runs, higher (with date splitting handled by Indeed automatically) for larger pulls.",
            "default": 100
          },
          "startUrls": {
            "title": "Start URLs (optional)",
            "type": "array",
            "description": "Alternative to `position` + `location`. Paste full Indeed search URLs (https://www.indeed.com/jobs?q=...&l=...) or individual job URLs (https://www.indeed.com/viewjob?jk=...). Each entry is scraped independently and capped by `maxItemsPerSearch`.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "parseCompanyDetails": {
            "title": "Parse company details and full descriptions",
            "type": "boolean",
            "description": "When ON, the scraper fetches each job's detail page to get the full HTML description, company logo, employer activity, and richer company info. When OFF, only the search results are returned (faster, ~3x cheaper). Default ON.",
            "default": true
          },
          "saveOnlyUniqueItems": {
            "title": "Save only unique jobs",
            "type": "boolean",
            "description": "Deduplicate by Indeed job key. Recommended ON. The same job often appears as both a sponsored and an organic listing on the same page.",
            "default": true
          },
          "fromage": {
            "title": "Max job age in days",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Only return jobs posted in the last N days. Common values: 1, 3, 7, 14. Leave blank for any age."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "",
              "date"
            ],
            "type": "string",
            "description": "Sort by `date` (newest first) or omit for Indeed's relevance ranking.",
            "default": ""
          },
          "radius": {
            "title": "Search radius (miles)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How far from `location` to expand the search. Default 25."
          },
          "jobType": {
            "title": "Job type filter",
            "enum": [
              "",
              "fulltime",
              "parttime",
              "contract",
              "temporary",
              "internship"
            ],
            "type": "string",
            "description": "Limit to one employment type.",
            "default": ""
          },
          "experienceLevel": {
            "title": "Experience level filter",
            "enum": [
              "",
              "entry_level",
              "mid_level",
              "senior_level"
            ],
            "type": "string",
            "description": "Filter to a specific seniority level.",
            "default": ""
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "When ON, only fully remote jobs are returned.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Number of parallel requests. Default 5 is safe; higher values speed up large runs but increase the chance of soft-blocks. Cap 20.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify proxy configuration. Residential proxies are strongly recommended; datacenter IPs get challenged faster.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}