Vlaanderen APIomgevingsloketinzage.omgeving.vlaanderen.be ↗
Search and retrieve Flemish environmental permits (omgevingsvergunningen) by location or keyword. Access permit details, procedure phases, and building actions.
What is the Vlaanderen API?
This API exposes 2 endpoints for accessing environmental permits from the Flemish government's omgevingsloketinzage portal. Use search_permits to find permits by municipality or keyword — returning paginated summaries with UUIDs and project names — then call get_permit_details to retrieve the full permit record including procedure phases, administrative decisions, appeal deadlines, and building action specifics.
curl -X GET 'https://api.parse.bot/scraper/2e31d0cd-fe7c-4be1-89b0-c4850c4edf3e/search_permits?page=0&size=5&query=Gent' \ -H 'X-API-Key: $PARSE_API_KEY'
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 omgevingsloketinzage-omgeving-vlaanderen-be-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.
from parse_apis.vlaams_omgevingsloket_inzage_api import Omgevingsloket
client = Omgevingsloket()
# Search for environmental permits in Gent
for summary in client.permitsummaries.search(query="Gent", size=5):
print(summary.project_name, summary.uuid)
# Get full details for a known permit via direct lookup
permit = client.permits.get(uuid="8uWN7Hn1Th6xIoDH8uYjbg")
print(permit.uuid, permit.overview.bevoegde_overheid)
# Navigate from a summary to its full details
result = client.permitsummary(uuid="8uWN7Hn1Th6xIoDH8uYjbg").details()
print(result.building_actions.total_elements, result.building_actions.content[0].adres)
Full-text search over Flemish environmental permits by municipality name, project name, or address. Results are paginated and sorted alphabetically by project name. Each result contains a UUID usable for detail retrieval. Returns up to size results per page; iterate pages via the 0-based page parameter until last is true.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-based) |
| size | integer | Results per page |
| queryrequired | string | Municipality name or project keyword to search for |
{
"type": "object",
"fields": {
"last": "boolean, whether this is the last page",
"size": "integer, page size",
"empty": "boolean, whether result set is empty",
"first": "boolean, whether this is the first page",
"number": "integer, current page number",
"content": "array of permit summary objects each with uuid, puuid, and projectNaam",
"pageable": "object with pagination metadata including pageNumber, pageSize, sort, offset",
"numberOfElements": "integer, count of results on this page"
},
"sample": {
"data": {
"last": false,
"size": 20,
"empty": false,
"first": true,
"number": 0,
"content": [
{
"uuid": "8uWN7Hn1Th6xIoDH8uYjbg",
"puuid": "H0nCtBT3Sl-mBrBUXVzCgw",
"projectNaam": "080.Friedrich Froebelstraat.Gent, (2026025273)"
}
],
"pageable": {
"sort": [
{
"property": "p.naam",
"direction": "ASC"
}
],
"offset": 0,
"pageSize": 20,
"pageNumber": 0
},
"numberOfElements": 20
},
"status": "success"
}
}About the Vlaanderen API
Searching Permits
The search_permits endpoint accepts a query parameter — a municipality name like Gent or Antwerpen, a street name, or a project keyword — and returns paginated results. Each item in the content array includes a uuid, a puuid, and a projectNaam. Pagination is controlled via page (0-based) and size, and the response includes a pageable object with pageNumber, pageSize, offset, and sort metadata, plus boolean first and last flags to detect page boundaries.
Permit Details
The get_permit_details endpoint accepts either the uuid from search results or an OMV project_number (e.g. 2026025273). The response bundles four distinct data objects: overview contains core permit metadata including projectnummer, bevoegdeOverheid (competent authority), beslissing (decision), and eindDatumBeroep (appeal deadline); procedure is an array of procedure phase objects with subOnderdelen sub-steps; project_info holds general project information; and building_actions returns a paginated list with totalElements and a content array describing specific building or location actions tied to the permit.
Coverage Scope
All data is scoped to Flanders (Belgium). Permits are identified by OMV reference numbers, which follow Flemish administrative numbering conventions. The bevoegdeOverheid field identifies which governmental body holds authority over each permit — useful when filtering for municipal versus provincial or regional decisions.
The Vlaanderen API is a managed, monitored endpoint for omgevingsloketinzage.omgeving.vlaanderen.be — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when omgevingsloketinzage.omgeving.vlaanderen.be 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 omgevingsloketinzage.omgeving.vlaanderen.be 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor permit activity in a specific municipality by querying
search_permitswith a municipality name and tracking newprojectNaamentries - Build a permit-status dashboard showing
beslissingandeindDatumBeroepfrom theoverviewobject for ongoing construction projects - Audit procedure compliance by inspecting the
procedurearray and itssubOnderdelenphases for a given permit UUID - Identify which competent authority (
bevoegdeOverheid) issued a permit to determine municipal vs. regional jurisdiction - Enumerate building actions tied to a parcel by iterating through
building_actions.contentfor permits matching an address query - Cross-reference an OMV project number from a physical notice board by passing it directly as
project_numbertoget_permit_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does omgevingsloketinzage.omgeving.vlaanderen.be have an official developer API?+
What does `get_permit_details` return beyond the overview?+
overview (project number, competent authority, decision, appeal end date), procedure (array of phase objects each with subOnderdelen sub-steps), project_info (general project metadata), and building_actions (paginated list of building/location actions with totalElements and a content array). Providing either a uuid or a project_number is sufficient to retrieve all four.Can I filter search results by permit status or decision type?+
search_permits filters by the query string (municipality name or keyword) and supports pagination via page and size. Filtering by beslissing (decision) or permit status is not exposed as a parameter. You can fork this API on Parse and revise it to add a status-filter endpoint if your use case requires it.Does the API cover permits from Brussels or Wallonia?+
Are document attachments or permit PDF files accessible through this API?+
inhouden array in get_permit_details provides content version references, but PDF or document retrieval is not covered. You can fork this API on Parse and revise it to add document-fetch endpoints if attachment access is needed.