{
  "openapi": "3.0.1",
  "info": {
    "title": "Indeed Scraper ($0.03 / 1,000 jobs)",
    "description": "Indeed jobs from 62 countries as JSON for $0.03 per 1,000 jobs: title, company, salary, full description and apply link. Filter by date, job type, experience, salary and remote, paste Indeed links, and get past 1,000 jobs per search with deep search. Batch runs or a live HTTP API.",
    "version": "0.1",
    "x-build-id": "AKj9dfbLiT9dWIcDq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/serpdata~indeed-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-serpdata-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/serpdata~indeed-scraper/runs": {
      "post": {
        "operationId": "runs-sync-serpdata-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/serpdata~indeed-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-serpdata-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Job titles, skills or companies to search for, one per line, such as \"registered nurse\". Indeed's operators work: title:(\"data engineer\"), company:Google, -intern. Leave empty to get every job in the location.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, postal code or region, such as \"Austin, TX\". Leave empty to search the whole country."
          },
          "country": {
            "title": "Country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "in",
              "de",
              "fr",
              "jp",
              "br",
              "mx",
              "it",
              "es",
              "nl",
              "be",
              "ch",
              "at",
              "sg",
              "hk",
              "ie",
              "nz",
              "ar",
              "bh",
              "cl",
              "cn",
              "co",
              "cz",
              "dk",
              "fi",
              "gr",
              "hu",
              "id",
              "il",
              "kw",
              "lu",
              "my",
              "ma",
              "no",
              "om",
              "pe",
              "ph",
              "pl",
              "pt",
              "qa",
              "ro",
              "sa",
              "za",
              "kr",
              "se",
              "tw",
              "tr",
              "ua",
              "ae",
              "ve",
              "vn",
              "cr",
              "ec",
              "eg",
              "ng",
              "pa",
              "pk",
              "th",
              "uy"
            ],
            "type": "string",
            "description": "Which Indeed site to search. Labels such as job types come back in English on every site.",
            "default": "us"
          },
          "maxJobsPerSearch": {
            "title": "Jobs per search",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many jobs to return for each search term or start URL. Indeed shows at most 1,000 jobs for one search; turn on deep search to get more.",
            "default": 100
          },
          "maxItems": {
            "title": "Maximum jobs in total",
            "minimum": 1,
            "type": "integer",
            "description": "Stop the run after this many jobs, across all searches. Leave empty for no limit."
          },
          "deepSearch": {
            "title": "Deep search (more than 1,000 per search)",
            "type": "boolean",
            "description": "When a search matches more than 1,000 jobs, split it by the time each job reached Indeed, in windows of under 1,000 jobs, to return up to Jobs per search. Each window is a separate request, so a large deep search takes longer.",
            "default": false
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Indeed links from any Indeed site and language: search pages with their filters (such as https://www.indeed.com/jobs?q=nurse&l=Texas or https://fr.indeed.com/emplois?q=comptable), job pages (viewjob?jk=…) and company job pages (/cmp/Google/jobs). Filters that cannot be used are listed in the log.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "fromDays": {
            "title": "Posted in the last (days)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Only jobs that reached Indeed in the last 1 to 30 days. Leave empty for any date."
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Only jobs of these employment types. Pick several to run one search per type. Permanent, casual and fixed term are mostly used outside the US.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "contract",
                "temporary",
                "internship",
                "permanent",
                "casual",
                "freelance",
                "seasonal",
                "fixedterm"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Permanent",
                "Casual",
                "Freelance",
                "Seasonal",
                "Fixed term"
              ]
            }
          },
          "experienceLevel": {
            "title": "Experience level",
            "enum": [
              "entry",
              "mid",
              "senior"
            ],
            "type": "string",
            "description": "Only jobs Indeed marks as entry level, mid-level or senior level."
          },
          "remote": {
            "title": "Remote",
            "enum": [
              "remote",
              "hybrid"
            ],
            "type": "string",
            "description": "Only remote jobs or only hybrid jobs."
          },
          "minSalary": {
            "title": "Minimum yearly salary",
            "minimum": 1,
            "maximum": 2000000000,
            "type": "integer",
            "description": "Only jobs paying at least this much a year in the site's currency, such as 60000. Indeed converts hourly pay to a yearly figure and counts its own salary estimates."
          },
          "radius": {
            "title": "Distance from location",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "How far from the location to search, 0 to 200. Indeed uses 25 when this is empty."
          },
          "radiusUnit": {
            "title": "Distance unit",
            "enum": [
              "miles",
              "km"
            ],
            "type": "string",
            "description": "Unit for the distance.",
            "default": "miles"
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "The order jobs are returned in.",
            "default": "relevance"
          },
          "saveOnlyUniqueItems": {
            "title": "Save each job once",
            "type": "boolean",
            "description": "Skip a job that an earlier search in this run already returned. Skipped jobs are not charged.",
            "default": true
          },
          "includeNoSalaryJob": {
            "title": "Include jobs without a salary",
            "type": "boolean",
            "description": "Turn off to keep only jobs with a stated or estimated salary.",
            "default": true
          },
          "onlyExternalJobs": {
            "title": "Only jobs that apply on the company site",
            "type": "boolean",
            "description": "Keep only jobs where Indeed does not take the application (no Easy Apply).",
            "default": false
          },
          "strictMatch": {
            "title": "Strict keyword match",
            "type": "boolean",
            "description": "Drop jobs whose title and description do not match the search term: every plain word, one side of an OR, and quoted phrases in full. Excluded words and company: are left to Indeed.",
            "default": false
          },
          "uniqueCompanies": {
            "title": "One job per company",
            "type": "boolean",
            "description": "Keep only the first job from each company.",
            "default": false
          },
          "resumeKeywords": {
            "title": "Resume keywords",
            "type": "array",
            "description": "Skills from your resume, one per line. Each job gets matchedKeywords, missingKeywords and keywordMatchPercent, so you can sort by fit.",
            "items": {
              "type": "string"
            }
          },
          "dedupeStoreName": {
            "title": "Skip jobs from earlier runs",
            "type": "string",
            "description": "Name a key-value store, such as daily-nurse-jobs. Jobs returned by runs with the same name in the last 90 days are skipped and not charged. Lowercase letters, digits and hyphens."
          },
          "jobKeys": {
            "title": "Job keys",
            "type": "array",
            "description": "Look up specific jobs by Indeed job key instead of searching, such as 5e5dafc2a80c214d (the jk= part of an Indeed job link). Works for expired jobs too.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}