{
  "openapi": "3.0.1",
  "info": {
    "title": "Indeed Jobs Scraper - API, Salary & Benefits",
    "description": "Fast API-first Indeed job scraper with full descriptions, salaries, annualized pay, benefits, skills, work arrangement, seniority, company details, emails, and apply links. Search multiple keywords across 50+ countries with remote, job type, salary, date, radius, and title-match filters.",
    "version": "0.0",
    "x-build-id": "CnIwiezc7IPhpFeqi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/newbs~Indeed-Job-Scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-newbs-Indeed-Job-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/newbs~Indeed-Job-Scraper/runs": {
      "post": {
        "operationId": "runs-sync-newbs-Indeed-Job-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/newbs~Indeed-Job-Scraper/run-sync": {
      "post": {
        "operationId": "run-sync-newbs-Indeed-Job-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": [
          "job",
          "country",
          "numberOfResults"
        ],
        "properties": {
          "job": {
            "title": "Job titles or keywords",
            "type": "array",
            "description": "One or more Indeed search keywords. Add job titles, roles, skills, or company-related phrases. The actor searches each keyword separately.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "france",
              "united states",
              "australia",
              "canada",
              "united kingdom",
              "germany",
              "netherlands",
              "ireland",
              "india",
              "japan",
              "spain",
              "italy",
              "brazil",
              "switzerland",
              "south africa",
              "poland",
              "argentina",
              "austria",
              "belgium",
              "bahrain",
              "chile",
              "china",
              "colombia",
              "costa_rica",
              "czech_republic",
              "denmark",
              "ecuador",
              "egypt",
              "finland",
              "greece",
              "hungary",
              "indonesia",
              "israel",
              "kuwait",
              "luxembourg",
              "malaysia",
              "mexico",
              "morocco",
              "nigeria",
              "norway",
              "new_zealand",
              "oman",
              "pakistan",
              "panama",
              "peru",
              "philippines",
              "portugal",
              "qatar",
              "romania",
              "saudi_arabia",
              "singapore",
              "south_korea",
              "sweden",
              "taiwan",
              "thailand",
              "turkey",
              "ukraine",
              "united_arab_emirates",
              "uruguay",
              "venezuela",
              "vietnam"
            ],
            "type": "string",
            "description": "Indeed country site to search. Choose the country that matches the hiring market you want to analyze."
          },
          "experienceLevel": {
            "title": "Experience level",
            "enum": [
              "",
              "entryLevel",
              "midLevel",
              "seniorLevel"
            ],
            "type": "string",
            "description": "Optional Indeed experience-level filter. Leave empty to include all seniority levels."
          },
          "sortType": {
            "title": "Sort type",
            "enum": [
              "",
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "Sort results by Indeed's default ranking, newest listings, or relevance."
          },
          "city": {
            "title": "City or location",
            "type": "string",
            "description": "Optional city, region, state, or location query. Leave empty for nationwide results or use terms like Remote when supported by the selected country."
          },
          "radiusMiles": {
            "title": "Search radius (miles)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum distance from the selected city or location. Indeed accepts values from 0 to 100 miles.",
            "default": 50
          },
          "remoteMode": {
            "title": "Work arrangement",
            "enum": [
              "any",
              "remote",
              "hybrid",
              "on-site"
            ],
            "type": "string",
            "description": "Return all jobs or keep only remote, hybrid, or on-site listings. Classification uses Indeed attributes, location, title, and description.",
            "default": "any"
          },
          "jobTypes": {
            "title": "Job types",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional multi-select filter for job types. A listing is kept when it matches at least one selected type.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "temporary",
                "internship",
                "commission",
                "volunteer",
                "per diem"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Commission",
                "Volunteer",
                "Per diem"
              ]
            },
            "default": []
          },
          "numberOfResults": {
            "title": "Results per keyword",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of job listings to collect for each keyword. Use a small number for quick tests and a larger number for market research."
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 0,
            "type": "integer",
            "description": "Optional Indeed freshness filter. Set 0 to include all available listings, or use values such as 1, 3, 7, 14, or 30 for recent postings."
          },
          "requireSalary": {
            "title": "Only jobs with salary",
            "type": "boolean",
            "description": "Exclude listings where Indeed does not expose compensation.",
            "default": false
          },
          "minimumAnnualSalary": {
            "title": "Minimum annual salary",
            "minimum": 0,
            "type": "number",
            "description": "Keep listings whose advertised maximum pay annualizes to at least this value. Hourly, daily, weekly, and monthly rates are normalized; currency follows the selected country.",
            "default": 0
          },
          "strictKeywordMatch": {
            "title": "Require keyword phrase in title",
            "type": "boolean",
            "description": "Keep only listings whose title contains the full search keyword phrase. Useful for removing broad Indeed matches.",
            "default": false
          },
          "keepBrowserOpen": {
            "title": "Keep browser open",
            "type": "boolean",
            "description": "Keep the browser open after a run for local debugging or manual verification.",
            "default": false
          },
          "manualSolveWaitMs": {
            "title": "Manual verification wait (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum time to wait for manual verification when keep browser open is enabled."
          },
          "disableProxy": {
            "title": "Disable proxy",
            "type": "boolean",
            "description": "Run without proxy. Useful for local smoke tests; production Apify runs should normally keep proxy enabled.",
            "default": false
          },
          "preferHttpFallback": {
            "title": "Prefer HTTP fallback",
            "type": "boolean",
            "description": "Deprecated compatibility setting. The actor now always uses the structured API path.",
            "default": true
          },
          "httpFallbackOnly": {
            "title": "HTTP fallback only",
            "type": "boolean",
            "description": "Deprecated compatibility setting. The actor now always uses the structured API path.",
            "default": true
          },
          "deduplicateJobs": {
            "title": "Deduplicate jobs",
            "type": "boolean",
            "description": "Skip duplicate Indeed jobs across multiple keywords in the same run. Recommended for cleaner datasets and lower downstream processing cost.",
            "default": true
          },
          "uniqueCompanies": {
            "title": "One job per company",
            "type": "boolean",
            "description": "Keep only the first matching listing from each company across the whole run.",
            "default": false
          },
          "includeDataQuality": {
            "title": "Include data quality metadata",
            "type": "boolean",
            "description": "Add a dataQuality object to each item with completeness score, salary/benefits/skills flags, and description length.",
            "default": true
          },
          "failOnNoResults": {
            "title": "Fail when no jobs are collected",
            "type": "boolean",
            "description": "Fail when every successful search returns no matching jobs. Leave disabled for monitoring tasks where an empty search is a valid result.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Concurrent keyword searches",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of keywords processed in parallel. Reduce this if your custom proxy has strict connection limits.",
            "default": 3
          },
          "maxRequestRetries": {
            "title": "API attempts per keyword",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Maximum structured API attempts per keyword across available proxy configurations.",
            "default": 3
          },
          "overfetchFactor": {
            "title": "Filter over-fetch factor",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many extra raw listings to scan when post-filters are enabled. Higher values improve filter coverage but transfer more data.",
            "default": 5
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies for Indeed requests. Apify Proxy with residential IPs is recommended for reliable public runs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}