Skip to content

Inital try for a documentation of the EURES API and their inherited/connected endpoints.

License

Notifications You must be signed in to change notification settings

rorar/EURES-API-Documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EURES Job Search API Documentation

OpenAPI 3.1.0 Documentation Deploy Docs Endpoints License: 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

Resource URL
Interactive docs rorar.github.io/EURES-API-Documentation
OpenAPI spec openapi.yaml
Raw download openapi.yaml (raw)

Base URL

https://europa.eu/eures/api

Endpoints

The specification documents 20 endpoints across 3 API services:

jv-searchengine — Job Search & Statistics

Method Path Description
POST /jv-searchengine/public/jv-search/search Search job vacancies with filters
GET /jv-searchengine/public/jv/id/{id} Get full vacancy detail by ID
GET /jv-searchengine/public/statistics/getNumberOfJobs Total active vacancy count
GET /jv-searchengine/public/statistics/getCountryStats Vacancies by country/region
GET /jv-searchengine/public/statistics/getSectorStats Vacancies by NACE sector
GET /jv-searchengine/public/statistics/getOccupationStats Vacancies by ESCO occupation
GET /jv-searchengine/public/properties Search engine configuration
GET /jv-searchengine/public/translation/enabled Translation feature status
GET /jv-searchengine/public/translation/languages Supported translation languages

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

Method Path Description
GET /shared-data-rest-api/public/reference/languages Portal-supported languages (26)
GET /shared-data-rest-api/public/reference/isoLanguages All ISO 639-1 languages (160+)
GET /shared-data-rest-api/public/reference/countries Covered countries (31)
GET /shared-data-rest-api/public/reference/nace NACE sector classifications
GET /shared-data-rest-api/public/esco/supportedLanguages ESCO-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/tree Full ESCO/ISCO occupation hierarchy
GET /shared-data-rest-api/public/properties/public Portal configuration
GET /shared-data-rest-api/public/menu/{section} Navigation menu entries

autocomplete-repository-rest-api — Suggestions

Method Path Description
GET /autocomplete-repository-rest-api/public/v2.0/occupations Occupation name autocomplete

Other

Method Path Description
GET /public/security/profile Current 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:

Code Searches in
EVERYWHERE All fields
TITLE Job title only
DESCRIPTION Job description only
EMPLOYER Employer name only
LEGAL_ID Employer legal identifier
JOB_VACANCY_ID Vacancy 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:

System Used for Example
ESCO Occupations & skills http://data.europa.eu/esco/occupation/...
ISCO Occupation groups http://data.europa.eu/esco/isco/C2511
NACE Economic sectors a through u (lowercase)
NUTS Geographic regions de (country), de1 (region), DE12B (district)
CEFR Language proficiency en(B2), de(C1)
EQF Education levels basic, bachelor, doctoral

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

Inital try for a documentation of the EURES API and their inherited/connected endpoints.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages