Discover/werk API
live

werk APIwerk.nl

Search thousands of Dutch job vacancies on werk.nl (UWV). Returns job title, company, location, hours, contract type, education level, and publication date.

This API takes change requests — .
Endpoint health
verified 14h ago
search_vacancies
1/1 passing latest checkself-healing
Endpoints
1
Updated
15h ago

What is the werk API?

The werk.nl API provides access to job vacancy listings from the Dutch national job board operated by UWV, returning up to 7 structured fields per listing through a single search_vacancies endpoint. You can filter by keywords such as job title or profession and by geographic location, getting paginated results with 20 vacancies per page sorted newest first. This covers one of the Netherlands' largest public sources of active job postings.

This call costs2 credits / call— charged only on success
Try it
Page number for pagination (1-based). Each page returns up to 20 results.
Search keywords: job title, profession, or reference number (e.g. 'finance controller', 'developer').
City name or postal code to filter results geographically (e.g. 'Amsterdam', '1012').
api.parse.bot/scraper/3ee1a065-f222-48b9-8807-7a95a138c033/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/3ee1a065-f222-48b9-8807-7a95a138c033/search_vacancies?keywords=finance+controller' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace werk-nl-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Werk.nl vacancies SDK — search Dutch job listings."""
from parse_apis.werk_nl_api import WerkNl, InputFormatInvalid

client = WerkNl()

# Search for finance controller jobs, cap at 5 results total.
for vacancy in client.vacancies.search(keywords="finance controller", limit=5):
    print(vacancy.job_title, "-", vacancy.company_name, f"({vacancy.location})")

# Narrow by location and drill into the first result.
hit = client.vacancies.search(keywords="developer", location="Amsterdam", limit=1).first()
if hit is not None:
    print(hit.job_title, "|", hit.hours, "|", hit.contract_type)
    print("Education:", hit.education_level)
    print("Published:", hit.publication_date)

# Browse all vacancies (no keyword filter), capped to 10 items.
try:
    for vacancy in client.vacancies.search(limit=10):
        print(vacancy.job_title, vacancy.company_name)
except InputFormatInvalid as e:
    # Raised when search parameters are malformed upstream.
    print("Invalid input:", e.message)

print("exercised: vacancies.search (with keywords, with location, unfiltered)")
All endpoints · 1 totalmissing one? ·

Search job vacancies on werk.nl by keywords and/or location. Returns paginated results sorted by newest first, with 20 results per page. Each result includes job title, company name, location, working hours, contract type, education level, and publication date. When keywords is omitted all vacancies are returned. When location is omitted no geographic filter is applied. Use the page parameter to paginate through results.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-based). Each page returns up to 20 results.
keywordsstringSearch keywords: job title, profession, or reference number (e.g. 'finance controller', 'developer').
locationstringCity name or postal code to filter results geographically (e.g. 'Amsterdam', '1012').
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page number",
    "vacancies": "array of vacancy objects with job_title, company_name, location, hours, contract_type, education_level, publication_date",
    "total_results": "integer total number of matching vacancies"
  },
  "sample": {
    "data": {
      "page": 1,
      "vacancies": [
        {
          "hours": "32 - 40 uur",
          "location": "ZEIST",
          "job_title": "PE Controller",
          "company_name": "Varbisto B.V.",
          "contract_type": "Vast",
          "education_level": "HBO/bachelor",
          "publication_date": "2026-08-24 00:00:00"
        },
        {
          "hours": "32 - 40 uur",
          "location": "AMSTELVEEN",
          "job_title": "Financieel Controller",
          "company_name": "YoungCapital",
          "contract_type": "Tijdelijk",
          "education_level": "HBO/bachelor",
          "publication_date": "2026-08-24 00:00:00"
        }
      ],
      "total_results": 996
    },
    "status": "success"
  }
}

About the werk API

What the API Returns

The search_vacancies endpoint queries the werk.nl job board and returns a paginated list of vacancy objects. Each object includes job_title, company_name, location, hours, contract_type, education_level, and publication_date. The response also contains total_results (the full count of matching vacancies) and page (the current page number), making it straightforward to iterate through large result sets 20 records at a time.

Filtering and Pagination

The endpoint accepts two optional filter parameters: keywords and location. The keywords parameter accepts free-text input such as a job title, profession, or vacancy reference number (e.g., finance controller, developer). The location parameter accepts a Dutch city name or postal code (e.g., Amsterdam, 1012). Both can be used independently or together. Pagination is controlled via the page parameter, which is 1-based. When neither keywords nor location is provided, the endpoint returns the most recently published vacancies across the board.

Source Coverage

werk.nl is maintained by UWV (Uitvoeringsinstituut Werknemersverzekeringen), the Dutch public employment service. It aggregates vacancies from employers across all sectors in the Netherlands, including both full-time and part-time roles. The contract_type and hours fields reflect how employers have classified each posting, and education_level indicates the minimum qualification specified in the listing.

Reliability & maintenanceVerified

The werk API is a managed, monitored endpoint for werk.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when werk.nl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official werk.nl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
14h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate Dutch job market data by filtering contract_type and education_level across sectors
  • Build a job alert service that polls new listings using publication_date and keyword filters
  • Analyse regional labour demand by querying location with different Dutch cities or postal codes
  • Track hiring activity for specific companies by scanning company_name across paginated results
  • Feed a job recommendation engine with structured vacancy data including hours and contract_type
  • Monitor entry-level vacancies in a specific field by combining keywords with education_level filtering
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does werk.nl have an official developer API?+
UWV provides open data through the Dutch government's open data portal (data.overheid.nl), but there is no publicly documented REST API from werk.nl itself that exposes real-time vacancy search with structured per-listing fields in the way this API does.
What does the search_vacancies endpoint return beyond the job title and company?+
Each vacancy object includes location, hours (working hours), contract_type (e.g. permanent or temporary), education_level, and publication_date in addition to job_title and company_name. The response also carries total_results so you know how many pages to expect for a given query.
Does the API return full vacancy descriptions or apply links?+
Not currently. The API returns structured listing metadata — title, company, location, hours, contract type, education level, and publication date — but not the full job description text or direct application URLs. You can fork it on Parse and revise to add an endpoint that fetches individual vacancy detail pages.
Are vacancies from all Dutch regions included, or is coverage limited?+
The source covers vacancies posted nationally across the Netherlands. The location parameter can narrow results to a specific city or postal code, but the underlying dataset is not limited to any particular region. Coverage depends on what employers have actively posted to werk.nl at query time.
Can I filter by contract type or education level directly in the API?+
Not currently as dedicated filter parameters. The endpoint supports keywords and location filters; contract_type and education_level are returned as response fields for client-side filtering. You can fork it on Parse and revise to add those as explicit query parameters.
Page content last updated . Spec covers 1 endpoint from werk.nl.
Related APIs in JobsSee all →
hellowork.com API
Search and browse job listings and company profiles on HelloWork, France's leading job board. Filter by keyword, location, contract type, salary, and more.
workingnomads.com API
Search and filter remote job listings from Working Nomads to find digital nomad-friendly positions tailored to your location, job category, and experience level. Discover opportunities across various remote roles and companies that actively hire location-independent workers.
kvk.nl API
Search for Dutch businesses and retrieve detailed company information such as registration numbers, addresses, and business details directly from the official KVK trade register. Look up specific companies to access their official registration data and verify business information in the Netherlands.
stagemarkt.nl API
Search for Dutch MBO internship companies on Stagemarkt.nl and access detailed information including contact details, addresses, and their available internship specializations with sector and qualification levels. Get company recommendations and browse comprehensive profiles to find the perfect internship match.
cv.lv API
Search for job listings on CV.lv and access detailed job descriptions, categories, locations, and information about top employers. Find the right opportunity by browsing available positions across different industries and regions.
nav.no API
Search and browse job listings from Norway's official job board with detailed filtering by location, sector, education level, and other criteria. Get comprehensive job details and explore available opportunities across the Norwegian labor market.
offerzen.com API
Browse and retrieve tech job listings from OfferZen's developer marketplace. Access structured job data including required skills, company details, location, and workplace policy, with support for keyword filtering and pagination.
drimble.nl API
Search and access detailed business information from Drimble.nl, including company addresses, SBI classifications, and activity descriptions. Find specific companies or browse listings to get comprehensive details about Dutch businesses.