Transport for Belgium API

Beginner's Pick Transportation / No Auth Required Beginner HTTPS CORS
Free to Use
59 C
Measured Score 0 50 100 Speed 5/30 Consistency 20/20 Security 16/20 Browser access 10/15 Transparency 8/15 TESTED 2026-08-10

Overview

The iRail API gives you free access to Belgian railway timetables, live train positions, and station information. It is an unofficial but well-maintained third-party API that mirrors data from the national rail operator NMBS/SNCB. Beginners will appreciate the simple REST endpoints with no authentication required.

Beginner Tip

No API key is needed — just call the endpoint with your parameters and you get JSON back immediately. Start with the /stations endpoint to get a list of all Belgian train stations.

Measurement Record

What actually happened when we called this API from our own infrastructure. Every value below was recorded by the request, not copied from the provider's documentation.

Request
GET https://api.irail.be/stations/?format=json&lang=en
Result
HTTP 200 · application/json · 121,819 bytes · compressed
Response time
568 ms (median of 3) · fastest 567 ms
Transport
TLSv1.3 · TLS_AES_256_GCM_SHA384
Browser CORS
Allowed — Access-Control-Allow-Origin: https://apisscore.com
Served by
cloudflare
Recorded
2026-08-10

Fields Returned

Top-level fields present in the response we captured, with the type and value we actually received.

Field Type Value received
version string 1.4
timestamp string 1786391656
station array [1 item]

Captured Response

Captured from a real request to https://api.irail.be/stations/?format=json&lang=en on 2026-08-10. Long arrays and nested objects are truncated to keep the shape readable.

JSON Response · Captured
{
  "version": "1.4",
  "timestamp": "1786391656",
  "station": [
    {
      "@id": "http://irail.be/stations/NMBS/008400319",
      "id": "BE.NMBS.008400319",
      "name": "'s Hertogenbosch",
      "locationX": "5.294278",
      "locationY": "51.69042",
      "standardname": "'s Hertogenbosch"
    }
  ]
}

Field Reference

id Unique identifier for the station (e.g., "BE.NMBS.008814001")
name Official name of the railway station
locationX Longitude coordinate of the station
locationY Latitude coordinate of the station
standardname Standardized station name used in routing queries

Implementation Example

Calls a real endpoint of this API. Replace any placeholder credentials with your own key.

Request
const url = "https://api.irail.be/stations/?format=json&lang=en";
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.

How This API Fails

We deliberately sent this API a broken request and recorded exactly what came back on 2026-08-10. Knowing the shape of an error before you hit it makes error handling much easier to write.

HTTP 404 Requesting a path that does not exist unknown
{
  "exception": "NotFoundException",
  "message": "HTTP 404 Not Found",
  "at": "ServerRuntime.java:271",
  "stackTrace": []
}

Common Errors & Troubleshooting

Generated guidance based on this API's documentation, not observed by us. Treat it as a starting point and check against the provider's own error reference.

No results for station Station name is misspelled or given in the wrong language
Fetch all stations first via /stations and use the exact name or ID from the response
503 Service Unavailable iRail servers are temporarily overloaded or down
This is a free community API — retry after a few minutes or check iRail's GitHub for status updates
Empty departures array Querying outside service hours or for a non-stop station
Verify the station name and ensure your time parameter falls within regular train operating hours

Measured Score Breakdown

Live HTTP request to the API endpoint

Speed 5/30
Consistency 20/20
Security 16/20
Browser access 10/15
Transparency 8/15
Endpoint Response Time 568ms

Fully tested on Aug 10, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS YES
Category Transportation
Difficulty Beginner
Endpoint last called: 2026-08-10

Related Tags

Similar APIs

View All →