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
| Name | Meaning |
|---|---|
timestamp | Return 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
| Field | Type |
|---|---|
features[].links[].href | string |
features[].links[].rel | string |
features[].links[].title | string |
features[].links[].type | string |
fid | integer |
fr_l1 | string |
fr_l2 | string |
fr_l3 | string |
fr_l4 | string |
id_mobigis | string |
last_update | string |
localisation | string |
nl_l1 | string |
nl_l2 | string |
nl_l3 | string |
nl_l4 | string |
picto | string |
sens | string |
status | string |
links[].href | string |
links[].rel | string |
links[].title | string |
links[].type | string |
numberMatched | integer |
numberReturned | integer |
timeStamp | string |
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)}")