Discover/Vlaanderen API
live

Vlaanderen APIomgevingsloketinzage.omgeving.vlaanderen.be

Search and retrieve Flemish environmental permits (omgevingsvergunningen) by location or keyword. Access permit details, procedure phases, and building actions.

Endpoint health
verified 4d ago
get_permit_details
search_permits
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

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.

Try it
Page number (0-based)
Results per page
Municipality name or project keyword to search for
api.parse.bot/scraper/2e31d0cd-fe7c-4be1-89b0-c4850c4edf3e/<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/2e31d0cd-fe7c-4be1-89b0-c4850c4edf3e/search_permits?page=0&size=5&query=Gent' \
  -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 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)
All endpoints · 2 totalmissing one? ·

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.

Input
ParamTypeDescription
pageintegerPage number (0-based)
sizeintegerResults per page
queryrequiredstringMunicipality name or project keyword to search for
Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
4d ago
Latest check
2/2 endpoints 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
  • Monitor permit activity in a specific municipality by querying search_permits with a municipality name and tracking new projectNaam entries
  • Build a permit-status dashboard showing beslissing and eindDatumBeroep from the overview object for ongoing construction projects
  • Audit procedure compliance by inspecting the procedure array and its subOnderdelen phases 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.content for permits matching an address query
  • Cross-reference an OMV project number from a physical notice board by passing it directly as project_number to get_permit_details
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does omgevingsloketinzage.omgeving.vlaanderen.be have an official developer API?+
The Flemish government publishes open data through various portals, but omgevingsloketinzage.omgeving.vlaanderen.be does not expose a publicly documented developer API with authentication keys or versioned endpoints for external use.
What does `get_permit_details` return beyond the overview?+
It returns four objects: 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?+
Currently 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?+
No. The source portal is the Flemish omgevingsloket, so coverage is limited to Flanders. Brussels and Wallonia operate separate permit registries. You can fork this API on Parse and revise it to point at those regional sources if you need cross-regional coverage.
Are document attachments or permit PDF files accessible through this API?+
The current endpoints return structured permit metadata, procedure phases, and building action data — not binary documents or file downloads. The 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.
Page content last updated . Spec covers 2 endpoints from omgevingsloketinzage.omgeving.vlaanderen.be.
Related APIs in Government PublicSee all →
losangeles.gov API
Search for building permits, inspection records, and property details for Los Angeles addresses to access permit histories, parcel information, code enforcement records, and occupancy certificates. Track retrofit programs and get comprehensive permit summaries to research property compliance and construction activity in LA.
bagviewer.kadaster.nl API
Search for Dutch addresses with autocomplete, look up building and residential unit details, and access historical records from the National Address and Building Registry. Find properties by coordinates, retrieve comprehensive building information, and explore how addresses and structures have changed over time.
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.
geoportail-urbanisme.gouv.fr API
Find parcel information and urban planning documents for any French address, instantly accessing zoning details, land use regulations, and planning requirements from the official Géoportail database. Search by address to discover property classifications, construction rules, and relevant urban planning documentation for your location.
service-public.fr API
Search the official French public service portal (service-public.fr) for practical guides, legal information, administrative procedures, and support resources. Retrieve structured content from any guide or category page, explore autocomplete suggestions, and access legal references — all through a single unified API.
evergabe-online.de API
Search and retrieve public tender opportunities from Germany's e-Vergabe platform by keywords, contract types, CPV codes, and publication dates. Access detailed tender information and discover the latest procurement opportunities across construction and other sectors.
infobel.com API
Search and retrieve business and person contact information from Infobel directories across the globe to find phone numbers, addresses, and other details. Quickly locate companies or individuals by name to build targeted contact lists or verify business information worldwide.
offenevergaben.at API
Search and explore Austrian public procurement contracts, including details about contracting authorities, suppliers, and product categories. Track government spending by accessing comprehensive information about individual contracts, the organizations that issue them, and the vendors that supply them.
Flemish Environmental Permits API | omgevingsloket · Parse