Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

20 Commits

Repository files navigation

EURES Job Search API Documentation

OpenAPI 3.1.0DocumentationDeploy DocsEndpointsLicense: MIT

Reverse-engineered OpenAPI 3.1.0 specification for the EURES (European Employment Services) Job Search API.

This is an unofficial, community-maintained documentation project. It is not affiliated with or endorsed by the European Commission or the EURES network.

Quick Links

ResourceURL
Interactive docsrorar.github.io/EURES-API-Documentation
OpenAPI specopenapi.yaml
Raw downloadopenapi.yaml (raw)

Base URL

https://europa.eu/eures/api

Endpoints

The specification documents 20 endpoints across 3 API services:

jv-searchengine — Job Search & Statistics

MethodPathDescription
POST/jv-searchengine/public/jv-search/searchSearch job vacancies with filters
GET/jv-searchengine/public/jv/id/{id}Get full vacancy detail by ID
GET/jv-searchengine/public/statistics/getNumberOfJobsTotal active vacancy count
GET/jv-searchengine/public/statistics/getCountryStatsVacancies by country/region
GET/jv-searchengine/public/statistics/getSectorStatsVacancies by NACE sector
GET/jv-searchengine/public/statistics/getOccupationStatsVacancies by ESCO occupation
GET/jv-searchengine/public/propertiesSearch engine configuration
GET/jv-searchengine/public/translation/enabledTranslation feature status
GET/jv-searchengine/public/translation/languagesSupported translation languages

shared-data-rest-api — Reference Data & ESCO

MethodPathDescription
GET/shared-data-rest-api/public/reference/languagesPortal-supported languages (26)
GET/shared-data-rest-api/public/reference/isoLanguagesAll ISO 639-1 languages (185)
GET/shared-data-rest-api/public/reference/countriesCovered countries (31)
GET/shared-data-rest-api/public/reference/naceNACE sector classifications
GET/shared-data-rest-api/public/esco/supportedLanguagesESCO-supported language codes
POST/shared-data-rest-api/public/esco/label/{lang}Resolve ESCO URIs to labels
GET/shared-data-rest-api/public/esco/occupation/treeFull ESCO/ISCO occupation hierarchy
GET/shared-data-rest-api/public/properties/publicPortal configuration
GET/shared-data-rest-api/public/menu/{section}Navigation menu entries

autocomplete-repository-rest-api — Suggestions

MethodPathDescription
GET/autocomplete-repository-rest-api/public/v2.0/occupationsOccupation name autocomplete

Other

MethodPathDescription
GET/public/security/profileCurrent user profile (null when anonymous)

Quick Start

Search for jobs

curl -X POST https://europa.eu/eures/api/jv-searchengine/public/jv-search/search \
-H 'Content-Type: application/json' \
-d '{ "resultsPerPage": 5, "page": 1, "sortSearch": "MOST_RECENT", "keywords": [{"keyword": "software engineer", "specificSearchCode": "EVERYWHERE"}], "publicationPeriod": null, "occupationUris": [], "skillUris": [], "requiredExperienceCodes": [], "positionScheduleCodes": [], "sectorCodes": [], "educationAndQualificationLevelCodes": [], "positionOfferingCodes": [], "locationCodes": ["de"], "euresFlagCodes": [], "otherBenefitsCodes": [], "requiredLanguages": [], "minNumberPost": null, "sessionId": "my-session-1", "requestLanguage": "en" }'

Advanced search with field-specific keywords

The specificSearchCode controls which fields a keyword matches against:

CodeSearches in
EVERYWHEREAll fields
TITLEJob title only
DESCRIPTIONJob description only
EMPLOYEREmployer name only
LEGAL_IDEmployer legal identifier
JOB_VACANCY_IDVacancy ID
# Search for "Developer" in title AND "SAP" in employer name
curl -X POST https://europa.eu/eures/api/jv-searchengine/public/jv-search/search \
-H 'Content-Type: application/json' \
-d '{ "resultsPerPage": 10, "page": 1, "sortSearch": "BEST_MATCH", "keywords": [ {"keyword": "Developer", "specificSearchCode": "TITLE"}, {"keyword": "SAP", "specificSearchCode": "EMPLOYER"} ], "occupationUris": [], "skillUris": [], "requiredExperienceCodes": [], "positionScheduleCodes": [], "sectorCodes": [], "educationAndQualificationLevelCodes": [], "positionOfferingCodes": [], "locationCodes": [], "euresFlagCodes": [], "otherBenefitsCodes": [], "requiredLanguages": [], "minNumberPost": null, "publicationPeriod": null, "sessionId": "my-session-2", "requestLanguage": "de" }'

Get vacancy detail

# Use the base64-encoded ID from search results
curl https://europa.eu/eures/api/jv-searchengine/public/jv/id/MTAwMDEtMTAwMTEzOTMxMS1TIDE?requestLang=en

Autocomplete occupations

curl 'https://europa.eu/eures/api/autocomplete-repository-rest-api/public/v2.0/occupations?language=en&keyword=Software&nbResults=10'

Get labor market statistics

# Total job count
curl https://europa.eu/eures/api/jv-searchengine/public/statistics/getNumberOfJobs
# Jobs by country (with NUTS sub-regions)
curl https://europa.eu/eures/api/jv-searchengine/public/statistics/getCountryStats

Classification Systems

The API uses several EU classification standards:

SystemUsed forExample
ESCOOccupations & skillshttp://data.europa.eu/esco/occupation/...
ISCOOccupation groupshttp://data.europa.eu/esco/isco/C2511
NACEEconomic sectorsa through u (lowercase)
NUTSGeographic regionsde (country), de1 (region), DE12B (district)
CEFRLanguage proficiencyen(B2), de(C1)
EQFEducation levelsbasic, bachelor, doctoral

NUTS revision timeline

The EURES API uses NUTS (Nomenclature of Territorial Units for Statistics) codes for geographic regions in locationCodes filters and locationMap response fields. NUTS revisions follow a three-year cycle:

RevisionApplicable periodRegions (NUTS 1 / 2 / 3)
NUTS 20212021–202392 / 242 / 1166
NUTS 20242024–2026 (current)92 / 244 / 1165
NUTS 20272027 onwardTBD

Current status (as of April 2026):

  • The EURES API currently uses NUTS 2024 codes. No action is needed until the end of 2026.
  • The NUTS 2027 delegated regulation was published in 2025 and takes effect 1 January 2027. It may change, split, or merge some region codes.
  • Eurostat publishes correspondence tables for mapping between revisions (available via the TERCET tool).
  • When the EURES portal transitions to NUTS 2027, consumers should expect location code changes in search filters, statistics, and vacancy detail responses.

Eurostat SDMX API status

The EURES API itself does not use SDMX directly, but Eurostat's SDMX APIs are relevant for consumers enriching EURES data with labor market statistics:

APIBase URLStatus
Statistics API (JSON-stat 2.0)https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/Active
SDMX 2.1https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/Active
SDMX 3.0https://ec.europa.eu/eurostat/api/dissemination/sdmx/3.0/Active
Catalogue APIhttps://ec.europa.eu/eurostat/api/dissemination/catalogue/Active

Current status (as of April 2026):

  • No deprecations announced. SDMX 2.1 and 3.0 are supported side-by-side with no sunset dates.
  • The old bulk download facility was decommissioned in October 2023; the transition to the current dissemination API is complete.
  • For new integrations, SDMX 3.0 is the forward-looking choice, but SDMX 2.1 remains fully supported.

Development

Generate documentation site locally

bash scripts/generate-docs.sh -o _site
# Open _site/index.html in a browser

GitHub Pages deployment

The documentation site is built and deployed automatically via GitHub Actions when openapi.yaml or scripts/generate-docs.sh change on main. To enable:

  1. Go to Settings > Pages
  2. Set source to GitHub Actions

Use with code generators

Generate API clients from the OpenAPI spec using tools like openapi-generator:

# TypeScript client
npx @openapitools/openapi-generator-cli generate \
-i openapi.yaml -g typescript-fetch -o ./client
# Python client
openapi-generator generate -i openapi.yaml -g python -o ./client

Import into tools

The openapi.yaml file can be imported directly into:

Disclaimer

This documentation is provided "as-is" based on observed behavior of the public EURES portal API. It is not an official API and has no guaranteed stability, rate limits, or support.

Usage is subject to the EURES portal terms of use. It is your responsibility to ensure compliance with applicable laws and regulations.

Neither the maintainers of this project nor the EURES portal accept liability for damages or losses arising from use of this API or its documentation.

License

MIT

About

EURES API documentation and the inherited/connected endpoints like ESCO/ISCO for job search and discovery

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages