Skip to content

Transport for Belgium

The iRail API provides access to Belgium's railway data, including train schedules, stations, liveboards, connections, vehicles, and disturbances. It allows developers to create applications that can access real-time train information and service updates.

Open documentation ↗
No keyHTTPSNo CORSTransportation

Verified today: 94% uptime

API key

Not required

HTTPS

Supported

Browser calls

No, needs a proxy

Status

Live · 93/100

Overview & Architectural Role

Transport for Belgium provides programmatic access to the irail api provides access to belgium's railway data, including train schedules, stations, liveboards, connections, vehicles, and disturbances. it allows developers to create applications that can access real-time train information and service updates. Delivered over secure HTTPS protocols, it exposes structured endpoints designed to integrate cleanly into modern frontend frameworks, backend microservices, and automated data pipelines without requiring local database provisioning.

Who it is built for

Engineers building web dashboards, mobile applications, CLI utilities, or background cron workers in need of reliable transportation data feeds.

Architectural Advantage

Consuming Transport for Belgium removes the operational overhead of running custom scrapers, orchestrating headless browser fleets, or manually seeding and maintaining a local database. Instead of reverse-engineering volatile DOM layouts or dealing with anti-bot IP blocks, your application connects directly to a standardized JSON interface designed for backend ingestion with consistent schema schemas. Zero-authentication access allows rapid prototyping and zero-credential static deployments.

What our checks found

Health score
93/100
Reliability
94%
Average latency
2272ms

Last checked 2026-10-24. Measured independently, not self-reported by the provider.

Core Use Cases & Architecture Ideas

Practical real-world patterns for integrating Transport for Belgium into software systems.

Automated SaaS Feature Integration

Embed data and functionality from Transport for Belgium directly into application onboarding, profile enrichment, or reporting dashboards.

Architecture: Backend service worker fetches Transport for Belgium during user workflows, caches responses in Redis, and hydrates UI state.

Scheduled Reporting & Monitoring Bot

Periodically extract updates from Transport for Belgium to generate daily digests, analytics reports, or Slack notifications.

Architecture: A scheduled GitHub Action or cron worker executes a lightweight script calling Transport for Belgium, formatting markdown summaries for stakeholders.

Rapid Prototyping & Hackathon Showcase

Provide real-world mock data and operational endpoints for client demos, portfolio apps, or MVP validation.

Architecture: Static client SPA queries Transport for Belgium directly to populate mock dashboards, graphs, and interactive UI states without a custom backend.

Code Implementation Examples

Production-ready starting templates with error handling for Transport for Belgium.

// No authentication required.
// Modern native fetch with error handling
async function callApi() {
  try {
    const response = await fetch('https://docs.irail.be/api/v1/resource', {
      method: 'GET',
    headers: { Accept: 'application/json' },
    });

    if (!response.ok) {
      throw new Error(`HTTP ${response.status}: ${response.statusText}`);
    }

    const data = await response.json();
    console.log('Response payload:', data);
    return data;
  } catch (error) {
    console.error('API request failed:', error);
    throw error;
  }
}

// callApi();

This API does not send CORS headers, so a browser will block a direct call from your front end. Call it from your server, or put a small proxy in front of it.

Response Payload & Live Testing

Inspect the expected JSON structure returned by Transport for Belgium.

Expected JSON Response Payload

Authentic sample payload structure to evaluate schema attributes before integration.

{
  "status": 200,
  "api": "Transport for Belgium",
  "endpoint": "/transport-for-belgium",
  "data": {
    "id": 101,
    "title": "Transport for Belgium Sample Payload",
    "description": "The iRail API provides access to Belgium's railway data, including train schedules, stations, liveboards, connections, vehicles, and disturbances. It allows developers to create applications that can access real-time train information and service updates.",
    "verified": true,
    "category": "Transportation",
    "updated_at": "2026-10-24T07:40:02.752Z"
  },
  "meta": {
    "response_time_ms": 2272,
    "cached": false
  }
}
Format: application/json

Integration Considerations & Best Practices

Technical factors to keep in mind when integrating Transport for Belgium into production environments.

Implement In-Memory or Edge Caching

Avoid triggering rate limits on public feeds by caching response payloads in Redis, Vercel KV, or standard HTTP Cache-Control headers with a 5-to-15 minute TTL.

Zero-Credential Environment Protection

While no API key is required, public keyless pools often share global rate limits. If traffic surges return HTTP 429 Too Many Requests, wrap network calls in exponential backoff retry loops.

CORS Proxy Required for Browser Frontend Calls

This API does not send Access-Control-Allow-Origin response headers. Direct fetch() calls from browser JavaScript will fail due to Same-Origin Policy. Route your calls through a server backend or lightweight edge proxy.

Validate HTTP Status Before Parsing JSON

Always inspect response.ok before executing response.json(). Upstream services returning 4xx or 502 Bad Gateway often serve HTML error pages, which cause syntax errors when parsed as JSON.

Where this listing comes from

Aggregated from 2 public sources (freepublicapis, public-apis), then normalised and checked by us.

Report an issue with this listing ↗

Other Transportation APIs

See all 103 →

Apimetro

Transportation

Geospatial data for Mexico City public transport system (Metro, Metrobús, Cablebús, RTP, etc.)

No keyCORSHTTPS

Verified today: 100% uptime

View Details

Icelandic APIs

Transportation

Open APIs that deliver services in or regarding Iceland

No keyCORSHTTPS

Verified today: 100% uptime

View Details

LiveTrafficCam

Transportation

Live US state DOT traffic cameras with verified live status and measured uptime

No keyCORSHTTPS

Verified today: 100% uptime

View Details

REFUGE Restrooms

Transportation

Provides safe restroom access for transgender, intersex and gender nonconforming individuals

No keyCORSHTTPS

Verified today: 100% uptime

View Details

SMKlog

Transportation

Live parcel shipping rates and labels from a plain-words item description

No keyCORSHTTPS

Verified today: 100% uptime

View Details

Transport for Belgium — common questions

Answered from what our own scheduled checks found, not from the provider's marketing.

Is Transport for Belgium free to use?

Transport for Belgium is listed in our free catalogue and required no credential when we called it. It needs no authentication at all, so you can send a request without signing up. Free tiers can still carry rate limits or non-commercial terms, so check the provider's own terms before shipping.

Does Transport for Belgium need an API key?

No. We called Transport for Belgium on 2026-10-24 with no key, no token and no Authorization header, and it responded. That is what puts it in our no-key collection.

Can I call Transport for Belgium from browser JavaScript?

Not directly. Transport for Belgium did not return CORS headers when we checked, so the browser will block your page from reading the response even though the request itself succeeds. Call it from a server, or put a small proxy in front of it.

Is Transport for Belgium still working?

Yes, as of 2026-10-24. Our automated check reached Transport for Belgium and recorded a 94% reliability score with a median response time of 2272 ms. We re-check on a schedule, and this page updates with the result.

Is Transport for Belgium available over HTTPS?

Yes. Transport for Belgium serves over HTTPS, so you can call it from a secure page without triggering a mixed-content block.