Message sign locations
Traffic: counters, message signs, events and car parks
- Format
- GeoJSON
- Updates
- Daily
- Latest snapshot
- Snapshots stored
- about 11
curl -H "Authorization: Bearer $MOBILITYTWIN_TOKEN" "https://api.mobilitytwin.brussels/traffic/message-sign-locations"
The positions of the variable message signs in Brussels, with the road (localisation), direction
(sens) and road type (typemg). id_mobigis links each sign to what it displays in
the message-signs endpoint.
Which days have data
Data from 22 Oct 2026 to 2 Nov 2026, on 11 days. 10 of the last 30 days have data. A typical day holds 1 snapshot. 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
A GeoJSON FeatureCollection. Field names without a prefix are in each feature's properties.
| Field | Type |
|---|---|
bbox | array |
crs.properties.name | string |
crs.type | string |
features[].bbox | array |
features[].geometry_name | string |
distance | number |
fid | integer |
id_mobigis | string |
index | integer |
live_display | string |
localisation | null or string |
quadrant | string |
segment | integer |
sens | null or string |
type | string |
typemg | null or string |
numberReturned | integer |
timeStamp | string |
totalFeatures | string |
Python example
import requests
import pandas as pd
import geopandas as gpd
headers = {'Authorization': 'Bearer [MY_API_KEY]'}
locations = requests.get(
"https://api.mobilitytwin.brussels/traffic/message-sign-locations", headers=headers
).json()
displays = requests.get(
"https://api.mobilitytwin.brussels/traffic/message-signs", headers=headers
).json()
gdf = gpd.GeoDataFrame.from_features(locations["features"])
shown = pd.DataFrame([f["properties"] for f in displays["features"]])
# Put each sign's current text on the map
gdf = gdf.merge(shown[["id_mobigis", "status", "fr_l1", "fr_l2"]], on="id_mobigis", how="left")
gdf.plot(figsize=(10, 8), column="status", legend=True, markersize=20)