Discover/Italo Treno API
live

Italo Treno APIitaloinviaggio.italotreno.com ↗

Search Italo train stations and get real-time departures, arrivals, delays, and platform data for any station on the Italo network.

Endpoint health
verified 11h ago
search_stations
get_live_trains
2/2 passing latest checkself-healing
Endpoints
2
Updated
22d ago

What is the Italo Treno API?

This API exposes 2 endpoints covering the Italo high-speed rail network in Italy: search_stations lets you look up stations by name and retrieve their codes and coordinates, while get_live_trains returns real-time departure and arrival boards for a given station, including delay minutes, scheduled and actual times, platform assignments, and route details.

This call costs1 credit / call— charged only on success
Try it
Station or city name (or part of it) to search for (e.g. 'Roma', 'Milano', 'Napoli').
→ api.parse.bot/scraper/d7a24cdd-bda3-4315-8fbe-aee3cffaf64b/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/d7a24cdd-bda3-4315-8fbe-aee3cffaf64b/search_stations?query=Roma' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

Search for Italo network train and bus stations by name. The query is matched as a case- and accent-insensitive substring of the station name (e.g. 'roma' matches 'Roma Termini' and the 'Roma (Tutte)' city group), restricted to stations served by Italo or Itabus. Returns matching stations with their codes, coordinates, and type information in one round trip; count is the number of stations returned and an unmatched query yields an empty list. City-group entries (is_mac true) carry no coordinates and list their member stations in mac_stations. Use the station_code and name values with get_live_trains.

Input
ParamTypeDescription
queryrequiredstringStation or city name (or part of it) to search for (e.g. 'Roma', 'Milano', 'Napoli').
Response
{
  "type": "object",
  "fields": {
    "count": "integer - number of matching stations returned",
    "stations": "array of station objects with station_code, name, latitude, longitude (empty strings for city groups), is_italo_station, is_itabus_station, is_mac, mac_stations (member stations of a city group, each with station_code and name)"
  },
  "sample": {
    "data": {
      "count": 3,
      "stations": [
        {
          "name": "Roma (Tutte)",
          "is_mac": true,
          "latitude": "",
          "longitude": "",
          "mac_stations": [
            {
              "name": "Roma Termini",
              "station_code": "RMT"
            },
            {
              "name": "Roma Tiburtina",
              "station_code": "RTB"
            }
          ],
          "station_code": "RM0",
          "is_italo_station": true,
          "is_itabus_station": false
        },
        {
          "name": "Roma Termini",
          "is_mac": false,
          "latitude": "41.90063611",
          "longitude": "12.50201349",
          "mac_stations": [],
          "station_code": "RMT",
          "is_italo_station": true,
          "is_itabus_station": false
        },
        {
          "name": "Roma Tiburtina",
          "is_mac": false,
          "latitude": "41.91090364",
          "longitude": "12.53073536",
          "mac_stations": [],
          "station_code": "RTB",
          "is_italo_station": true,
          "is_itabus_station": false
        }
      ]
    },
    "status": "success"
  }
}

About the Italo Treno API

Station Search

The search_stations endpoint accepts a query string — a city or station name such as Roma, Milano, or Napoli — and returns a list of matching station objects. Each object includes a station_code (e.g. RMT for Roma Termini), name, latitude, longitude, and boolean flags: is_italo_station, is_itabus_station, and is_mac. The mac_stations field lists any associated MAC (multi-access) station groupings. Use this endpoint to resolve the station_code values required by the live trains endpoint.

Real-Time Train Boards

The get_live_trains endpoint takes a station_code and matching station_name and returns the current departure and arrival boards for that station. Both departures and arrivals are arrays of train objects, each containing train_number, origin_destination, scheduled_time, actual_time, delay_minutes, platform, and route_info. The last_update field shows the timestamp of the most recent data refresh in HH:MM format. The is_empty boolean indicates whether the board has any trains listed — useful for detecting overnight windows when no services are running.

Coverage and Freshness

Coverage is limited to stations on the Italo and Itabus network; it does not include Trenitalia or regional rail services. During overnight hours, get_live_trains may return an empty board (is_empty: true) for all stations, which reflects actual service gaps rather than a data error. The count field in search_stations responses lets you quickly check how many stations matched a given query before iterating over results.

Reliability & maintenanceVerified

The Italo Treno API is a managed, monitored endpoint for italoinviaggio.italotreno.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when italoinviaggio.italotreno.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official italoinviaggio.italotreno.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
11h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Display a live departure board for a specific Italo station in a travel app using delay_minutes and platform fields
  • Build a delay-monitoring alert that triggers when delay_minutes exceeds a threshold on a tracked train_number
  • Geocode Italo stations onto a map using latitude and longitude from search_stations
  • Resolve user-typed city names to station_code values before querying live train data
  • Identify which stations support Itabus connections using the is_itabus_station flag
  • Show passengers the actual_time vs scheduled_time difference for incoming trains at a station
  • Detect service gaps by checking is_empty during late-night hours for operational scheduling tools
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Italo Treno offer an official developer API?+
Italo Treno does not publish a documented public developer API. This Parse API provides structured access to station and live train data from italoinviaggio.italotreno.com.
What does get_live_trains return, and how do departures differ from arrivals?+
Both departures and arrivals arrays in the response share the same object structure: train_number, origin_destination, scheduled_time, actual_time, delay_minutes, platform, and route_info. The distinction is directional — departures show trains leaving the station, arrivals show trains approaching it. The last_update field tells you when the board was last refreshed.
Does the API cover Trenitalia, Frecciarossa, or regional Italian rail services?+
No. The API covers only stations and trains on the Italo and Itabus network, as reflected by the is_italo_station and is_itabus_station flags returned by search_stations. Trenitalia and regional services are not included. You can fork this API on Parse and revise it to target a different rail operator's data source.
Why does get_live_trains sometimes return no trains?+
When no Italo services are scheduled — typically during overnight hours — the response will have is_empty: true and empty departures and arrivals arrays. This is expected behavior and reflects actual service availability, not a data error.
Can I retrieve historical train schedules or past delay records?+
Not currently. The API covers real-time and current-session departure and arrival data only. Historical schedules and delay records are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting historical or timetable data if a suitable source is available.
Page content last updated . Spec covers 2 endpoints from italoinviaggio.italotreno.com.
Related APIs in TravelSee all →