VOOZH about

URL: https://apify.com/studio-amba/nmbs-scraper

⇱ NMBS SNCB Scraper - Belgian Train Schedules · Apify


👁 NMBS/SNCB Scraper — Belgian Train Schedules & Data avatar

NMBS/SNCB Scraper — Belgian Train Schedules & Data

Pricing

from $8.00 / 1,000 result scrapeds

Go to Apify Store

NMBS/SNCB Scraper — Belgian Train Schedules & Data

Fetch Belgian railway data from the iRail API — train connections, live departures, arrivals, and the full station list for NMBS/SNCB.

Pricing

from $8.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

👁 Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

6 days ago

Last modified

Categories

Share

NMBS/SNCB Scraper -- Belgian Railway Connections, Live Departures & Station Data

Extract Belgian train data from the NMBS/SNCB railway network -- route connections with transfers and durations, real-time station departure boards, and the complete list of 550+ Belgian railway stations. Powered by the open iRail API.

What is NMBS Scraper?

NMBS (Nationale Maatschappij der Belgische Spoorwegen) -- also known as SNCB in French -- is Belgium's national railway company. It operates over 4,000 daily train services connecting 550+ stations across the country. This actor does not scrape a product catalogue; it extracts live transport data.

The actor talks to the iRail API, a community-maintained open data project that provides real-time access to NMBS/SNCB schedules, delays, platform assignments, and occupancy levels. Three modes of operation:

  • Connections mode -- find routes between two stations with departure times, arrival times, durations, number of transfers, train types, delay information, and occupancy levels. Ideal for route planning applications and fare comparison.
  • Liveboard mode -- get the real-time departure board for any Belgian station, including delays, platform changes, and cancellations. Perfect for station display boards and delay monitoring.
  • Stations mode -- export the full list of Belgian railway stations with names, coordinates, and unique identifiers. Useful for building geographic databases and transport network analysis.

What people build with this data:

  • Commuter apps -- developers build dashboards showing live train status for daily commuters on specific routes.
  • Delay analytics -- researchers and journalists track punctuality on Belgian railway lines to measure service quality over time.
  • Route planning -- travel agencies and corporate travel teams find optimal connections for their Belgian itineraries.
  • Station network analysis -- urban planners and real estate analysts use station coordinates and connectivity data to study accessibility.
  • Transport data enrichment -- logistics companies overlay Belgian rail data with their delivery network to identify multimodal transport options.

What data does NMBS Scraper extract?

Connections mode

  • :bullettrain_side: Departure/arrival station -- official station names
  • :clock1: Departure/arrival time -- ISO datetime with timezone
  • :triangular_flag_on_post: Platforms -- assigned platform numbers
  • :hourglass_flowing_sand: Duration -- formatted (e.g., "1h 23min") and raw seconds
  • :arrows_counterclockwise: Transfers -- number of transfers required
  • :warning: Delays -- delay in minutes at departure and arrival
  • :no_entry: Cancellation status -- whether the connection is cancelled
  • :train: Train types -- IC, L, S, P train identifiers
  • :busts_in_silhouette: Occupancy -- estimated passenger load (low/medium/high)

Liveboard mode

  • :station: Station -- the station being monitored
  • :arrow_right: Destination -- where each train is heading
  • :clock3: Time and delay -- scheduled departure and delay in minutes
  • :1234: Platform -- current platform assignment
  • :railway_car: Vehicle info -- train type and number

Stations mode

  • :id: Station ID -- unique iRail identifier
  • :abc: Name -- standard and localised station names
  • :world_map: Coordinates -- latitude and longitude for geographic mapping

How to scrape Belgian train data

FieldTypeRequiredDescription
modeStringYes"connections", "liveboard", or "stations"
fromStationStringConnectionsDeparture station: "Brussel-Zuid", "Gent-Sint-Pieters"
toStationStringConnectionsArrival station: "Antwerpen-Centraal", "Brugge"
stationStringLiveboardStation to monitor: "Brussel-Zuid"
dateStringNoDate in DD/MM/YYYY format: "15/03/2026"
timeStringNoTime in HH:MM format: "08:30"
languageStringNo"nl", "fr", "en", or "de" (default: "en")
maxResultsIntegerNoMaximum results (default: 20, max: 1,000)
proxyConfigurationObjectNoProxy settings (usually not needed for iRail)

Tips:

  • Use official station names. The iRail API is forgiving, but "Brussel-Zuid" works better than "Brussels South". Set language: "nl" or "fr" to get names in your preferred language.
  • For commuter monitoring, set mode: "liveboard" with your home station and schedule the actor to run every 15 minutes during rush hours.
  • To build a complete station database, set mode: "stations" with maxResults: 1000 -- there are roughly 550 active stations.

Output

Connections example

{
"departureStation":"Brussel-Zuid / Bruxelles-Midi",
"departureTime":"2026-04-03T08:32:00.000Z",
"departurePlatform":"3",
"departureDelay":0,
"arrivalStation":"Antwerpen-Centraal",
"arrivalTime":"2026-04-03T09:09:00.000Z",
"arrivalPlatform":"12",
"arrivalDelay":2,
"duration":"37min",
"durationSeconds":2220,
"transfers":0,
"vehicles":["IC 1532"],
"canceled":false,
"occupancy":"medium",
"scrapedAt":"2026-04-03T08:00:00.000Z"
}

Liveboard example

{
"station":"Gent-Sint-Pieters",
"destination":"Oostende",
"time":"2026-04-03T09:15:00.000Z",
"delay":5,
"platform":"7",
"vehicle":"IC 1842",
"vehicleType":"IC",
"canceled":false,
"occupancy":"low",
"scrapedAt":"2026-04-03T09:10:00.000Z"
}

Stations example

{
"id":"BE.NMBS.008892007",
"name":"Ghent-Sint-Pieters",
"standardName":"Gent-Sint-Pieters",
"longitude":3.7107,
"latitude":51.0355,
"scrapedAt":"2026-04-03T09:00:00.000Z"
}

How much does it cost?

NMBS Scraper makes direct API calls to iRail -- no browser needed, no heavy crawling:

OperationEstimated CUsEstimated Cost
20 connections~0.005~$0.003
100 liveboard departures~0.005~$0.003
All 550 stations~0.005~$0.003

This is one of the cheapest actors to run because it simply queries a public REST API.

Can I integrate?

Belgian train data flows into your tools:

  • Google Sheets -- build a commuter delay log updated every morning
  • Slack -- get notified when your commuter train is delayed or cancelled
  • Zapier / Make -- trigger workflows based on delay thresholds
  • Webhooks -- pipe real-time departure data to your own application
  • PostgreSQL / MongoDB -- build a historical Belgian railway performance database
  • Google Maps / Mapbox -- visualise station coordinates on interactive maps

Can I use it as an API?

Yes. Perfect for building real-time transport dashboards:

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/nmbs-scraper").call(run_input={
"mode":"connections",
"fromStation":"Brussel-Zuid",
"toStation":"Antwerpen-Centraal",
"time":"08:30",
"maxResults":5,
})
for conn in client.dataset(run["defaultDatasetId"]).iterate_items():
delay =f"+{conn['departureDelay']}min"if conn['departureDelay']>0else"on time"
print(f"{conn['departureStation']} -> {conn['arrivalStation']} | {conn['duration']} | {delay}")

JavaScript:

import{ ApifyClient }from"apify-client";
const client =newApifyClient({token:"YOUR_API_TOKEN"});
const run =await client.actor("studio-amba/nmbs-scraper").call({
mode:"liveboard",
station:"Gent-Sint-Pieters",
maxResults:10,
});
const{ items }=await client.dataset(run.defaultDatasetId).listItems();
items.forEach((d)=>{
const delay = d.delay >0?` (+${d.delay}min)`:"";
console.log(`${d.vehicle} -> ${d.destination} at ${d.time}${delay} platform ${d.platform}`);
});

FAQ

Is this real-time data? Yes. The iRail API provides live data from the NMBS/SNCB systems, including current delays and platform changes.

Do I need an iRail API key? No. The iRail API is open and free. This actor handles all the request formatting and response parsing for you.

Can I query Thalys, Eurostar, or ICE international trains? iRail focuses on domestic Belgian trains. International high-speed services may appear in connections passing through Belgian stations, but coverage is limited.

What happens if a station name is wrong? The iRail API will return an error if it cannot match the station name. Use the stations mode first to get exact names.

Can I track a specific train number? Not directly. Use liveboard mode to monitor departures from a station, which includes train numbers (vehicle identifiers).

Does the scraper support bus or tram data? No. Only NMBS/SNCB railway services. For De Lijn (Flemish buses/trams) or STIB/MIVB (Brussels), different data sources are needed.

Limitations

  • Depends on the iRail API. If iRail is down or rate-limited, the actor will fail gracefully with an error message.
  • Connection results are limited to what iRail returns per query (typically 6-10 options per time slot). For more, shift the time window.
  • Occupancy data is estimated and not always available for every train.
  • Station names must match iRail's database. Use mode: "stations" to get the authoritative list.
  • Historical data is not available -- iRail only serves current/upcoming schedules.

Related Belgian transport and travel scrapers

Your feedback

Need additional transport data, want to track specific routes over time, or found an issue? Reach out through the Apify platform or open a GitHub issue. We build what users ask for.

You might also like

SBB Scraper — Swiss Train Timetable & Connections

studio-amba/sbb-scraper

Scrape Swiss Federal Railways (SBB) train connections, timetables, and schedules. Search by station name and date. Returns departure times, arrival times, duration, train types, platforms, and transfer details. No login or cookies required.

👁 User avatar

Studio Amba

2

IRCTC Train Data Scraper

scrapingshark/irctc-train-data-scraper

The IRCTC Train Data Scraper is an actor designed to automate the extraction of real-time train-related data from the Indian Railway Catering and Tourism Corporation (IRCTC) website. It fetches information such as trains between stations, seat availability, fare details, train routes and more.

👁 User avatar

ScrapingShark

32

Deutsche Bahn Train Tickets & Connections Scraper

jindrich.bar/deutsche-bahn-ticket-scraper

Scrape live Deutsche Bahn train connections, schedules, ticket prices, transfers, delays, and fares across Germany and Europe. Extract structured DB timetable data for travel apps, price monitoring, analytics, and AI agents.

👁 User avatar

Jindřich Bär

13

5.0

České Dráhy Train Ticket & Connection Scraper

jindrich.bar/ceske-drahy-connections

Scrape train connections from České Dráhy (Czech state railways) with departure dates, prices, train types, and more.

👁 User avatar

Jindřich Bär

4

5.0

ÖBB Train Ticket and Connection Scraper

jindrich.bar/oebb-ticket-scraper

Scrape live Austrian Federal Railways train connections, schedules, ticket prices, transfers, delays, and fares across Austria and Europe. Extract structured ÖBB timetable data for travel apps, price monitoring, analytics, and AI agents.

👁 User avatar

Jindřich Bär

3

5.0

SEPTA Train View Scraper

parseforge/septa-train-view-scraper

Stream live SEPTA Regional Rail train positions around Philadelphia with line, train number, origin, destination, current station, and delay minutes. Filter by line such as Paoli or Trenton to power commuter dashboards, alert bots, or transit reliability studies.

2

SNCF Train Ticket and Connection Scraper

jindrich.bar/sncf-train-ticket-scraper

Scrape live SNCF train connections, schedules, ticket prices, transfers, delays, and fares across France and Europe. Extract structured SNCF timetable data for travel apps, price monitoring, analytics, and AI agents.

👁 User avatar

Jindřich Bär

4

5.0

Amtrak Train Tracker Scraper

parseforge/amtrak-train-tracker-scraper

Track live Amtrak trains across the US network with train number, route, origin, destination, current station, and reported status. Filter by route name like Acela or Northeast Regional to monitor punctuality, delays, and station movements for travel planning or analytics.

2

Trenitalia Train Ticket and Connection Scraper

jindrich.bar/trenitalia-ticket-scraper

Scrape live Trenitalia train connections, schedules, ticket prices, transfers, delays, and fares across Italy and Europe. Extract structured Trenitalia timetable data for travel apps, price monitoring, analytics, and AI agents.

👁 User avatar

Jindřich Bär

5

5.0

Irish Rail Scraper - Train Fares & Schedules

studio-amba/irish-rail-scraper

Scrape train schedules, fares, and real-time data from Irish Rail (irishrail.ie). Extract Intercity, DART, Commuter, and Enterprise routes across Ireland. No login required.

👁 User avatar

Studio Amba

2