PKP Scraper - Polish Train Fares & Schedules
Pricing
Pay per usage
PKP Scraper - Polish Train Fares & Schedules
Scrape train schedules, fares, and availability from PKP Intercity (ebilet.intercity.pl). Extract EIP, EIC, IC, and TLK routes across Poland. No login required.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
How to scrape PKP data
PKP Scraper extracts train schedules, ticket fares, and availability from PKP Intercity — Poland's national railway operator for long-distance and intercity services. PKP Intercity operates Express InterCity Premium (EIP), Express InterCity (EIC), InterCity (IC), and TLK trains connecting all major Polish cities and select international destinations.
This Actor uses Playwright to navigate PKP Intercity's booking platform (ebilet.intercity.pl), search for connections, and return structured data including train numbers, types, schedules, and fares in PLN. Falls back to rozklad-pkp.pl timetable data when the booking site is unavailable. No login or cookies required.
Why use PKP Scraper?
- Fare monitoring -- Track ticket prices across routes and dates to find cheap Super Promo fares or monitor pricing trends.
- Timetable research -- Compare routes, durations, and train types (EIP, EIC, IC, TLK) for any Polish destination.
- Market intelligence -- Collect structured pricing data for competitive analysis in the Polish travel market.
- Availability tracking -- Monitor seat availability for popular routes like Warszawa-Krakow or Warszawa-Gdansk.
- API access -- Get PKP train data via Apify API, webhooks, or scheduled runs. Integrate with Zapier, Make, Google Sheets, or your own applications.
What data can you extract from PKP Intercity?
| Field | Description |
|---|---|
| trainNumber | Train service number (e.g., EIP 3500) |
| trainType | Service type (EIP, EIC, IC, TLK, EC) |
| departureStation | Departure station or city |
| arrivalStation | Arrival station or city |
| departureTime | Departure time (HH:mm) |
| arrivalTime | Arrival time (HH:mm) |
| duration | Total travel time (e.g., 2h 30min) |
| price | Ticket price in PLN |
| currency | Currency code (PLN) |
| travelClass | Seat class (1st, 2nd) |
| changes | Number of transfers |
| carrier | Operating company (PKP Intercity, Polregio) |
| url | Source URL |
| scrapedAt | Timestamp of extraction |
How to use PKP Scraper
- Go to the PKP Scraper input page.
- Enter your origin station (e.g., Warszawa) and destination station (e.g., Krakow).
- Optionally set a departure date in YYYY-MM-DD format. If left empty, defaults to 14 days from today.
- Set the number of passengers (default: 1).
- Configure max results to limit the number of connections returned.
- Click Start and wait for the run to complete.
- Download your data from the Dataset tab in JSON, CSV, Excel, or HTML format.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| origin | string | Warszawa | Departure station name (Polish) |
| destination | string | Krakow | Arrival station name (Polish) |
| departureDate | string | 14 days from today | Travel date (YYYY-MM-DD) |
| passengers | integer | 1 | Number of adult passengers (1-9) |
| maxResults | integer | 50 | Maximum results to return |
| proxyConfiguration | object | Residential PL | Proxy settings (residential recommended) |
Example input
{"origin": "Warszawa","destination": "Gdansk","departureDate": "2026-07-15","passengers": 1,"maxResults": 30}
Output example
{"trainNumber": "EIP 3500","trainType": "EIP","departureStation": "Warszawa","arrivalStation": "Krakow","departureTime": "06:30","arrivalTime": "08:58","duration": "2h 28min","price": 119.0,"currency": "PLN","travelClass": "2nd","changes": 0,"carrier": "PKP Intercity","url": "https://ebilet.intercity.pl","scrapedAt": "2026-06-09T10:30:00.000Z"}
How much does it cost to scrape PKP Intercity?
A typical run searching one route returns 10-30 connections and costs approximately $0.10-0.25 in Apify platform credits, depending on proxy usage and load times. The Actor uses Playwright (browser-based) because PKP's booking site is a React single-page application.
To keep costs down:
- Set
maxResultsto only what you need. - Use a specific departure date rather than leaving it to default.
- Schedule runs during off-peak hours for faster loading.
Supported routes
PKP Intercity covers all major Polish intercity routes and select international connections:
- Express InterCity Premium (EIP) -- Warszawa-Krakow, Warszawa-Gdansk, Warszawa-Wroclaw, Warszawa-Katowice. Pendolino high-speed trains at up to 200 km/h.
- Express InterCity (EIC) -- Long-distance express services connecting major cities with fewer stops.
- InterCity (IC) -- Standard intercity connections across Poland.
- TLK (Twoje Linie Kolejowe) -- Budget long-distance trains with lower fares and more stops.
- International -- Connections to Berlin, Prague, Vienna, Budapest, and other European cities via EuroCity (EC) and EuroNight (EN) services.
Popular routes
| Route | Distance | Typical Duration | Train Types |
|---|---|---|---|
| Warszawa - Krakow | 293 km | 2h 20min - 3h 30min | EIP, EIC, IC, TLK |
| Warszawa - Gdansk | 340 km | 2h 40min - 4h 00min | EIP, EIC, IC |
| Warszawa - Wroclaw | 344 km | 3h 30min - 5h 00min | EIC, IC, TLK |
| Warszawa - Poznan | 310 km | 2h 30min - 3h 30min | EIC, IC, TLK |
| Warszawa - Katowice | 300 km | 2h 30min - 3h 45min | EIP, EIC, TLK |
| Krakow - Gdansk | 600 km | 5h 00min - 7h 00min | EIC, IC |
| Wroclaw - Gdansk | 490 km | 4h 30min - 6h 30min | EIC, IC |
Tips for best results
- Use Polish station names -- The Actor works best with Polish names: "Warszawa" (not "Warsaw"), "Gdansk" (not "Gdanks"), "Wroclaw" (not "Breslau"), "Lodz" (not "Lodsch").
- Use residential proxies -- PKP Intercity may block non-Polish IP addresses. Residential proxies with PL country code provide the best success rate.
- Set realistic dates -- PKP Intercity typically shows results 30 days in advance. Super Promo fares are released exactly 30 days before travel.
- Station name variants -- For Warsaw, use "Warszawa" (includes Centralna, Zachodnia, and Wschodnia). For specific stations, use the full name like "Warszawa Centralna".
Integrations
Connect PKP Scraper to your workflow with:
- Apify API -- Call programmatically from any language.
- Webhooks -- Get notified when a run completes.
- Scheduled runs -- Monitor fares daily or weekly.
- Zapier / Make -- No-code integration with 5000+ apps.
- Google Sheets -- Export results directly to a spreadsheet.
FAQ
Is it legal to scrape PKP Intercity?
This Actor extracts publicly available train schedule and pricing information that any visitor can see on ebilet.intercity.pl. No login, authentication, or account is required. Always ensure your use case complies with applicable laws and PKP Intercity's terms of service.
Why did my run return zero results?
PKP Intercity's booking site (ebilet.intercity.pl) is a React SPA that may block automated requests. Make sure you are using residential proxies with PL country code. Also verify that your station names use Polish spelling and your departure date is in the future and within the 30-day booking window.
Can I scrape multiple routes in one run?
Currently the Actor searches one route per run. To scrape multiple routes, trigger separate runs with different origin/destination combinations using the Apify API or scheduler.
What is the difference between EIP, EIC, IC, and TLK?
- EIP (Express InterCity Premium) -- Fastest trains (Pendolino), seat reservation mandatory, premium pricing.
- EIC (Express InterCity) -- Fast long-distance, seat reservation mandatory.
- IC (InterCity) -- Standard intercity, seat reservation optional.
- TLK (Twoje Linie Kolejowe) -- Budget long-distance, cheapest fares, more stops.
How often are PKP prices updated?
PKP Intercity uses dynamic pricing. Super Promo fares (cheapest) are released 30 days before travel and sell out quickly. For price tracking, schedule runs daily at a consistent time.
Support and feedback
If you encounter issues or have feature requests, please open an issue in the Issues tab. For custom scraping solutions, reach out via the Actor's page on the Apify Store.