Message signs

Traffic: counters, message signs, events and car parks

Format
JSON
Updates
Every minute
Latest snapshot
Snapshots stored
about 11,465
curl -H "Authorization: Bearer $MOBILITYTWIN_TOKEN" "https://api.mobilitytwin.brussels/traffic/message-signs"

What the variable message signs on the Brussels motorways, ring and tunnels currently display, one entry per sign: up to four lines in French (fr_l1–fr_l4) and Dutch (nl_l1–nl_l4), an optional pictogram URL (picto), and a status ("OK" or "Non OK" when the sign is not reporting). last_update is in Brussels local time. There are no positions here: join on id_mobigis with the message-sign-locations endpoint.

Which days have data

Data from 22 Oct 2026 to 2 Nov 2026, on 12 days. 11 of the last 30 days have data. A typical day holds 1007 snapshots. Days are in UTC.

2026
JanFebMarAprMayJunJulAugSepOctNovDec
  • Full day
  • Partial, 50–90% of a typical day
  • Low, under 50%
  • No snapshot
  • Not expected

Click a day above, or pick a date, to get its requests.

Parameters

NameMeaning
timestampReturn the last snapshot at or before this moment, in Unix seconds or ISO 8601 (e.g. 2026-05-06T12:00:00Z). Without it, the latest snapshot is returned.

Response fields

FieldType
features[].links[].hrefstring
features[].links[].relstring
features[].links[].titlestring
features[].links[].typestring
fidinteger
fr_l1string
fr_l2string
fr_l3string
fr_l4string
id_mobigisstring
last_updatestring
localisationstring
nl_l1string
nl_l2string
nl_l3string
nl_l4string
pictostring
sensstring
statusstring
links[].hrefstring
links[].relstring
links[].titlestring
links[].typestring
numberMatchedinteger
numberReturnedinteger
timeStampstring

Python example

import requests

url = "https://api.mobilitytwin.brussels/traffic/message-signs"

data = requests.get(url, headers={
        'Authorization': 'Bearer [MY_API_KEY]'
}).json()

# Print what each working sign displays, in French
for feature in data["features"]:
    sign = feature["properties"]
    lines = [sign[f"fr_l{i}"] for i in range(1, 5) if sign[f"fr_l{i}"]]
    if sign["status"] == "OK" and lines:
        print(f"{sign['id_mobigis']} ({sign['localisation']}): {' / '.join(lines)}")