Transport for Hessen, Germany API

Free to Use Varies (check documentation)

Overview

The RMV API provides public transport data for the Hessen region in Germany, including schedules, routes, and real-time departures. It covers bus, tram, S-Bahn, and regional train services operated by the Rhein-Main-Verkehrsverbund network. No API key is required, making it easy to start building transit apps right away.

Beginner Tip

Explore the interactive API documentation at opendata.rmv.de to try live requests directly in your browser before writing any code. The API follows HAFAS standards used across European transit systems, so learning it here will help with other transit APIs too.

Available Data

match scores and results
team standings
player statistics
schedule and fixtures

Example Response

JSON Response
{
  "route": "Line 1",
  "origin": "Station A",
  "destination": "Station B",
  "departure": "08:30",
  "arrival": "09:15",
  "status": "On Time",
  "delays_min": 0
}

Field Reference

stopLocationOrCoordLocation List of matching stop locations returned by a location search, each containing the station name and its unique extId.
extId The external identifier for a stop, used to query departures and arrivals for that specific station.
Departure List of upcoming departure events at a station, including line name, direction, and scheduled time.
name Human-readable name of the transit line or stop location.
time Scheduled departure or arrival time in HH:MM:SS format.
rtTime Real-time adjusted departure or arrival time; present only when live data is available.

Implementation Example

Request
const url = "https://opendata.rmv.de/site/";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

Empty or unexpected response The API requires a valid access ID even though it is labeled as free; registration on the portal is needed.
Register at opendata.rmv.de to obtain an access ID, then include it as the accessId query parameter.
400 Bad Request on location search The input parameter is missing or the station name contains unsupported characters.
URL-encode the station name and ensure the input parameter is present, e.g. input=Frankfurt%20Hauptbahnhof.
No departures returned The requested time window may be in the past or the station ID is incorrect.
Use location.name first to get the correct extId (station ID), then use that ID in the departureBoard endpoint.

Metadata Score Breakdown

Estimated from metadata — endpoint not independently tested

This score is estimated from observable metadata — HTTPS support, authentication model, declared CORS, and documentation reachability — because the API requires authentication or exposes no publicly testable endpoint. The five-signal breakdown is only shown for live-tested APIs.

Metadata estimate · endpoint not independently tested

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Category Transportation
Difficulty Beginner
Verified: 2026-04-04

Related Tags

Similar APIs

View All →