{
  "openapi": "3.0.1",
  "info": {
    "title": "Welcome to the Jungle Scraper — Jobs & Company Profiles",
    "description": "Returns Welcome to the Jungle jobs by keyword, location, filter or URL: title, company, offices, remote, contract, salary, date; optional full description; company profiles (headcount, age, gender).",
    "version": "0.1",
    "x-build-id": "0zSvbbOfNtDgnG2Oq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tortuga~welcome-to-the-jungle-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tortuga-welcome-to-the-jungle-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/tortuga~welcome-to-the-jungle-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tortuga-welcome-to-the-jungle-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/tortuga~welcome-to-the-jungle-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tortuga-welcome-to-the-jungle-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 (job title, skill or company)",
            "type": "array",
            "description": "One search per keyword, e.g. \"data analyst\", \"product manager\", \"python\", \"stage marketing\". Leave empty to list every job matching the location and filters.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "A city, region or country as you would type it on Welcome to the Jungle: \"Paris\", \"Lyon\", \"London\", \"New York\", \"Île-de-France\", \"Germany\". Cities are searched within the radius below (20 km by default, like the site). Leave empty for everywhere."
          },
          "radiusKm": {
            "title": "Radius around the city (km)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Search radius around the location when it is a city. The site offers 5, 10, 20, 50 and 100 km; default 20."
          },
          "countries": {
            "title": "Countries (ISO codes)",
            "type": "array",
            "description": "Only jobs with an office in these countries, as two-letter codes: FR, US, GB, CA, DE, ES, IE, NL, IT, BE, CH, LU, PT ... Several = any of them. Also used to pick the right place when a location name exists in several countries.",
            "items": {
              "type": "string"
            }
          },
          "contractTypes": {
            "title": "Contract type",
            "type": "array",
            "description": "Only these contract types. Several = any of them. \"Full-Time\" is WTTJ's permanent contract (CDI in France).",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "internship",
                "temporary",
                "apprenticeship",
                "freelance",
                "part_time",
                "other",
                "vie",
                "graduate_program",
                "volunteer",
                "idv"
              ],
              "enumTitles": [
                "Full-Time (permanent / CDI)",
                "Internship",
                "Temporary / fixed-term (CDD)",
                "Apprenticeship / work-study (alternance)",
                "Freelance",
                "Part-Time",
                "Other",
                "VIE (international corporate volunteer)",
                "Graduate program",
                "Volunteer work",
                "IDV"
              ]
            }
          },
          "remote": {
            "title": "Remote policy",
            "type": "array",
            "description": "Only jobs with this remote-work policy. Several = any of them. Many ads do not state one.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "partial",
                "punctual",
                "no"
              ],
              "enumTitles": [
                "Full remote",
                "Hybrid (regular remote days)",
                "Occasional remote",
                "No remote"
              ]
            }
          },
          "experienceLevels": {
            "title": "Experience required",
            "type": "array",
            "description": "Minimum years of experience asked in the ad. Several = any of them.",
            "items": {
              "type": "string",
              "enum": [
                "0-1",
                "1-3",
                "3-5",
                "5-10",
                "10+"
              ],
              "enumTitles": [
                "Less than 1 year",
                "1 to 3 years",
                "3 to 5 years",
                "5 to 10 years",
                "10 years or more"
              ]
            }
          },
          "minSalary": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs that show a salary whose yearly minimum is at least this much (in the job's currency), e.g. 45000. Jobs without a salary are left out."
          },
          "salaryCurrency": {
            "title": "Salary currency",
            "enum": [
              "EUR",
              "USD",
              "GBP"
            ],
            "type": "string",
            "description": "Only jobs whose salary is shown in this currency."
          },
          "sectors": {
            "title": "Company sector",
            "type": "array",
            "description": "Only jobs at companies in these sectors (WTTJ's sector groups). Several = any of them.",
            "items": {
              "type": "string",
              "enum": [
                "tech-1",
                "industry-1",
                "banking-insurance-finance",
                "distribution-1",
                "consulting-audit",
                "health-social-environment",
                "advertising-marketing-agency",
                "public-administration-1",
                "education-training-recruitment",
                "food-and-beverage",
                "culture-media-entertainment",
                "engineering-1",
                "real-estate",
                "fashion-luxury-beauty-lifestyle",
                "mobility-transport",
                "corporate-services",
                "hotel-tourism-leisure",
                "nonprofit-association",
                "legal-law",
                "architecture-1"
              ],
              "enumTitles": [
                "Tech",
                "Industry",
                "Banking / Insurance / Finance",
                "Distribution",
                "Consulting / Audit",
                "Health / Social / Environment",
                "Advertising / Marketing / Agency",
                "Public Administration",
                "Education / Training / Recruitment",
                "Food and Beverage",
                "Culture / Media / Entertainment",
                "Engineering",
                "Real Estate",
                "Fashion / Luxury / Beauty / Lifestyle",
                "Mobility / Transport",
                "Corporate Services",
                "Hotel / Tourism / Leisure",
                "Nonprofit / Association",
                "Legal / Law",
                "Architecture"
              ]
            }
          },
          "companySizes": {
            "title": "Company size (employees)",
            "type": "array",
            "description": "Only jobs at companies of this size. Several = any of them.",
            "items": {
              "type": "string",
              "enum": [
                "0-15",
                "15-50",
                "50-250",
                "250-2000",
                "2000+"
              ],
              "enumTitles": [
                "Fewer than 15",
                "15 to 50",
                "50 to 250",
                "250 to 2,000",
                "More than 2,000"
              ]
            }
          },
          "jobLanguages": {
            "title": "Language of the job ad",
            "type": "array",
            "description": "Only ads written in these languages. Several = any of them.",
            "items": {
              "type": "string",
              "enum": [
                "fr",
                "en",
                "de",
                "es",
                "it",
                "pt",
                "nl",
                "cs"
              ],
              "enumTitles": [
                "French",
                "English",
                "German",
                "Spanish",
                "Italian",
                "Portuguese",
                "Dutch",
                "Czech"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Published in the last (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Only jobs published within this many days, e.g. 1, 7 or 30."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Relevance (the site's default) or newest first. Searches that need more than 1,000 results are read newest first (the site's search shows at most 1,000 per query).",
            "default": "relevance"
          },
          "startUrls": {
            "title": "Start URLs (search, company or job pages)",
            "type": "array",
            "description": "Optional. Job search URLs with filters set on the site (https://www.welcometothejungle.com/fr/jobs?query=data&refinementList%5Bcontract_type%5D%5B%5D=internship), company pages for a company profile (https://www.welcometothejungle.com/en/companies/doctolib), company job lists (.../companies/doctolib/jobs) or single job pages (.../companies/doctolib/jobs/<job>).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "includeDetails": {
            "title": "Include full job description",
            "type": "boolean",
            "description": "Open each job for the full description (text and HTML), recruitment process, tools / tech stack, skills, office addresses, apply link and company stats (average age, gender split, revenue, website). One extra request and one 'detail' event per job. Job URLs in Start URLs always include it.",
            "default": false
          },
          "siteLanguage": {
            "title": "Site language",
            "enum": [
              "en",
              "fr",
              "es",
              "cs",
              "sk"
            ],
            "type": "string",
            "description": "Language of the site version used for job URLs and for sector, job function and benefit names. Job ads keep the language they were written in.",
            "default": "en"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many jobs and company profiles in total (you pay per item saved).",
            "default": 100
          },
          "maxItemsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap for each keyword / start URL, so one search does not use the whole Max results budget."
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed items",
            "type": "boolean",
            "description": "Remember what earlier runs of this search returned and output only new jobs or jobs whose title or salary changed. Use with a Schedule; unchanged jobs are not charged. With this on, Max results is the number of jobs checked per run (the watch window).",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name for this watch, so several schedules on the same search stay separate; defaults to a key derived from the search input"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy (the default) works: the search and job APIs do not block it. A search request returns up to 500 jobs (about 4 KB per job); job details are about 35 KB each.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}