Trenitalia Scraper — Train Prices & Schedules
Pricing
from $1.20 / 1,000 result scrapeds
Trenitalia Scraper — Train Prices & Schedules
Scrape Trenitalia train schedules, prices, and availability. Search Italian rail routes to get Frecciarossa, Frecciargento, Frecciabianca, Intercity, and Regionale train times, fares by class, and duration. Covers all major Italian stations. No login or cookies required.
Pricing
from $1.20 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What does Trenitalia Scraper do?
Trenitalia Scraper extracts train schedules, ticket prices, availability, and service details from Trenitalia, Italy's national railway operator. Search any Italian rail route and get structured data for Frecciarossa, Frecciargento, Frecciabianca, Intercity, and Regionale trains — including departure/arrival times, journey duration, prices by service class, and fare types.
No login, cookies, or Trenitalia account required. The actor runs on the Apify platform, giving you API access, scheduling, webhooks, and integrations with tools like Zapier, Make, Google Sheets, and Slack.
Why use Trenitalia Scraper?
- Price monitoring — Track fare changes on popular routes like Roma-Milano, Firenze-Napoli, or Venezia-Bologna. Set up scheduled runs to catch the cheapest tickets.
- Travel aggregation — Build travel comparison tools or dashboards that include Italian rail data alongside flights and buses.
- Research and analytics — Analyze pricing patterns, route frequency, and train type distribution across the Italian rail network.
- Business intelligence — Hotels, tour operators, and travel agencies can use train schedule data to plan packages and inform customers.
How to scrape Trenitalia data
- Go to the Trenitalia Scraper page on Apify Store.
- Click Try for free to open the actor in Apify Console.
- Enter your origin and destination station names (e.g. "Roma Termini" and "Milano Centrale").
- Optionally set a departure date (YYYY-MM-DD format). If omitted, it defaults to 14 days from today.
- Click Start and wait for the run to complete.
- Download your data as JSON, CSV, Excel, or connect it to your app via the Apify API.
Input
| Field | Type | Description | Default |
|---|---|---|---|
origin | string | Departure station name | Roma Termini |
destination | string | Arrival station name | Milano Centrale |
departureDate | string | Travel date (YYYY-MM-DD) | 14 days from now |
passengers | integer | Number of adult passengers (1-9) | 1 |
frecceOnly | boolean | Only return high-speed Frecce trains | false |
maxResults | integer | Maximum results to return | 50 |
proxyConfiguration | object | Proxy settings (residential recommended) | Apify Proxy |
Example input
{"origin": "Roma Termini","destination": "Milano Centrale","departureDate": "2026-07-15","passengers": 1,"frecceOnly": false,"maxResults": 50}
The actor automatically resolves station names to Trenitalia station IDs. You can use full station names like "Roma Termini" or city names like "Firenze" — the actor picks the best match.
Output
The actor stores results in a dataset. Each item represents one train service with a specific fare/class combination. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Example output
{"origin": "Roma Termini","destination": "Milano Centrale","departureTime": "2026-07-15T09:00:00.000+02:00","arrivalTime": "2026-07-15T11:55:00.000+02:00","duration": "2h 55m","trainType": "Frecciarossa","trainNumber": "9612","price": 49.90,"currency": "EUR","serviceClass": "Standard","offerName": "Economy","available": true,"carrier": "Trenitalia","changes": 0,"url": "https://www.trenitalia.com/en.html#Roma%20Termini-to-Milano%20Centrale","scrapedAt": "2026-07-01T12:00:00.000Z"}
Data fields
| Field | Type | Description |
|---|---|---|
origin | string | Departure station name |
destination | string | Arrival station name |
departureTime | string | Departure date/time (ISO 8601) |
arrivalTime | string | Arrival date/time (ISO 8601) |
duration | string | Journey duration (e.g. "2h 55m") |
trainType | string | Train category: Frecciarossa, Frecciargento, Frecciabianca, Intercity, Regionale, etc. |
trainNumber | string | Train service number |
price | number | Ticket price in EUR (null if unavailable) |
currency | string | Currency code (EUR) |
serviceClass | string | Service class: Standard, Premium, Business, Executive |
offerName | string | Fare type: Economy, Base, Flex, etc. |
available | boolean | Whether tickets can be purchased |
carrier | string | Train operator (Trenitalia) |
changes | integer | Number of train changes (0 = direct) |
url | string | Search URL on Trenitalia |
scrapedAt | string | Timestamp when data was collected |
How much does it cost to scrape Trenitalia?
A typical run searching one route returns 30-100 results (depending on available trains and classes). It costs $0.02 per run plus $0.002 per result — about $0.08-$0.22 per search.
For scheduled monitoring (e.g. checking Roma-Milano prices daily), expect to spend around $2-7 per month depending on how many routes you track.
Tips
- Use specific station names for best results: "Roma Termini", "Milano Centrale", "Firenze Santa Maria Novella", "Napoli Centrale", "Venezia Santa Lucia".
- Set
frecceOnly: trueif you only want high-speed trains — this filters out Regionale and Intercity services. - Use residential proxies for reliable results. The default Apify Proxy works, but residential proxies avoid rate limiting.
- Schedule runs to track price changes over time. Trenitalia fares fluctuate significantly — Economy fares on Frecciarossa can range from 19.90 to 89.90 EUR.
- Combine with other transport actors to build a complete Italian travel comparison: pair with flight scrapers, bus scrapers, or other European rail actors.
Supported train types
| Type | Speed | Description |
|---|---|---|
| Frecciarossa | Up to 300 km/h | Flagship high-speed, Roma-Milano in 2h 55m |
| Frecciargento | Up to 250 km/h | High-speed tilting trains, serves Venice, Verona, Lecce |
| Frecciabianca | Up to 200 km/h | Fast trains on non-high-speed lines |
| Intercity | Standard | Long-distance, stops at more stations |
| Regionale | Standard | Regional services, all stops |
FAQ and support
Is it legal to scrape Trenitalia? This actor accesses publicly available train schedule and pricing information — the same data you see when searching on trenitalia.com. No login or authentication is required.
Why are some prices null? When a fare class is sold out or not available for a route, the price is returned as null and available is set to false.
Can I search international routes? The actor focuses on Italian domestic routes. For cross-border trains (e.g. to France, Switzerland, Austria), try searching from border stations like Milano Centrale or Venezia Santa Lucia.
Results look empty? Make sure your station names are spelled correctly. Try common names like "Roma Termini" or "Napoli Centrale". If the date is in the past or too far in the future, Trenitalia may not return results.
For bugs or feature requests, open an issue in the Issues tab. For custom scraping solutions, contact us through the Apify platform.