Issue Nº 21 — Sep 6, 2026

RATP's Paris open-data catalog has 26 datasets. Accessibility is not one of them

Issue twenty-one covers Transport for Paris, France: RATP's own open-data catalog for the Paris metro, RER, tram, and bus network, built on the Opendatasoft Explore API with no key needed. This session queried it live. The catalog holds 26 datasets: 11 on per-station air quality, 9 on annual station entry traffic, 5 on network points of interest, and 1 peak-hour attendance pilot at La Défense. The catalogue's own listing claimed a theme the live data does not back up, station accessibility. That claim is now fixed.

What it covers

RATP publishes its Paris transit open data through an Opendatasoft-hosted Explore v2.1 API, separate from the region-wide Île-de-France Mobilités PRIM portal. No key or sign-up is needed for a public dataset read.

GET /catalog/datasets, queried live with a browser-style Origin header, returned 200 with total_count: 26 and an access-control-allow-origin: * header. The response also carried x-ratelimit-limit: 5000. Two calls in a row read x-ratelimit-remaining: 4955 and then 4954, so the counter is real and it decrements per request. That confirms the stored figure of 5,000 requests per day per key or IP against a live header, not just a docs page. The paired x-ratelimit-reset header names the next midnight UTC.

GET /catalog/datasets/{dataset_id}/records returned 200 for each dataset this session. The defibrillator dataset holds 448 records, licensed nearby shops 911, water fountains 91, and the RATP-network toilet dataset (sanitaires-reseau-ratp) 87.

The listing claimed accessibility data. It does not exist

This catalogue's own summary for the entry, until this session, described the API as serving "station accessibility, network reference, and points-of-interest datasets."

A live read of all 26 dataset IDs and titles found none of them. The 26 split four ways. Air quality takes 11 datasets, because one station's history is often split across several date ranges. Annual station entry traffic takes 9, one per year from 2013 to 2021. Points of interest take 5: 448 defibrillators, 91 water fountains, 911 licensed nearby shops, and two separate toilet datasets. The RATP-network one (sanitaires-reseau-ratp) holds 87 records; the City of Paris one (sanisettesparis2011) holds 610. The last dataset is a peak-hour attendance pilot at the La Défense hub. No dataset lists station or line accessibility, and none lists the network's stations or lines as a reference table.

This catalogue's summary now names what the API actually serves. A reader relying on this listing will not go looking for step-free-access data that RATP does not publish here.

Every export format resolves live

The stored formats field lists JSON, CSV, and GeoJSON. All three resolved live against the defibrillator dataset's /exports/{format} endpoint this session: /exports/json and /exports/geojson both returned 200 with content-type: application/json; charset=utf-8, and /exports/csv returned 200 with content-type: text/csv; charset=utf-8.

A request to an unregistered path, GET /bogus, returned a real 404 with error_code: NotFoundURI. That body also points the reader on: it names /api/explore/v2.1/swagger.json and links the platform docs. A request for a dataset ID that does not exist returned a real 404 with error_code: NotFoundResource, but its body only says the dataset does not exist. It names neither the spec nor the docs. In both cases the status code matches the body, unlike some other open-data feeds this column has covered.

Transport for Paris, France, by the numbers

Rendered live from the atlas entry
AuthenticationNone required
HTTPSSupported
CORSEnabled
PricingFree
FormatsJSON, CSV, GeoJSON
Rate limit

5000 requests/day per key/IP on the RATP Opendatasoft platform

Key endpoints
  • GET/catalog/datasets
  • GET/catalog/datasets/{dataset_id}/records
transitopen-dataparisratpfrance

Sources

Facts checked Sep 2026