Incidents

Fix My Street: problems citizens report in public space

Format
GeoJSON
Updates
Daily
Latest snapshot
Snapshots stored
about 235
curl -H "Authorization: Bearer $MOBILITYTWIN_TOKEN" "https://api.mobilitytwin.brussels/fixmystreet/incidents"
Get a token

Geolocated incidents reported by citizens on the Fix My Street platform in the Brussels-Capital Region. Updated daily.

Which days have data

Data from 25 Feb 2026 to 2 Nov 2026, on 247 days. 30 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

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

A GeoJSON FeatureCollection. Field names without a prefix are in each feature's properties.

FieldTypeMeaning
idinteger
creationDatestring
updatedDatestring
statusstring
location.address.streetNumberstring
location.address.streetNameFrstring
location.address.streetNameNlstring
location.address.postalCodestring
location.address.addressTypestring
responsibleOrganisation.idinteger
responsibleOrganisation.nameFrstring
responsibleOrganisation.nameNlstring
responsibleOrganisation.nameEnstring
responsibleOrganisation.typestring
category.nameFrstring
category.nameNlstring
category.nameEnstring
category.publicboolean
category.idinteger
category.parentIdinteger
responsibleDepartment.idinteger
responsibleDepartment.nameFrstring
responsibleDepartment.nameNlstring
responsibleDepartment.nameEnstring
closedDatestring or nullWhen the incident was closed; null while it is open

Python example

import requests
import geopandas as gpd

from datetime import datetime, timedelta, timezone

yesterday_noon = (datetime.now(timezone.utc) - timedelta(days=1)).replace(
    hour=12, minute=0, second=0, microsecond=0
)
params = {
    "timestamp": yesterday_noon.isoformat(),   # ISO accepted; epoch also works
}

url = "https://api.mobilitytwin.brussels/fixmystreet/incidents"

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

gdf = gpd.GeoDataFrame.from_features(data["features"])

# Count incidents by category
categories = gdf['category.nameEn'].value_counts()
print("Incidents by category:")
print(categories.head(10))

# Count incidents by status
statuses = gdf['status'].value_counts()
print(f"\nBy status: {dict(statuses)}")

# Plot incidents on a map
gdf.plot(figsize=(10, 8), column='status', legend=True, markersize=3)