Transport for Norway API

⭐ Beginner's Pick Transportation / No Auth Required Beginner HTTPS
Free to Use Varies (check documentation)

Overview

Entur is the Norwegian national journey planner API, providing comprehensive public transport data covering trains, buses, ferries, and trams across all of Norway. The API is free and requires no authentication, making it one of the most beginner-friendly transit APIs in Europe. It uses GraphQL, which lets you request exactly the data fields you need in a single query.

💡

Beginner Tip

Entur uses GraphQL rather than REST, so all requests go to a single endpoint as POST requests with a JSON body containing your query. Visit api.entur.io/journey-planner/v3/ide/ to use the built-in GraphQL explorer to write and test queries interactively.

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

stopPlace.name The official name of the transit stop, such as Oslo Bussterminal or Bergen stasjon.
estimatedCalls List of upcoming departures from the stop, each containing timing and destination information.
expectedDepartureTime ISO 8601 timestamp of the predicted departure time, accounting for real-time delays.
destinationDisplay.frontText The destination text shown on the front of the vehicle, e.g. Nationaltheatret.
serviceJourney.line.publicCode The public-facing line number or name, such as 31 or Flåmsbana.
quay.id Unique NSR identifier for a specific platform or quay at a stop, used for precise departure queries.

Implementation Example

const url = "https://developer.entur.org/";
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

GraphQL syntax error in response The query body contains invalid GraphQL syntax or missing required fields.
Use the GraphQL IDE at api.entur.io/journey-planner/v3/ide/ to validate your query before sending it via curl or code.
Empty estimatedCalls array There are no upcoming departures at the requested stop within the default time window.
Increase the numberOfDepartures parameter and check that the stop ID is valid using the geocoder API to look up correct NSR stop IDs.
429 Too Many Requests Too many requests were sent in a short period without identifying your client.
Always include the ET-Client-Name header with a descriptive name for your application to help Entur monitor usage fairly.

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 20/20
🔒 Security 15/15
🛠 Developer XP 15/20
✓ Reliability 7/15
Response Time 61ms

Fully tested on Apr 5, 2026

Technical Specifications

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

Similar APIs

View All →