# Indeed Job Search ## Overview | Property | Value | |----------|-------| | **Status** | active | | **Method** | `GET` | | **Endpoint** | `/v2/indeed/job/search` | | **Base URL** | `https://api.piloterr.com` | | **Credit Cost** | 2 credits per call | | **Documentation** | https://www.piloterr.com/library/indeed-job-search | ## Description Indeed Job Search API. Search fr.indeed.com job listings by keyword or URL. Browser rendering returns cards with salary snippets and pagination. ## Authentication - **Key Name:** `x-api-key` - **Location:** HTTP Header - **Get an API key:** https://app.piloterr.com/register ## Example Request ```bash curl --location --request GET 'https://api.piloterr.com/v2/indeed/job/search' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Example Response ### Search 'developpeur python' on fr.indeed.com (page 1) ```json { "results": [ { "url": "https://fr.indeed.com/viewjob?jk=3d8672f2a39f7104", "title": "Développeur éditique - Confirmé (H/F)", "salary": null, "job_key": "3d8672f2a39f7104", "location": "Montreuil (93)", "sponsored": true, "attributes": [ "CDI" ], "company_name": "GROUPE VILAVI" }, { "url": "https://fr.indeed.com/viewjob?jk=2c4fb3fb8fcafad3", "title": "Business Développeur BtoB – Transition Énergétique (H/F/X)", "salary": { "text": "36 000 € par an" }, "job_key": "2c4fb3fb8fcafad3", "location": "Télétravail partiel à 75017 Paris 17e", "sponsored": true, "attributes": [ "Temps plein + 1" ], "company_name": "JOVYN" } ], "pagination": { "next": null, "page": 1, "count": 15, "has_next": false, "per_page": 10, "total_results": 1264 } } ``` ## Documentation ## Overview Scrape Indeed job listings from fr.indeed.com via a browser rendering API. The **Indeed Job Search API** returns SERP cards with `job_key`, title, company, location, salary snippets, attributes and pagination. Pass a **keyword**, a **`/jobs` URL** or an SEO search URL, optionally with **`page`**. Use each result `job_key` with [Indeed Job Info](https://www.piloterr.com/library/indeed-job-info) for the full posting. ## Quickstart ``` GET https://api.piloterr.com/v2/indeed/job/search?query=developpeur+python GET https://api.piloterr.com/v2/indeed/job/search?query=developpeur+python&page=1 GET https://api.piloterr.com/v2/indeed/job/search?query=https://fr.indeed.com/jobs?q=developpeur+python&l=Paris ``` ## Parameters | Parameter | Type | Required | Description | |---|---|---|---| | `query` | string | yes | Keyword or Indeed jobs search URL | | `page` | integer | no | 1-based page number (default: `1`, 10 results per page) | | `return_page_source` | boolean | no | Raw HTML as `{\"result\": \"...\"}` (default: `false`) | ## Indeed workflow 1. [Indeed Job Search](https://www.piloterr.com/library/indeed-job-search) to discover listings (this endpoint) 2. [Indeed Job Info](https://www.piloterr.com/library/indeed-job-info) for description, benefits and structured salary 3. [Indeed Job Salary](https://www.piloterr.com/library/indeed-job-salary) for career-level salary aggregates ## Pagination | Field | Type | Description | |---|---|---| | `page` | integer | Current page | | `per_page` | integer | Page size (10) | | `count` | integer | Parsed cards on this page (may exceed `per_page` when sponsored cards are filtered) | | `total_results` | integer \| null | Total matches when available | | `has_next` | boolean | More pages available | | `next` | string \| null | Next page URL when available | ## Notes - Default domain is **fr.indeed.com** unless a full URL specifies another Indeed locale. - `salary` may be `null` when the card shows no compensation. - `next` may be `null` even when `has_next` is `true` on some Indeed SERPs. - Costs **2 credits** per call (browser rendering). ## Main use cases - **Job discovery**: harvest `job_key` values and listing URLs by keyword - **Market monitoring**: track hiring volume and salary snippets by role - **Recruiting pipelines**: feed live Indeed listings into ATS or CRM workflows