Trip.com Train Search API Documentation Search dated train journeys between two stations. Each journey has an id, local departure and arrival times in ISO 8601, duration, changes, train numbers, both stations and the cheapest fare as a number in the requested currency, with the booking fee and tickets left. Use station codes from the Train Stations endpoint. Both stations must be in one market: Europe, Japan, Korea or China. Europe, Japan and Korea sell about 88 days ahead, China about 14. A pair or date without trains returns an empty list and costs nothing. One way only. The first page of results is returned. Cost: 3 credits per successful call. Failed calls cost 0.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
3 required parameters needed before sending a request.
3 optional filters available.
string
Required
Departure station code from the Train Stations endpoint, e.g. GB3467.
example
string
Required
Arrival station code in the same market, e.g. FR3466.
example
string
Required
Departure date, YYYY-MM-DD, today or later.
2026-06-15
integer
Optional
Number of adults, 1 to 9. Defaults to 1.
10
string
Optional
USD, EUR, GBP, JPY or KRW. Defaults to USD. Prices come back in this currency.
USD
string
Optional
Site language: en, en-gb, de, fr, ja, ko or zh-hk. Defaults to en.
en-US
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"data": {
"to": "FR3466",
"date": "2027-03-14",
"from": "GB3467",
"total": 1,
"adults": 1,
"locale": "en",
"trains": [
{
"id": "s2@AItl...",
"tags": [
"allowed_e_ticket",
"cheapest"
],
"direct": true,
"changes": 0,
"duration": "3h 20m",
"operator": null,
"available": true,
"arrival_time": "2027-03-14T13:51:00",
"cheapest_fare": {
"price": 304.83,
"currency": "USD",
"booking_fee": 0,
"tickets_left": 172,
"original_price": 304.83
},
"train_numbers": [
"ES 9018"
],
"departure_time": "2027-03-14T10:31:00",
"arrival_station": {
"code": "FR3466",
"name": "Paris Gare du Nord",
"latitude": 48.88099883257269,
"city_code": "PAR",
"longitude": 2.356107777136769,
"country_code": "FR"
},
"duration_minutes": 200,
"departure_station": {
"code": "GB3467",
"name": "London St. Pancras International",
"latitude": 51.5306243,
"city_code": "LON",
"longitude": -0.1255274,
"country_code": "GB"
},
"operator_logo_url": "https://example.com/logo.png"
}
],
"currency": "USD"
},
"meta": {
"credits": 3,
"billable": true,
"endpoint_family": "train_search"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A query parameter is missing or invalid. This response is not billable.
{
"errors": {
"date": [
"A departure date is required, formatted YYYY-MM-DD."
]
},
"message": "The request validation failed"
}Unexpected Upstream Format
Trip.com answered with a format Scrappa does not know. This response is not billable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "train_search"
},
"error": {
"code": "PARSER_DRIFT",
"message": "Trip.com answered with an unexpected format. Please retry later."
},
"success": false
}Upstream Unavailable
Trip.com did not answer or no capacity was free. This response is not billable. Retry later.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "train_search"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The Trip.com API is temporarily unavailable. Please retry."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.