# Welcome to the Jungle Search ## Overview | Property | Value | |----------|-------| | **Status** | active | | **Method** | `GET` | | **Endpoint** | `/v2/welcometothejungle/search` | | **Base URL** | `https://api.piloterr.com` | | **Credit Cost** | 1 credit per call | | **Documentation** | https://www.piloterr.com/library/welcometothejungle-search | ## Description Search Welcome to the Jungle jobs. Returns offer cards and pagination (1 credit). ## 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/welcometothejungle/search' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Example Response ### Python jobs in France ```json { "results": [ { "url": "https://www.welcometothejungle.com/fr/companies/warren-walter/jobs/developpeur-senior-python-node-js-ia-llm-rag-machine-learning-freelance-h-f_paris", "city": "Paris", "slug": "developpeur-senior-python-node-js-ia-llm-rag-machine-learning-freelance-h-f_paris", "title": "Développeur Senior Python / Node.js – IA, LLM, RAG & Machine Learning Freelance (H/F)", "remote": "partial", "company": { "name": "Warren Walter", "slug": "warren-walter", "logo_url": "https://cdn-images.welcometothejungle.com/fvPxjAqiAdHkDVgw0Wv2mGh7J1agohB0wDryhKh1vog/rs:auto:400/q:85/czM6Ly93dHRqLXByb2R1Y3Rpb24vdXBsb2Fkcy9vcmdhbml6YXRpb24vbG9nby81NzY3LzE2NDg4MS9kZjlmMzY5MS0xNTZmLTQwYTItOWRjMC0xOGQ5NGM1YjUwMTIucG5n", "reference": "9onX3U" }, "country": "FR", "sectors": [ "Application mobile", "Logiciels", "Digital Marketing / Data Marketing", "IT / Digital" ], "position": 1, "reference": "51c6ad1d-9fe0-431e-9c42-566fef3a08f2", "profession": "Développeur de logiciels", "salary_max": 550, "salary_min": 450, "published_at": "2026-10-26T09:49:08Z", "contract_type": "freelance", "salary_period": "daily", "salary_currency": "EUR" } ], "pagination": { "next": "https://www.welcometothejungle.com/fr/jobs?query=python&page=2", "page": 1, "per_page": 30, "total_pages": 34, "total_results": 6712 } } ``` ## Documentation ## Overview Search jobs on **Welcome to the Jungle**. **1 credit** per call. `query` is a keyword or a `/jobs` URL. `language` is `fr` (default) or `en`. The response is `{ results, pagination }` with 30 cards per page. ## Quickstart ``` GET https://api.piloterr.com/v2/welcometothejungle/search?query=python&language=fr ``` ## `query` **Example (keyword):** python **Example (jobs URL):** https://www.welcometothejungle.com/fr/jobs?query=python `query` is required. | Form | Example | What happens | |---|---|---| | Keyword | `python` | Jobs in the language of `language` (default `fr`) | | Jobs URL | `https://www.welcometothejungle.com/fr/jobs?query=python&page=2` | `query` or `q` is the keyword. `/fr/` or `/en/` in the path overrides `language`. `page` in the URL overrides `page` | A company profile URL (`/companies/` without `/jobs`) returns `400`. Use [Welcome to the Jungle Company](https://www.piloterr.com/library/welcometothejungle-company). Another host returns `400`. An empty keyword returns `400`. `language` is `fr` (default) or `en`. `en-gb` and `en-us` count as `en`. Any other value returns `400`. `page` starts at `1`. Below 1 returns `400`. A page holds 30 offers. ## Parameters | Parameter | Type | Required | Description | |---|---|---|---| | `query` | string | yes | Keyword, or a `/jobs` URL on welcometothejungle.com | | `language` | string | no | `fr` or `en`. Default `fr`. Overridden by the URL path | | `page` | integer | no | Page from 1. Overridden when the URL already has `page` | ## Response fields | Field | Type | Description | |---|---|---| | `results[]` | array | Job cards | | `results[].position` | integer | Position from 1 | | `results[].reference` | string \| null | Welcome to the Jungle reference | | `results[].title` | string | Job title | | `results[].url` | string | Offer URL | | `results[].contract_type` | string \| null | Contract | | `results[].remote` | string \| null | `fulltime`, `partial`, or empty | | `results[].salary_min` / `salary_max` | number \| null | Salary bounds | | `results[].salary_currency` / `salary_period` | string \| null | Currency and period | | `results[].city` / `country` | string \| null | Office | | `results[].company` | object | `name`, `slug`, `reference`, `logo_url` | | `pagination.page` / `per_page` | integer | Page and size (30) | | `pagination.total_results` / `total_pages` | integer \| null | Totals | | `pagination.next` | string \| null | Next page URL | ## Notes - A company profile URL passed here returns `400`. Use [Welcome to the Jungle Company](https://www.piloterr.com/library/welcometothejungle-company). - No offer returns `404`. ## Error codes | Code | Meaning | |---|---| | `400` | Missing query, unknown host, or bad language | | `404` | No offers | | `500` | Fetch failed | ## Related endpoints - [Welcome to the Jungle Company](https://www.piloterr.com/library/welcometothejungle-company)