{
  "openapi": "3.0.1",
  "info": {
    "title": "Indeed Jobs Scraper: Descriptions, Salaries, Benefits, No Login",
    "description": "Indeed job listings by keyword, location and country on 12 Indeed country sites, with no login or cookies: title, company, salary, job type, benefits, employer rating, posting date and optional full job descriptions. Goes past the one page Indeed shows visitors and reports each run's coverage.",
    "version": "0.1",
    "x-build-id": "odeIxRGTjIfLhxMlG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/charitable_trousseau~indeed-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-charitable_trousseau-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/charitable_trousseau~indeed-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-charitable_trousseau-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/charitable_trousseau~indeed-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-charitable_trousseau-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Job titles, skills or companies, one per line. Each line is a separate search. If the keywords, location and search URLs are all empty, the example search data analyst in Austin, TX runs.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, ZIP or postcode, or \"Remote\", e.g. Austin, TX. Applies to the keywords above. Leave empty to search the whole country."
          },
          "country": {
            "title": "Country",
            "enum": [
              "us",
              "uk",
              "ca",
              "au",
              "ie",
              "nz",
              "in",
              "sg",
              "za",
              "de",
              "fr",
              "nl"
            ],
            "type": "string",
            "description": "Indeed country site to search. Results come only from that site.",
            "default": "us"
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "",
              "1",
              "3",
              "7",
              "14"
            ],
            "type": "string",
            "description": "Only jobs posted within this time. Applied by Indeed itself, so every job returned is inside the window.",
            "default": ""
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "",
              "fulltime",
              "parttime",
              "contract",
              "temporary",
              "internship"
            ],
            "type": "string",
            "description": "Only jobs of this type.",
            "default": ""
          },
          "workModel": {
            "title": "Remote or hybrid",
            "enum": [
              "",
              "remote",
              "hybrid"
            ],
            "type": "string",
            "description": "Only jobs Indeed marks as remote, or as hybrid. Note: on Indeed itself the remote filter combined with a city often returns few or no jobs; to search remote jobs, put \"Remote\" in Location instead.",
            "default": ""
          },
          "radius": {
            "title": "Distance from the location",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "In miles (kilometres on sites that use them). 0 means the exact location only. Leave empty for Indeed's default of 25. Needs a location."
          },
          "searchUrls": {
            "title": "Indeed job search URLs",
            "type": "array",
            "description": "For anything more specific: set your filters on any Indeed country site and paste the address of the results page. The filters above do not apply to these.",
            "items": {
              "type": "string"
            }
          },
          "maxJobsPerSearch": {
            "title": "Maximum jobs per keyword or URL",
            "minimum": 1,
            "type": "integer",
            "description": "The scraper stops a search when it has saved this many jobs. You are never charged for more.",
            "default": 100
          },
          "maxPagesPerSearch": {
            "title": "Maximum pages read per keyword or URL",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Upper limit on how much work one search may take. Indeed shows 15 matching jobs per page, and pages overlap more as a search nears its end. In tests 150 pages gave about 1,100 jobs for a large city search; small searches need far fewer pages. Raise it for large searches; see the README for measured numbers.",
            "default": 150
          },
          "expandWithFilters": {
            "title": "Go beyond the first page using Indeed's filters",
            "type": "boolean",
            "description": "Indeed shows visitors who are not signed in only the first page of a search (15 matching jobs). With this on, the scraper divides your search with Indeed's own filters (job type, pay, date posted, city, employer and others), reads each part and merges the results without duplicates. Every job still matches your search. Turn off to get only the first page.",
            "default": true
          },
          "includeDescriptions": {
            "title": "Include full job descriptions",
            "type": "boolean",
            "description": "Adds the full description of each job as plain text in `description`. Jobs whose description cannot be fetched are still returned, with `descriptionFetched: false`.",
            "default": false
          },
          "excludeSponsored": {
            "title": "Leave out sponsored placements",
            "type": "boolean",
            "description": "Indeed adds up to 30 paid placements in separate blocks on each page. Its ad system picks them, they are not part of the job count it reports, and they often match the search only loosely. On by default. When turned off, they are added at the end of each search, only if there is room under your maximum. Paid results that Indeed puts inside the result list itself match the search and are always kept. Both kinds are marked `isSponsored: true`.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "US residential proxies are used by default and are needed for reliable runs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}