{
  "openapi": "3.0.1",
  "info": {
    "title": "France Travail Scraper | $0.8 / 1k | Fast & Reliable",
    "description": "Extract structured France Travail job listings with titles, salaries, contract details, employer data, locations, and skills. Built for enterprise-grade hiring intelligence, labor market analysis, and automated recruiting or analytics pipelines.",
    "version": "1.0",
    "x-build-id": "lIsmFFAlvo7r9cVqG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fatihtahta~france-travail-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fatihtahta-france-travail-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/fatihtahta~france-travail-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fatihtahta-france-travail-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/fatihtahta~france-travail-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fatihtahta-france-travail-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": {
          "queries": {
            "title": "Add Search Keywords",
            "type": "array",
            "description": "Enter job titles, skills, or hiring phrases such as \"data analyst\", \"cariste\", or \"assistant comptable\". Add one term per line to run separate searches for different roles, specialties, or hiring needs.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Choose a Search Location",
            "type": "string",
            "description": "Enter a city, department, region, or postal area to narrow every search to that place. Leave this empty if you want results from across France."
          },
          "published_date": {
            "title": "Choose How Recent Listings Should Be",
            "enum": [
              "Last 24 hours",
              "Last 3 Days",
              "Last Week",
              "Last 2 Weeks",
              "Last Month"
            ],
            "type": "string",
            "description": "Choose a publication window to keep only jobs posted within the last day, week, or month, depending on how quickly you want to react."
          },
          "contract_type": {
            "title": "Select Contract Types",
            "type": "array",
            "description": "Choose the contract types you want to include, such as permanent roles, fixed-term jobs, temporary assignments, apprenticeships, or other employment arrangements.",
            "items": {
              "type": "string",
              "enum": [
                "Permanent contract (CDI) | CDI",
                "Fixed-term contract (CDD) | CDD",
                "Temporary work (Interim) | Intérim",
                "Permanent temp contract | CDI Intérimaire",
                "Seasonal work | Saisonnier",
                "Apprenticeship contract | Contrat apprentissage",
                "Professional training contract | Cont. professionnalisation",
                "Pre-employment training program | Prépa.opérationnel.emploi",
                "Project-based permanent contract | CDI de chantier ou d'opération",
                "Educational engagement contract | Contrat d'Engagement Educatif",
                "Intermittent contract | Contrat intermittent",
                "PACTE contract | Contrat pacte",
                "Usage-based contract | Contrat d'usage",
                "Subsidized employment contract (CAE) | CUI - CAE",
                "Subsidized employment contract (CIE) | CUI - CIE",
                "Military reserve service commitment | Engagement à servir dans la réserve",
                "Franchise / self-employed license | Franchise",
                "Economic integration program | Insertion par l'activ.éco.",
                "Umbrella company employment | Portage salarial",
                "Commercial profession | Profession commerciale",
                "Liberal profession / independent professional | Profession libérale",
                "Business takeover | Reprise d'entreprise"
              ]
            }
          },
          "contract_duration": {
            "title": "Choose Working Time",
            "type": "array",
            "description": "Choose whether to include full-time roles, part-time roles, or listings where the working time is not specified.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time | Temps plein",
                "Part-time | Temps partiel",
                "Not specified | Non renseignée"
              ]
            }
          },
          "job_category": {
            "title": "Pick Job Categories",
            "type": "array",
            "description": "Choose one or more professional domains to focus the search on fields such as IT, healthcare, logistics, hospitality, or construction.",
            "items": {
              "type": "string",
              "enum": [
                "Procurement | Achats, Comptabilité, Gestion",
                "Arts | Arts, Artisanat d'art",
                "Finance | Banque, Assurance",
                "Construction | Bâtiment, Travaux Publics",
                "Sales | Commerce, Vente",
                "Communication | Communication, Multimédia",
                "Consulting | Conseil, Etudes",
                "Management | Direction d'entreprise",
                "Agriculture | Espaces verts et naturels, Agriculture, Pêche, Soins aux animaux",
                "Hospitality | Hôtellerie - Restauration, Tourisme, Animation",
                "Real estate | Immobilier",
                "Industry | Industrie",
                "IT | Informatique, Télécommunication",
                "Maintenance | Installation, Maintenance",
                "Marketing | Marketing, Stratégie commerciale",
                "HR | Ressources Humaines",
                "Healthcare | Santé",
                "Administrative | Secrétariat, Assistanat",
                "Services | Services à la personne, à la collectivité",
                "Entertainment | Spectacle",
                "Sports | Sport",
                "Logistics | Transport, Logistique"
              ]
            }
          },
          "min_salary": {
            "title": "Set a Minimum Salary",
            "minimum": 1,
            "type": "integer",
            "description": "Enter the minimum monthly gross salary you want to accept to filter out lower-paying offers before they are saved."
          },
          "experience": {
            "title": "Choose Experience Levels",
            "type": "array",
            "description": "Choose the experience levels you want to include, from entry-level roles to jobs that ask for several years of experience.",
            "items": {
              "type": "string",
              "enum": [
                "Entry-level | Moins de 1 an",
                "Mid-level | De 1 à 3 ans",
                "Senior | Plus de 3 ans",
                "Not specified | Non renseignée"
              ]
            }
          },
          "seniority": {
            "title": "Choose Qualification Levels",
            "type": "array",
            "description": "Choose whether to include executive, non-executive, or unspecified qualification levels in your saved results.",
            "items": {
              "type": "string",
              "enum": [
                "Executive | Cadre",
                "Non-executive | Non cadre",
                "Not specified | Non renseignée"
              ]
            }
          },
          "only_france_travail": {
            "title": "Keep Only France Travail Listings",
            "type": "boolean",
            "description": "Turn this on to keep only jobs published directly on France Travail. Leave it off if you also want job offers contributed by partner sites and employers.",
            "default": false
          },
          "early_application": {
            "title": "Prioritize Lower-Competition Jobs",
            "type": "boolean",
            "description": "Turn this on to highlight offers with a lower application count, which can be useful if you want fresher opportunities and a better chance to apply early.",
            "default": false
          },
          "inclusive_employer": {
            "title": "Find Disability-Inclusive Employers",
            "type": "boolean",
            "description": "Turn this on to keep only jobs from employers that display the Handi-engage commitment on France Travail.",
            "default": false
          },
          "adapted_company": {
            "title": "Focus on Adapted Companies",
            "type": "boolean",
            "description": "Turn this on to keep only listings from adapted companies, which may be helpful when you are looking for more accessible working environments.",
            "default": false
          },
          "sort_by": {
            "title": "Choose How to Sort Results",
            "enum": [
              "Most relevant | Pertinence",
              "Newest | Date"
            ],
            "type": "string",
            "description": "Choose whether to sort results by match quality or by publication date, depending on how you prefer to review opportunities."
          },
          "maximize_coverage": {
            "title": "Expand Search Coverage",
            "type": "boolean",
            "description": "France Travail may show only part of the available results when a search is very broad, often around 900 to 1,000 listings. Turn this on to help recover more matching job offers from large result sets while still respecting your selected filters.",
            "default": true
          },
          "limit": {
            "title": "Set a Listing Limit Per Search",
            "minimum": 1,
            "type": "integer",
            "description": "Choose the maximum number of listings to save for each query. Use a smaller limit for testing and sampling, or a larger one when you want a fuller dataset."
          },
          "proxyConfiguration": {
            "title": "Set Up Connection Options",
            "type": "object",
            "description": "Choose proxy and connection options when you need more stable access, different routing, or better reliability for larger runs. Most users can keep the defaults.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}