GIPOD History: Antwerp roadworks and date changes avatar

GIPOD History: Antwerp roadworks and date changes

Pricing

Pay per usage

Go to Apify Store
GIPOD History: Antwerp roadworks and date changes

GIPOD History: Antwerp roadworks and date changes

GIPOD roadworks and street occupations around an Antwerp address, with first and last seen dates and every change to start, end or status since a given day. One result per work. Suggested price: $0.005 per work returned.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Senne Bels

Senne Bels

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Features

Limited permissions

Share

GIPOD is the Flemish register of roadworks and other uses of the public road (markets, events, building sites, parking bans). Its map service answers with what is registered now. This actor answers with what was registered around an address over time: every work and street occupation within up to 1000 m, when it was first and last seen, and every change to its published start date, end date or status since a day you pick.

The data comes from the Stadiq GIPOD archive, which has read GIPOD daily since 11 April 2026.

Input

FieldRequiredDescription
addressone of address or lat/lngA street address in Belgium, e.g. Lange Lozanastraat 142, 2018 Antwerpen.
lat, lngone of address or lat/lngWGS84 coordinates. Used instead of the address when both are given.
radiusMetersnoRadius around the point, 1 to 1000. Default 500.
sincenoFirst day to include, YYYY-MM-DD. Default: the start of the archive.
untilnoLast day to include, YYYY-MM-DD. Default: today.
maxResultsnoStop after this many works. Default 200.

Output

One dataset item per work, nearest first:

{
"gipod_id": "12350353",
"title": "Gemengde markt\nDesguinlei",
"kind": "occupation",
"status": { "published": "Lopende", "mapped": "unknown" },
"first_seen": "2026-04-11",
"last_seen": "2026-10-24",
"days_seen": 194,
"start": "2026-10-23T09:30:00Z",
"end": "2027-04-23T14:30:00Z",
"revisions": [
{ "seen_at": "2026-09-04", "field": "end", "from": "2027-02-26T15:30:00Z", "to": "2027-03-05T15:30:00Z" },
{ "seen_at": "2026-09-06", "field": "start", "from": "2026-09-04T09:30:00Z", "to": "2026-09-11T09:30:00Z" }
],
"revision_count": 15,
"distance_m": 777,
"lat": 51.197357115,
"lng": 4.394453540000001,
"query": { "lat": 51.1931, "lng": 4.4033, "address": null, "radius_m": 1000, "since": "2026-09-01", "until": "2026-11-08" },
"coverage_state": "gaps",
"source": "GIPOD",
"licence": "Modellicentie Gratis Hergebruik Vlaanderen v1.0",
"attribution": "Bevat overheidsinformatie, verkregen onder de Modellicentie Gratis Hergebruik Vlaanderen v1.0 (bron: Digitaal Vlaanderen, GIPOD)."
}

(Abridged: this market had 15 revisions in the window; two are shown.)

  • kind is work for groundworks and occupation for other uses of the street, such as a weekly market.
  • status.published is GIPOD's own status in Dutch. status.mapped is that status and the dates mapped to active, planned, ended or unknown for today. An occupation inside its date window is unknown, never active.
  • start and end are as published in the latest capture, in UTC.
  • revisions lists every change to start, end or status seen inside your window, oldest first. Weekly markets roll their dates forward every week, and that shows up here.

The run also writes a COVERAGE record to the default key-value store. Read it before you read the dataset.

Coverage and its limits

  • Area: Antwerp and 15 km around its centre (51.2194, 4.4025). A point whose radius reaches past that circle fails with outside_archive_area instead of returning an empty list.
  • Time: from 11 April 2026. Nothing before the first capture is known; COVERAGE.coverage.window_starts_before_archive says when your window starts earlier.
  • Missing days: the archive has gaps. COVERAGE.coverage.missing_days lists every day in your window that was not captured. A work can have changed on a missing day; the change then shows on the next captured day.
  • Truncated reads: GIPOD caps a single read, so on some days it returned only part of the register. partial_capture_days counts them. A work can be absent on such a day without having ended.
  • Live check: each run also reads GIPOD live for the same point. live_gipod.not_yet_archived counts works GIPOD lists now that the archive has not captured.
  • Unavailable is not empty: if no day of your window was captured, the run fails with a message and charges nothing for results. It never reports a quiet street it did not look at.

Licence and attribution

The data is public-sector information from GIPOD, published by Digitaal Vlaanderen under the Modellicentie Gratis Hergebruik Vlaanderen v1.0. Commercial reuse is allowed with attribution. Every item carries the attribution text; show it wherever you republish the data.

Pricing

Pay per event: one work-returned event per dataset item. Suggested price: $0.005 per work. For scale: on 8 November 2026 GIPOD listed 18 registrations within 500 m of the Desguinlei and 77 within 1000 m. The run stops when your spending limit is reached and pushes nothing it cannot charge for.

Publishing (for the actor owner)

  1. Create or sign in to an Apify account.
  2. npx apify-cli login and paste the API token from Apify Console, Settings, API & Integrations.
  3. Store the Stadiq API key as a CLI secret (a key on the api plan, created at https://stadiq.app/developers): npx apify-cli secrets add stadiqApiKey sq_live_… .actor/actor.json maps it to the STADIQ_API_KEY environment variable, and apify push stores it on the actor as a secret value that users cannot read.
  4. From this directory: npx apify-cli push.
  5. In Apify Console, open the actor, Publication: set the pricing model to pay per event, add the event work-returned (title "Work returned", description "One GIPOD work in the dataset") at the price you choose, fill in the Store details, and publish.
  6. Run it once with the prefilled input and check the dataset and the COVERAGE record.

To rotate the key: npx apify-cli secrets add stadiqApiKey <new key> (remove the old one first with secrets rm), then npx apify-cli push again, or edit the secret under Source, Environment variables in Console.

Local test

npm install
npm test

The test runs the actor's run() against a mocked Stadiq API with a fake Apify Actor, and checks paging, one charge per pushed item, the spending-limit stop and the unavailable case.