# Omio Route Page API Documentation

<p><strong>Omio Route Page API Documentation</strong> Read the public page of a route between two cities: the average rating with the number of reviews, review texts with the points guests liked or disliked, the price ladder by days before departure with the best booking time, sample departures with provider and price, and the route questions with answers. Prices are in minor units (cents). Reviewer names are not returned. Not every route has ratings, and bus pages often have none.</p>

- **Documentation:** [https://scrappa.co/docs/omio-api/omio_route_page](https://scrappa.co/docs/omio-api/omio_route_page)
- **API group:** Omio API
- **Endpoint:** `GET https://scrappa.co/api/omio/route-page`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `origin` | string | Yes | Lowercase city slug of the departure city. Example: berlin. |
| `destination` | string | Yes | Lowercase city slug of the arrival city. Example: paris. |
| `mode` | string | No | trains, buses or flights. Defaults to trains. |

## Example response

```json
{
    "data": {
        "faq": [
            {
                "answer": "Train ticket prices from Berlin to Paris can vary. The cheapest ticket starts at $9 (\u20ac7), while the average price is around $103 (\u20ac86).",
                "question": "How much is a train ticket from Berlin to Paris?"
            },
            {
                "answer": "The train from Berlin to Paris takes 7h 21m and runs 32 per day.",
                "question": "How long is the train from Berlin to Paris?"
            },
            {
                "answer": "The first train from Berlin to Paris leaves at 12:02 AM.",
                "question": "What time does the first train from Berlin to Paris leave?"
            }
        ],
        "mode": "trains",
        "origin": "berlin",
        "rating": {
            "value": 4.529411764705882,
            "review_count": 17
        },
        "reviews": [
            {
                "text": "All in all, a good train journey. Although there was a slight delay of about ten minutes, everything else was fine. The seat was comfortable, the compartment clean and pleasantly quiet. Wifi was available, although not particularly fast. The power socket worked. The staff were friendly but a little short-staffed. I would use the connection again, as the border crossing also worked without any problems. I can recommend it!",
                "rating": 4,
                "best_rating": 5,
                "published_at": null,
                "negative_notes": [
                    "small delay"
                ],
                "positive_notes": [
                    "Comfortable seats",
                    "clean",
                    "Equipment"
                ]
            },
            {
                "text": "My train journey from Berlin to Paris involved two changes, first in Hanover and then in Karlsruhe. The first section from Berlin to Hanover was relaxed. The seats were comfortable, the compartments clean and the quiet atmosphere made for a pleasant start. The changeover in Hanover went smoothly. The onward journey to Karlsruhe also went smoothly. The train staff were helpful and the wifi worked without interruption, so I was able to use the journey productively. Once I arrived in Karlsruhe, I changed trains for the second time before travelling on to Paris. Here too, the cleanliness and comfort of the train were impressive, and the wide range of seats made the long journey through France very pleasant. All connections were well coordinated, so that the journey remained relaxed overall. The entire route was characterised by reliability and comfort. Despite the two changes, the connection seemed well thought out and ensured a relaxed arrival in Paris. Everything ran on time",
                "rating": 5,
                "best_rating": 5,
                "published_at": null,
                "negative_notes": [],
                "positive_notes": [
                    "Comfort",
                    "Punctuality",
                    "Planning"
                ]
            },
            {
                "text": "The train journey from Berlin to Paris was a wonderful experience for me. As soon as I boarded, I had the feeling that everything was well organised. The carriages were clean, the seats were comfortable and I had enough space to stretch out and sit comfortably. The air conditioning in the train was suitable. The changing scenery en route made the journey particularly entertaining. I also noticed that the announcements were clear and helpful. Overall, everything went very smoothly, from departure to arrival. It was a journey I would do again.",
                "rating": 5,
                "best_rating": 5,
                "published_at": null,
                "negative_notes": [],
                "positive_notes": [
                    "Very nice view",
                    "Air conditioning",
                    "Clear announcements"
                ]
            }
        ],
        "departures": [
            {
                "type": "TrainTrip",
                "price": {
                    "currency": "EUR",
                    "amount_minor": 13000
                },
                "distance": "878 km",
                "provider": "Deutsche Bahn",
                "leg_count": 3,
                "arrival_time": "2026-10-21T09:50:00+02:00",
                "departure_time": "2026-10-21T00:08:00+02:00",
                "departure_station": "Berlin Hbf"
            },
            {
                "type": "TrainTrip",
                "price": {
                    "currency": "EUR",
                    "amount_minor": 13000
                },
                "distance": "878 km",
                "provider": "Deutsche Bahn",
                "leg_count": 3,
                "arrival_time": "2026-10-21T12:51:00+02:00",
                "departure_time": "2026-10-21T04:41:00+02:00",
                "departure_station": "Berlin Hbf"
            }
        ],
        "destination": "paris",
        "price_ladder": {
            "steps": [
                {
                    "amount_minor": 3800,
                    "days_before_departure": 91
                },
                {
                    "amount_minor": 3800,
                    "days_before_departure": 84
                },
                {
                    "amount_minor": 2800,
                    "days_before_departure": 77
                },
                {
                    "amount_minor": 3800,
                    "days_before_departure": 70
                },
                {
                    "amount_minor": 3800,
                    "days_before_departure": 63
                },
                {
                    "amount_minor": 3800,
                    "days_before_departure": 56
                }
            ],
            "currency": "EUR",
            "best_booking_days_before": 77
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "route_page"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter is missing or invalid. This response is not billable. |
| 404 | Resource Not Found | The search, trip or route was not found or has expired. This response is not billable. |
| 503 | Service Unavailable | Omio could not be reached, did not finish the search in time, or answered with an unexpected shape. This response is not billable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
