Discover/RATP API
live

RATP APIratp.fr

Real-time traffic status and disruption data for all Paris RER lines (A–E) via the RATP API. Get line status, severity levels, and active disruption details.

Endpoint health
verified 7d ago
get_rer_a_traffic
get_disruptions
get_all_traffic
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the RATP API?

This API provides real-time traffic status and disruption data for Paris RER lines A through E across 3 endpoints. The get_all_traffic endpoint returns a severity level and status summary for every line, while get_rer_a_traffic returns granular disruption objects for RER A including location, type, and French-language message text. get_disruptions surfaces only lines currently experiencing issues, making it straightforward to build alert-based workflows.

Try it

No input parameters required.

api.parse.bot/scraper/1ad63560-1ceb-42b7-9a05-919a3c27b106/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/1ad63560-1ceb-42b7-9a05-919a3c27b106/get_rer_a_traffic' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace ratp-fr-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: RATP Traffic API — monitor Paris RER line status and disruptions."""
from parse_apis.ratp_traffic_api import Ratp, TrafficStatus, TrafficUnavailable

client = Ratp()

# Get overview of all RER lines — each has a severity level and summary.
for line in client.linetraffics.list(limit=5):
    print(line.line, line.level, line.summary)

# Get detailed RER A status including disruption list.
rer_a = client.rerastatuses.get()
print(rer_a.line, rer_a.status, rer_a.status_summary)
for d in rer_a.disruptions[:3]:
    print(d.type, d.location, d.message[:80])

# List active disruptions across all lines — only lines with issues appear.
try:
    disruption = client.linedisruptions.list(limit=1).first()
    if disruption:
        print(disruption.line, disruption.status, disruption.details[:100])
except TrafficUnavailable as exc:
    print(f"traffic unavailable: {exc}")

print("exercised: linetraffics.list / rerastatuses.get / linedisruptions.list")
All endpoints · 3 totalmissing one? ·

Get real-time traffic status for RER A, including current status classification and detailed disruption information. Returns the line status (normal, planned_works, perturbed, critical), a French-language summary, and an array of active disruptions with type, location, and message. No input parameters required.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "line": "string, always 'RER A'",
    "status": "string indicating traffic condition (normal, planned_works, perturbed, critical)",
    "disruptions": "array of disruption objects each with type, location, and message strings",
    "status_summary": "string with French-language summary of the current status"
  },
  "sample": {
    "data": {
      "line": "RER A",
      "status": "planned_works",
      "disruptions": [
        {
          "type": "Travaux",
          "message": "Jusqu'au 20 juin inclus, le week-end, le trafic est interrompu entre Nanterre – Préfecture et Cergy – Le Haut en raison de travaux. Bus de remplacement.",
          "location": "Poissy / Nanterre – Préfecture"
        }
      ],
      "status_summary": "perturbation prévue"
    },
    "status": "success"
  }
}

About the RATP API

Endpoints and Response Shape

The get_all_traffic endpoint returns a traffic array covering all five RER lines. Each object includes a line name, a summary string describing current conditions, and a numeric level field where 0 means normal service and higher integers indicate increasing disruption severity. This makes it suitable for dashboards that need a quick overview without parsing long message strings.

The get_rer_a_traffic endpoint focuses exclusively on RER A and returns a status field classified as one of four values: normal, planned_works, perturbed, or critical. It also returns a disruptions array where each object includes type, location, and message fields, plus a status_summary string in French that mirrors the official RATP wording.

Disruptions Across All Lines

The get_disruptions endpoint aggregates active and upcoming perturbations across all RER lines. Critically, it only returns lines that have a non-normal status — if all lines are running normally, the response includes a message string to that effect. When disruptions exist, each item in the disruptions array carries line, status, details, and planned_disruptions fields, giving both current and forward-looking disruption context.

Coverage and Language Notes

All three endpoints cover only RATP-operated RER lines (A through E). Status summaries and disruption messages are returned in French, which reflects the source data. There are no input parameters on any endpoint — each call returns the current live state at the time of the request.

Reliability & maintenanceVerified

The RATP API is a managed, monitored endpoint for ratp.fr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ratp.fr changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official ratp.fr API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a commuter alert app that notifies users when level exceeds 0 on any RER line from get_all_traffic.
  • Display a live status board for RER A using the status classification and disruptions array from get_rer_a_traffic.
  • Filter only affected lines using get_disruptions to reduce noise in a transit monitoring dashboard.
  • Show planned maintenance windows to travellers by reading planned_disruptions from the get_disruptions response.
  • Correlate RER disruption events with ridership or delay data by timestamping get_all_traffic responses at regular intervals.
  • Surface French-language status_summary text directly in a Paris-focused travel assistant or chatbot.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does RATP have an official developer API?+
Yes. RATP exposes open data through Île-de-France Mobilités at https://prim.iledefrance-mobilites.fr, which includes GTFS and real-time feeds. This Parse API surfaces traffic status and disruption data in a simplified JSON format without requiring registration with the IDF Mobilités platform.
What does `get_disruptions` return when all lines are running normally?+
When no RER lines have an active or planned disruption, get_disruptions returns a message string indicating no disruptions are found. The disruptions array is absent or empty in that case. When issues exist, each entry in the array includes line, status, details, and planned_disruptions for that specific line.
Does the API cover Paris Métro lines or only RER lines?+
Currently the API covers RER lines A through E only. Métro lines, Transilien, and bus networks are not included. You can fork this API on Parse and revise it to add endpoints covering those additional RATP networks.
Can I filter `get_all_traffic` results to a specific RER line?+
No input parameters are available on any of the three endpoints, so client-side filtering by line name in the returned traffic array is required. You can fork this API on Parse and revise it to add a line parameter to the endpoint.
How fresh is the traffic data, and is historical disruption data available?+
Each call returns the current live state at the time of the request. There is no historical disruption archive exposed by the API — only the present status and any currently active or announced upcoming disruptions. You can fork this API on Parse and revise it to log responses over time if historical tracking is needed.
Page content last updated . Spec covers 3 endpoints from ratp.fr.
Related APIs in TravelSee all →
rfi.it API
Check real-time train schedules and station information across Italy's railway network, search for stations, and get live alerts about delays and service disruptions. Monitor train circulation status and access detailed station mappings to plan your journeys efficiently.
citymapper.com API
Get real-time transit information including live stop arrivals, service status, and line details across major cities worldwide. Search for nearby transit options and stay informed with service alerts to plan your commute efficiently.
nationalrail.co.uk API
Check live train departure and arrival times at UK stations, search for specific stations, and get real-time service disruption alerts. Stay informed about rail service delays and changes to plan your journeys efficiently.
mbta.com API
Track real-time subway, bus, and commuter rail departures across Greater Boston, check schedules and service alerts, and find detailed information about routes and stops. Plan your commute with up-to-the-minute MBTA transit data and never miss your connection.
metro.istanbul API
Plan your Istanbul Metro trips by checking real-time service status, finding stations on specific lines, and looking up current ticket prices. Access detailed information about all metro lines and the complete network map to navigate the city's transit system efficiently.
reise.ruter.no API
Access real-time bus arrivals and departures for Oslo's public transit network (Ruter). Search for stops by name and retrieve live schedules with up-to-the-minute tracking across buses, trams, and metro lines.
railyatri.in API
Search trains between stations and get real-time information including live train status, timetables, seat availability, and PNR confirmation details. Find the perfect journey by autocompleting station and train names while checking current availability and train schedules.
trenitalia.com API
Search for trains across Italy, check real-time train status and delays, view station departure and arrival boards, and find available tickets all in one place. Get live traffic information and detailed train itineraries to plan your journey with complete visibility into schedules and service disruptions.