NAV navbar
bash

Introduction

About Daytrip

We make traveling between cities easy. With Daytrip, you can offer your clients private car transfers in 130+ countries across 6 continents through our network of over 10,000+ English-speaking drivers. You can learn more about what we do in our B2B booklet or B2B partner page.

Partner API

Our public API consists of three main parts: the Trip API allows you to search and book private point-to-point transfers, the Hourly Ride API allows you to book time-based vehicle rentals with a driver, and the Day Trips API allows you to order our pre‑planned excursions with a fixed itinerary.

The Trip API, Hourly Ride API, and Day Trips API are organized around REST. Our API accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and verbs.

What can our TRIP API do?

What can our Hourly Ride API do?

What can our Day Trips API do?

Contacts

Onboarding

If you want to integrate with our API, contact us at partners@daytrip.com to get a partner account and an API key.

Customer support emergency

To solve problems with bookings created via the API you can contact daytrip@daytrip.com or call +44 20 3318 1119 or +1 628 201 9501.

Environments

Daytrip offers a sandbox environment where you can test your integration with the API without creating real bookings. All the code examples provided in this documentation are using this sandbox environment. Each environment requires a different API key. When your integration is ready and tested against the sandbox environment, you can request an API key for the production environment.

URLs

Environment Base partner API url
Sandbox https://papi.staging.mydaytrip.net/partners/
Production https://papi.mydaytrip.com/partners/

Authentication

To authorize your requests, add the x-api-key header like this:

curl "https://papi.staging.mydaytrip.net/partners/v3/trip/search"
  -H "x-api-key: your-api-key"

Make sure to replace your-api-key with your API key.

Daytrip API uses API keys to allow access to the API. The API key needs to be included in the x-api-key header with each API request.

Your API key carries many privileges, so be sure to keep it secure! Do not share your secret API key in publicly accessible areas such as GitHub, client-side code, and so forth.

Errors

Daytrip uses conventional HTTP response status codes to indicate the success or failure of an API request. In general: codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, no trip was found for given parameters, etc.). Codes in the 5xx range indicate an error with Daytrip's service (these are rare).

HTTP status code meanings

HTTP Code Meaning
400 Bad Request - Missing mandatory parameters, wrong types of parameters or not a valid json.
401 Unauthorized - API key is missing or invalid.
403 Forbidden - The requested operation is forbidden.
404 Not Found - No trips found, trip option not found, booking not found, endpoint does not exist.
409 Conflict - Trip option already booked, trip option already cancelled.
500 Internal Server Error - We had a problem with our service. Please retry your request.
502 Bad Gateway - We had a problem with an external service. Please retry your request.
503 Service Unavailable - We had a problem with our service. Please retry your request.

Error response body

Error response body example:

{
  "statusCode": 404,
  "message": "Booking not found"
}

Each error response has an unified JSON body:

Property Type Description
statusCode integer The HTTP status of the call duplicated in the body to allow easier logging and error handling. You can base your error handling logic on this property entirely.
message string Informative message about the reason of this error. Error handling logic should not use this property, it should be used for debugging purposes only.

Debugging

Every response from the Daytrip API contains a x-correlation-id header with a unique identifier of the HTTP call. If you send us this identifier, we can give you more detailed info about what went wrong with your call.

If you are using correlation ids on your side as well, you can send us x-correlation-id header with your requests and we will use your own correlation id value.

About correlation ids

Trip API

A trip is a representation of passenger transportation from point A to point B. Each search will usually return multiple trip options that can be booked. Options can differ by vehicle type or by being private or shared with other travelers. Shared trips have predefined pickup and dropoff points and departure times. For private trips pickup and dropoff points as well as departure time are matching the search request. Private trips can also be customized by adding stops if available.

Flows

Trip API can be used to search for trip options, customizing an option with stops and then booking the option.

Simple trip

A typical simple flow without stop customization would look like this:

  1. call /search endpoint to get possible options
  2. call /book endpoint to book the chosen option
  3. optional - call /details endpoint to get trip and booking details
  4. optional - call /drivers endpoint to get information about driver(s) and vehicle(s) assigned to the trip
  5. optional - call /tracking endpoint to track the position of the driver(s) assigned to the trip

Trip with a stop

A flow with adding stops would look like this:

  1. call /search endpoint to get possible options
  2. call /customize endpoint to add stops to the chosen option
  3. call /book endpoint to book the customized option
  4. optional - call /details endpoint to get trip and booking details

Cancelling a trip

A flow to book a trip, get details about it and then cancel it would look like this:

  1. call /search endpoint to get possible options
  2. call /book endpoint to book the chosen option
  3. optional - call /details endpoint to get trip and booking details
  4. call /cancel endpoint to cancel the booking
  5. optional - call /details endpoint to get trip and booking details (status should be "Cancelled")

Updating a trip

If you want to change departure time or add/remove stops you need to cancel the booking and create it again as it can affect the price. For small adjustments like changing passenger phone number, email, child seat type, pickup and dropoff address notes (within the scope of original search coordinates), customer note or flight number you can use the /update endpoint:

  1. call /search endpoint to get possible options
  2. call /book endpoint to book the chosen option
  3. optional - call /details endpoint to get trip and booking details
  4. call /update endpoint to update the booking details

Disclaimer: in the last 24 hours before the departure the /update endpoint will no longer accept updates. For updates in the last 24 hours please contact our customer support at daytrip@mydaytrip.com or call +44 20 3318 1119.

This endpoint returns all available trip options based on the specified origin, destination, departure time, and passenger count. The origin and destination can be provided either as geographic coordinates or as IATA airport codes. Geographic coordinates should be specified as latitude and longitude in decimal degrees format, for example: 39.753657, -117.610215. The departure time must be supplied as a UNIX epoch timestamp in seconds (e.g., 1679463169).

To search for a private or shared trip from Prague to Vienna for 3 passengers, use this call:

curl "https://papi.staging.mydaytrip.net/partners/v3/trip/search?originLatitude=50.10&originLongitude=14.2559&destinationLatitude=48.2082&destinationLongitude=16.3738&departureTime=1766227088&passengersCount=3&childrenCount=1&includeShared=true" \
  -H "x-api-key: your_api_key"

To search for a private or shared trip from Prague Airport to Vienna for 3 passengers, use this call:

curl "https://papi.staging.mydaytrip.net/partners/v3/trip/search?originType=iata&origin=PRG&destinationType=coordinates&destinationLatitude=48.2082&destinationLongitude=16.3738&departureTime=1766227088&passengersCount=3&childrenCount=1&includeShared=true" \
  -H "x-api-key: your_api_key"

The above call returns a JSON structured like this:

{
    "searchId": "f0e34a1b-2b3d-4747-b426-292633b615b4",
    "expiresAt": "2022-12-04T18:00:00Z",
    "passengersCount": 3,
    "currency": "EUR",
    "options": [
        {
            "id": "1d32109f-c2e2-44fe-b2cf-461ef3730541",
            "type": "Private",
            "englishSpeakingDriver": true,
            "distanceKm": 334,
            "travelTimeMinutes": 208,
            "pickUp": {
                "lat": 50.1,
                "lon": 14.25,
                "time": "2022-12-05T18:00:00Z",
                "timezone": "Europe/Prague",
                "meetAndGreet": true,
                "state": "original",
                "immutable": false
            },
            "dropOff": {
                "lat": 48.2,
                "lon": 16.37,
                "state": "original",
                "immutable": false
            },
            "pricing": {
                "totalPrice": 260
            },
            "vehicle": {
                "type": "Sedan",
                "maxPassengers": 3,
                "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
                "modelDescription": "VW Passat or similar",
                "image": "https://daytrip.imgix.net/site/sedan.png"
            },
            "luggage": {
                "maxTotalCarryons": 3,
                "maxTotalSuitcases": 3
            },
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "possibleStops": [
                {
                    "id": "d280ce2a-6224-4d95-af17-a250f81b97dd",
                    "price": 31,
                    "name": "Lednice Chateau and Park",
                    "image": "https://daytrip.imgix.net/lednice-chateau-and-park4.jpg",
                    "title": "Vacation like a King",
                    "perex": "This UNESCO-listed chateau and sprawling park was the Lichtenstein's holiday home - exactly the kind of extravagance you'd expect from a dynasty with their own country. ",
                    "description": "The Liechtensteins really came into the money with the fortunes seized from Czech noblemen after their victory at the Battle of White Mountain in 1620, and Lednice was one of the presents they bought themselves. In the mid-19th century the baroque manor was given a complete makeover in the 'Windsor Gothic' style, leaving it as we see it today: a shameless flaunting of fabulous wealth, a slap in the face to anyone foolish enough to think that the French Revolution had ended high-living in Europe. The surrounding English landscape park, the largest in the country, is an incomparable swath of green, sprinkled with Romantic follies. There's also a monumental greenhouse open all year round, overflowing with exotic growths gathered by an army of botanists across the Americas. The greenhouse's exoticism is echoed by the charming minaret, constructed at the turn of the 18th century, bringing a whiff of Morocco to Moravia.\nFor more info: www.zamek-lednice.com",
                    "durationInMinutes": 60,
                    "order": 1,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                },
                {
                    "id": "4ee58c0c-4e56-46ef-bd22-406a1bc60e1c",
                    "price": 28,
                    "name": "Mikulov",
                    "image": "https://daytrip.imgix.net/510.jpg",
                    "title": "The Heart of Czech Wine Country",
                    "perex": "A town with a history as deep and flavourful as its wine, Mikulov provides a perfect combination of relaxation and exploration.",
                    "description": "Often favoured by visitors with a more active approach to life, Mikulov has much to offer. Surrounded by idyllic countryside, crisscrossed by bicycle paths and marked hiking trails, and the nearby Nové Mlýny lakes, there is something for everyone to enjoy. After all that fresh air, a glass of wine will be more than welcome, and fortunately, Mikulov is the centre for Czech wine making. Due to a high concentration of limestone in the local soil, wine from this region has a unique character and distinct taste. If you like your wine with a side-serving of history, Mikulov Castle dates from the 1730s, and the Dietrichstein Tomb is the final resting place of a Bohemian noble family. Mikulov is also significant for its strong Jewish history. In the early 1800s Mikulov's Jewish Quarter was the largest in Moravia with half the town's inhabitants being of Jewish faith.",
                    "durationInMinutes": 60,
                    "order": 2,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                }
            ],
            "expiresAt": "2022-12-04T18:00:00Z"
        },
        {
            "id": "054ee064-d4dd-492f-9d0a-5251a7f791c2",
            "type": "Private",
            "englishSpeakingDriver": false,
            "distanceKm": 334,
            "travelTimeMinutes": 208,
            "pickUp": {
                "lat": 50.1,
                "lon": 14.25,
                "time": "2022-12-05T18:00:00Z",
                "timezone": "Europe/Prague",
                "meetAndGreet": true,
                "state": "original",
                "immutable": false
            },
            "dropOff": {
                "lat": 48.2,
                "lon": 16.37,
                "state": "original",
                "immutable": false
            },
            "pricing": {
                "totalPrice": 240
            },
            "vehicle": {
                "type": "Sedan",
                "maxPassengers": 3,
                "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
                "modelDescription": "VW Passat or similar",
                "image": "https://daytrip.imgix.net/site/sedan.png"
            },
            "luggage": {
                "maxTotalCarryons": 3,
                "maxTotalSuitcases": 3
            },
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "possibleStops": [
                {
                    "id": "d280ce2a-6224-4d95-af17-a250f81b97dd",
                    "price": 31,
                    "name": "Lednice Chateau and Park",
                    "image": "https://daytrip.imgix.net/lednice-chateau-and-park4.jpg",
                    "title": "Vacation like a King",
                    "perex": "This UNESCO-listed chateau and sprawling park was the Lichtenstein's holiday home - exactly the kind of extravagance you'd expect from a dynasty with their own country. ",
                    "description": "The Liechtensteins really came into the money with the fortunes seized from Czech noblemen after their victory at the Battle of White Mountain in 1620, and Lednice was one of the presents they bought themselves. In the mid-19th century the baroque manor was given a complete makeover in the 'Windsor Gothic' style, leaving it as we see it today: a shameless flaunting of fabulous wealth, a slap in the face to anyone foolish enough to think that the French Revolution had ended high-living in Europe. The surrounding English landscape park, the largest in the country, is an incomparable swath of green, sprinkled with Romantic follies. There's also a monumental greenhouse open all year round, overflowing with exotic growths gathered by an army of botanists across the Americas. The greenhouse's exoticism is echoed by the charming minaret, constructed at the turn of the 18th century, bringing a whiff of Morocco to Moravia.\nFor more info: www.zamek-lednice.com",
                    "durationInMinutes": 60,
                    "order": 1,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                },
                {
                    "id": "4ee58c0c-4e56-46ef-bd22-406a1bc60e1c",
                    "price": 28,
                    "name": "Mikulov",
                    "image": "https://daytrip.imgix.net/510.jpg",
                    "title": "The Heart of Czech Wine Country",
                    "perex": "A town with a history as deep and flavourful as its wine, Mikulov provides a perfect combination of relaxation and exploration.",
                    "description": "Often favoured by visitors with a more active approach to life, Mikulov has much to offer. Surrounded by idyllic countryside, crisscrossed by bicycle paths and marked hiking trails, and the nearby Nové Mlýny lakes, there is something for everyone to enjoy. After all that fresh air, a glass of wine will be more than welcome, and fortunately, Mikulov is the centre for Czech wine making. Due to a high concentration of limestone in the local soil, wine from this region has a unique character and distinct taste. If you like your wine with a side-serving of history, Mikulov Castle dates from the 1730s, and the Dietrichstein Tomb is the final resting place of a Bohemian noble family. Mikulov is also significant for its strong Jewish history. In the early 1800s Mikulov's Jewish Quarter was the largest in Moravia with half the town's inhabitants being of Jewish faith.",
                    "durationInMinutes": 60,
                    "order": 2,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                }
            ],
            "expiresAt": "2022-12-04T18:00:00Z"
        },
        {
            "id": "b071e9f8-54d9-44be-bb5f-feae5aafd771",
            "type": "Private",
            "englishSpeakingDriver": true,
            "distanceKm": 334,
            "travelTimeMinutes": 208,
            "pickUp": {
                "lat": 50.1,
                "lon": 14.25,
                "time": "2022-12-05T18:00:00Z",
                "timezone": "Europe/Prague",
                "meetAndGreet": true,
                "state": "original",
                "immutable": false
            },
            "dropOff": {
                "lat": 48.2,
                "lon": 16.37,
                "state": "original",
                "immutable": false
            },
            "pricing": {
                "totalPrice": 320
            },
            "vehicle": {
                "type": "MPV",
                "maxPassengers": 4,
                "description": "Compact MPV comparable to a Volkswagen Touran, up to 4 passengers with luggage.",
                "modelDescription": "VW Touran or similar",
                "image": "https://daytrip.imgix.net/site/mpv.png"
            },
            "luggage": {
                "maxTotalCarryons": 4,
                "maxTotalSuitcases": 4
            },
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "possibleStops": [
                {
                    "id": "d280ce2a-6224-4d95-af17-a250f81b97dd",
                    "price": 31,
                    "name": "Lednice Chateau and Park",
                    "image": "https://daytrip.imgix.net/lednice-chateau-and-park4.jpg",
                    "title": "Vacation like a King",
                    "perex": "This UNESCO-listed chateau and sprawling park was the Lichtenstein's holiday home - exactly the kind of extravagance you'd expect from a dynasty with their own country. ",
                    "description": "The Liechtensteins really came into the money with the fortunes seized from Czech noblemen after their victory at the Battle of White Mountain in 1620, and Lednice was one of the presents they bought themselves. In the mid-19th century the baroque manor was given a complete makeover in the 'Windsor Gothic' style, leaving it as we see it today: a shameless flaunting of fabulous wealth, a slap in the face to anyone foolish enough to think that the French Revolution had ended high-living in Europe. The surrounding English landscape park, the largest in the country, is an incomparable swath of green, sprinkled with Romantic follies. There's also a monumental greenhouse open all year round, overflowing with exotic growths gathered by an army of botanists across the Americas. The greenhouse's exoticism is echoed by the charming minaret, constructed at the turn of the 18th century, bringing a whiff of Morocco to Moravia.\nFor more info: www.zamek-lednice.com",
                    "durationInMinutes": 60,
                    "order": 1,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                },
                {
                    "id": "4ee58c0c-4e56-46ef-bd22-406a1bc60e1c",
                    "price": 28,
                    "name": "Mikulov",
                    "image": "https://daytrip.imgix.net/510.jpg",
                    "title": "The Heart of Czech Wine Country",
                    "perex": "A town with a history as deep and flavourful as its wine, Mikulov provides a perfect combination of relaxation and exploration.",
                    "description": "Often favoured by visitors with a more active approach to life, Mikulov has much to offer. Surrounded by idyllic countryside, crisscrossed by bicycle paths and marked hiking trails, and the nearby Nové Mlýny lakes, there is something for everyone to enjoy. After all that fresh air, a glass of wine will be more than welcome, and fortunately, Mikulov is the centre for Czech wine making. Due to a high concentration of limestone in the local soil, wine from this region has a unique character and distinct taste. If you like your wine with a side-serving of history, Mikulov Castle dates from the 1730s, and the Dietrichstein Tomb is the final resting place of a Bohemian noble family. Mikulov is also significant for its strong Jewish history. In the early 1800s Mikulov's Jewish Quarter was the largest in Moravia with half the town's inhabitants being of Jewish faith.",
                    "durationInMinutes": 60,
                    "order": 2,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                }
            ],
            "expiresAt": "2022-12-04T18:00:00Z"
        },
        {
            "id": "282a8a94-2a18-42f6-9af6-c53b13d007cb",
            "type": "Shared",
            "englishSpeakingDriver": true,
            "distanceKm": 350,
            "travelTimeMinutes": 235,
            "pickUp": {
                "lat": 50.12,
                "lon": 14.27,
                "time": "2022-12-05T19:00:00Z",
                "interval": {
                    "earliest": "2022-12-05T19:00:00Z",
                    "latest": "2022-12-05T19:10:00Z"
                },
                "timezone": "Europe/Prague",
                "description": "In front of the hotel Europa",
                "address": "Evropska 1540/41, Prague, Czechia",
                "meetAndGreet": false,
                "state": "adjusted",
                "immutable": true
            },
            "dropOff": {
                "lat": 48.21,
                "lon": 16.36,
                "time": "2022-12-05T22:55:00Z",
                "interval": {
                    "earliest": "2022-12-05T22:40:00Z",
                    "latest": "2022-12-05T22:55:00Z"
                },
                "timezone": "Europe/Vienna",
                "description": "Next to the railway station",
                "address": "Bahnhofplatz, 1010 Wien, Austria",
                "state": "adjusted",
                "immutable": true
            },
            "pricing": {
                "pricePerPassenger": 180,
                "totalPrice": 360
            },
            "vehicle": {
                "type": "Shuttle",
                "maxPassengers": 10,
                "description": "Shuttle comparable to a Mercedes-Benz Vito, up to 10 passengers with luggage.",
                "modelDescription": "Mercedes-Benz Vito or similar",
                "image": "https://daytrip.imgix.net/site/shuttle.png"
            },
            "luggage": {
                "maxCarryonsPerPerson": 1,
                "maxSuitcasesPerPerson": 1,
                "maxTotalCarryons": 2,
                "maxTotalSuitcases": 2
            },
            "seatsAvailable": 8,
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "possibleStops": [],
            "cancellationPolicy": "Flexible",
            "expiresAt": "2022-12-04T15:00:00Z"
        },
        {
            "id": "4b137906-008a-49cf-b248-e3827b3a3175",
            "type": "Shared",
            "englishSpeakingDriver": false,
            "distanceKm": 350,
            "travelTimeMinutes": 235,
            "pickUp": {
                "lat": 50.12,
                "lon": 14.27,
                "time": "2022-12-05T20:00:00Z",
                "interval": {
                    "earliest": "2022-12-05T20:00:00Z",
                    "latest": "2022-12-05T20:10:00Z"
                },
                "timezone": "Europe/Prague",
                "description": "In front of the hotel Europa",
                "address": "Evropska 1540/41, Prague, Czechia",
                "meetAndGreet": false,
                "state": "adjusted",
                "immutable": true
            },
            "dropOff": {
                "lat": 48.21,
                "lon": 16.36,
                "time": "2022-12-05T23:55:00Z",
                "interval": {
                    "earliest": "2022-12-05T23:40:00Z",
                    "latest": "2022-12-05T23:55:00Z"
                },
                "timezone": "Europe/Vienna",
                "description": "Next to the railway station",
                "address": "Bahnhofplatz, 1010 Wien, Austria",
                "state": "adjusted",
                "immutable": true
            },
            "pricing": {
                "pricePerPassenger": 190,
                "totalPrice": 380
            },
            "vehicle": {
                "type": "Shuttle",
                "maxPassengers": 10,
                "description": "Shuttle comparable to a Mercedes-Benz Vito, up to 10 passengers with luggage.",
                "modelDescription": "Mercedes-Benz Vito or similar",
                "image": "https://daytrip.imgix.net/site/shuttle.png"
            },
            "luggage": {
                "maxCarryonsPerPerson": 1,
                "maxSuitcasesPerPerson": 1,
                "maxTotalCarryons": 2,
                "maxTotalSuitcases": 2
            },
            "seatsAvailable": 5,
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "possibleStops": [],
            "includedStops": [],
            "cancellationPolicy": "Flexible",
            "expiresAt": "2022-12-04T15:00:00Z"
        }
    ]
}

To search for a private trip from Dubrovnik to Venice for 10 passengers, with multiple vehicle options:

curl "https://papi.staging.mydaytrip.net/partners/v3/trip/search?originLatitude=42.639515&originLongitude=18.108064&destinationLatitude=45.434143&destinationLongitude=12.333497&departureTime=1766227088&includeShared=false&includeStops=false&passengersCount=10&includeMultipleVehicles=true" \
  -H "x-api-key: your_api_key"

The above call returns a JSON structured like this:

{
    "searchId": "f41dc34f-5218-46b1-8e46-1de8ccc5f5c3",
    "expiresAt": "2025-05-27T05:53:46Z",
    "passengersCount": 10,
    "currency": "EUR",
    "options": [
        {
            "id": "68646974-023a-4f9c-8358-869c7ab8db3d",
            "type": "Private",
            "englishSpeakingDriver": true,
            "distanceKm": 833,
            "travelTimeMinutes": 536,
            "pickUp": {
                "lat": 42.6420418,
                "lon": 18.11293,
                "time": "2025-12-20T10:38:08Z",
                "timezone": "Europe/Zagreb",
                "description": "Ploce Gate, Ul. Frana Supila 2",
                "address": "Vrata od Ploča, Ul. Vrata od Ploča, 20000, Dubrovnik, Croatia",
                "image": "https://daytrip.imgix.net/meeting-point-3.png",
                "meetAndGreet": false,
                "state": "adjusted",
                "adjustmentReason": "restricted_area",
                "immutable": true
            },
            "dropOff": {
                "lat": 45.43731978047655,
                "lon": 12.3191409718277,
                "description": "Piazzale Roma",
                "address": "Piazzale Roma, Venice, Metropolitan City of Venice, Italy",
                "image": "https://daytrip.imgix.net/meeting-point-4.png",
                "state": "adjusted",
                "adjustmentReason": "restricted_area",
                "immutable": true
            },
            "pricing": {
                "totalPrice": 2131
            },
            "vehicles": [
                {
                    "type": "Van",
                    "maxPassengers": 7,
                    "description": "Van comparable to a VW Transporter, up to 7 passengers with luggage.",
                    "modelDescription": "VW Transporter or similar",
                    "image": "https://daytrip.imgix.net/site/van-vw.png"
                },
                {
                    "type": "Sedan",
                    "maxPassengers": 3,
                    "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
                    "modelDescription": "VW Passat or similar",
                    "image": "https://daytrip.imgix.net/site/sedan.png"
                }
            ],
            "luggage": {
                "maxTotalCarryons": 10,
                "maxTotalSuitcases": 10
            },
            "possibleStops": [],
            "includedStops": [],
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "expiresAt": "2025-05-27T05:53:46Z"
        }
    ]
}

Endpoint Details

GET /partners/v3/trip/search

Query Parameters

Parameter Type Description
originType string Specifies whether the origin is provided as geo-coordinates or as an airport code. Possible values: coordinates, iata. If omitted, the default value is coordinates.
originLatitude number Origin latitude in degrees. Required if originType is set to coordinates or omitted.
originLongitude number Origin longitude in degrees. Required if originType is set to coordinates or omitted.
origin string IATA airport code of the origin airport. Required if originType is set to iata.
destinationType string Specifies whether the destination is provided as geo-coordinates or as an airport code. Possible values: coordinates, iata. If omitted, the default value is coordinates.
destinationLatitude number Destination latitude in degrees. Required if destinationType is set to coordinates or omitted.
destinationLongitude number Destination longitude in degrees. Required if destinationType is set to coordinates or omitted.
destination string IATA airport code of the destination airport. Required if destinationType is set to iata.
departureTime integer Departure time as a UNIX epoch timestamp in seconds. This timestamp should be calculated from the local departure time and converted to UTC. It can be omitted, if departureTimeLocal is provided.
departureTimeLocal integer Departure time as a UNIX epoch timestamp in seconds. This parameter can be used, when the origin timezone is unknown and conversion to UTC cannot be done. In this case the departure time can be sent as a local time converted to the Unix epoch. This parameter is not required, when departureTime is provided.
passengersCount integer Total number of passengers to transport (adults and children). Must be between 1 and 7 if includeMultipleVehicles is set to false or not provided. In case that includeMultipleVehicles is set to true this parameter must be between 1 and 99.
childrenCount integer Optional. Specifies the number of children in the group. Required for shared trip options.
includeStops boolean Optional. Defaults to true. When set to false, no stops will be included in the trip options.
includeShared boolean Optional. Defaults to false. When set to true, shared trip options will be included.
includeNonEnglishSpeaking boolean Optional. Defaults to true. When set to false, no trip options with non-English-speaking drivers will be included.
includeMeetingPositions boolean Deprecated. Optional. Ignored — meeting positions are always included in responses when applicable.
includeMultipleVehicles boolean Optional. Defaults to false. When set to true, if single vehicle options cannot be found we will try to provide trip options with multiple vehicles.

Response body

Property Type Description
searchId string Unique id of your search query.
expiresAt string Obsolete! Please use expiresAt property on TripOption object.
passengersCount integer The count of passengers this search query was for.
currency string Currency used for all prices in this response.
options list of TripOption List of options for this trip.

Error status codes

Status code Description
400 Invalid request - missing mandatory query parameter, parameter has wrong type or wrong passenger count.
401 API key missing or invalid.

Trip Customize

This endpoint is used to customize a trip option returned by the Search endpoint. The result is a new trip option with a new id that can be booked or customized again. The format of the response body is the same as for the Search endpoint. Currently the only supported customization operation is selection of stops for private trips. Selected stops will appear in includedStops of the returned option. In case of repeated calls, previously selected stops will be replaced, so if you selected one stop and want to change it to two stops, you need to send both stops in selectedStops. totalPrice and travelTimeMinutes will be automatically updated to reflect the selected stops.

To add the Mikulov stop to the sedan vehicle type private trip option from the Search endpoint example above, use the following call:

curl -d '{
  "optionId": "1d32109f-c2e2-44fe-b2cf-461ef3730541",
  "selectedStops": ["4ee58c0c-4e56-46ef-bd22-406a1bc60e1c"]
}' \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -X POST https://papi.staging.mydaytrip.net/partners/v3/trip/search/customize

The above call returns a JSON structured like this:

{
    "searchId": "f0e34a1b-2b3d-4747-b426-292633b615b4",
    "expiresAt": "2022-12-04T18:00:00Z",
    "passengersCount": 3,
    "currency": "EUR",
    "options": [
        {
            "id": "519314e3-cd92-41e0-85b6-c652c345e9d0",
            "type": "Private",
            "englishSpeakingDriver": true,
            "distanceKm": 334,
            "travelTimeMinutes": 268,
            "pickUp": {
                "lat": 50.1,
                "lon": 14.25,
                "time": "2022-12-05T18:00:00Z",
                "timezone": "Europe/Prague",
                "meetAndGreet": true,
                "state": "original",
                "immutable": false
            },
            "dropOff": {
                "lat": 48.2,
                "lon": 16.37,
                "state": "original",
                "immutable": false
            },
            "pricing": {
                "totalPrice": 288
            },
            "vehicle": {
                "type": "Sedan",
                "maxPassengers": 3,
                "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
                "modelDescription": "VW Passat or similar",
                "image": "https://daytrip.imgix.net/site/sedan.png"
            },
            "luggage": {
                "maxTotalCarryons": 3,
                "maxTotalSuitcases": 3
            },
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "includedStops": [
                {
                    "id": "4ee58c0c-4e56-46ef-bd22-406a1bc60e1c",
                    "price": 28,
                    "name": "Mikulov",
                    "image": "https://daytrip.imgix.net/510.jpg",
                    "title": "The Heart of Czech Wine Country",
                    "perex": "A town with a history as deep and flavourful as its wine, Mikulov provides a perfect combination of relaxation and exploration.",
                    "description": "Often favoured by visitors with a more active approach to life, Mikulov has much to offer. Surrounded by idyllic countryside, crisscrossed by bicycle paths and marked hiking trails, and the nearby Nové Mlýny lakes, there is something for everyone to enjoy. After all that fresh air, a glass of wine will be more than welcome, and fortunately, Mikulov is the centre for Czech wine making. Due to a high concentration of limestone in the local soil, wine from this region has a unique character and distinct taste. If you like your wine with a side-serving of history, Mikulov Castle dates from the 1730s, and the Dietrichstein Tomb is the final resting place of a Bohemian noble family. Mikulov is also significant for its strong Jewish history. In the early 1800s Mikulov's Jewish Quarter was the largest in Moravia with half the town's inhabitants being of Jewish faith.",
                    "durationInMinutes": 60,
                    "order": 2,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                }
            ],
            "possibleStops": [
                {
                    "id": "d280ce2a-6224-4d95-af17-a250f81b97dd",
                    "price": 31,
                    "name": "Lednice Chateau and Park",
                    "image": "https://daytrip.imgix.net/lednice-chateau-and-park4.jpg",
                    "title": "Vacation like a King",
                    "perex": "This UNESCO-listed chateau and sprawling park was the Lichtenstein's holiday home - exactly the kind of extravagance you'd expect from a dynasty with their own country. ",
                    "description": "The Liechtensteins really came into the money with the fortunes seized from Czech noblemen after their victory at the Battle of White Mountain in 1620, and Lednice was one of the presents they bought themselves. In the mid-19th century the baroque manor was given a complete makeover in the 'Windsor Gothic' style, leaving it as we see it today: a shameless flaunting of fabulous wealth, a slap in the face to anyone foolish enough to think that the French Revolution had ended high-living in Europe. The surrounding English landscape park, the largest in the country, is an incomparable swath of green, sprinkled with Romantic follies. There's also a monumental greenhouse open all year round, overflowing with exotic growths gathered by an army of botanists across the Americas. The greenhouse's exoticism is echoed by the charming minaret, constructed at the turn of the 18th century, bringing a whiff of Morocco to Moravia.\nFor more info: www.zamek-lednice.com",
                    "durationInMinutes": 60,
                    "order": 1,
                    "timezone": "Europe/Prague",
                    "country": {
                        "englishName": "Czech Republic"
                    }
                }
            ]
        }
    ]
}

Endpoint Details

POST /partners/v3/trip/search/customize

Request body

Property Type Description
optionId string Id of the option you want to customize. Taken from /search or /customize endpoint response.
selectedStops list of string List of ids of stops to include in the trip. Will replace currently included stops.

Response body

Same format as for the Search endpoint

Error status codes

Status code Description
400 Invalid request - missing mandatory property, property has a wrong type or not a valid json.
401 API key missing or invalid.
403 Forbidden request - trying to customize a trip option owned by someone else.
404 Trip option not found or expired. Stop not found.
409 Trip option has already been booked.

Trip Book

This endpoint is used to book a trip option. Any trip option from Search or Customize endpoint response can be booked if the search results have not expired yet (see expiresAt property). You need to send id of the chosen option and passenger details to this endpoint. The result is a booking id that can be used to cancel the booking if not too close to departure.

To book the customized trip option with stops from the example above or to book a trip option from the original Search endpoint response for two adults and one child with a booster seat, use the following call:

curl -d '{
  "optionId": "f0e34a1b-2b3d-4747-b426-292633b615b4",
  "pickUpAddressNote": "Havel airport",
  "dropOffAddressNote": "Vienna central square",
  "customerNote": "We will stand next to the entrance",
  "flightNumber": "FR008",
  "passengerDetails": [
    {
      "type": "Lead",
      "firstName": "John",
      "lastName": "Doe",
      "phone": "+41555555555",
      "email": "client-email@example.com",
      "over18": true
    },
    { "type": "Adult" },
    {
      "type": "Child",
      "childSeatType": "Booster"
    }
  ]
}' \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -X POST https://papi.staging.mydaytrip.net/partners/v3/trip/book

Example response without meeting and dropoff positions:

{
    "bookingId": "cb102778-a3d7-426e-8d18-6bd6b296f283",
    "bookingReference": "CB1027",
    "departureTimeUtc": "2022-12-05T18:00:00Z",
    "originTimezone": "Europe/Prague",
    "meetAndGreet": true,
    "trip": {
        "id": "f0e34a1b-2b3d-4747-b426-292633b615b4",
        "type": "Private",
        "englishSpeakingDriver": true,
        "distanceKm": 334,
        "travelTimeMinutes": 268,
        "pickUp": {
            "lat": 50.1,
            "lon": 14.25,
            "time": "2022-12-05T18:00:00Z",
            "timezone": "Europe/Prague",
            "meetAndGreet": true,
            "state": "original",
            "immutable": false
        },
        "dropOff": {
            "lat": 48.2,
            "lon": 16.37,
            "state": "original",
            "immutable": false
        },
        "pricing": {
            "totalPrice": 288
        },
        "vehicle": {
            "type": "Sedan",
            "maxPassengers": 3,
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "modelDescription": "VW Passat or similar",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        },
        "luggage": {
            "maxTotalCarryons": 3,
            "maxTotalSuitcases": 3
        },
        "availableChildSeatTypes": [
            {
                "childSeatType": "RearFacing",
                "description": "Rear-facing infant seat",
                "ageFrom": 0,
                "ageTo": 1,
                "weightInPoundsFrom": 0,
                "weightInPoundsTo": 26,
                "weightInKilosFrom": 0,
                "weightInKilosTo": 10
            },
            {
                "childSeatType": "ForwardFacing",
                "description": "Forward-facing w/harness",
                "ageFrom": 1,
                "ageTo": 4,
                "weightInPoundsFrom": 18,
                "weightInPoundsTo": 36,
                "weightInKilosFrom": 8,
                "weightInKilosTo": 16
            },
            {
                "childSeatType": "BoosterSeat",
                "description": "Booster seat with high back",
                "ageFrom": 4,
                "ageTo": 6,
                "weightInPoundsFrom": 30,
                "weightInPoundsTo": 50,
                "weightInKilosFrom": 14,
                "weightInKilosTo": 23
            },
            {
                "childSeatType": "Booster",
                "description": "Backless booster",
                "ageFrom": 6,
                "ageTo": 12,
                "weightInPoundsFrom": 44,
                "weightInPoundsTo": 72,
                "weightInKilosFrom": 20,
                "weightInKilosTo": 33
            }
        ],
        "includedStops": [],
        "possibleStops": []
    }
}

Example response with meeting and dropoff positions:

{
    "bookingId": "72r537a9-b846-4b46-b638-de8121337229",
    "bookingReference": "72R537",
    "departureTimeUtc": "2022-12-05T18:00:00Z",
    "originTimezone": "Europe/Zurich",
    "meetAndGreet": false,
    "meetingPosition": {
        "lat": 46.067648,
        "lon": 7.775185,
        "description": "The train station in Tasch",
        "address": "3929 Täsch, Switzerland",
        "instructions": "As vehicle entry into Zermatt is heavily restricted, your driver will meet you nearby at the train station in Tasch, which can be reached by transit from Zermatt within about 10 minutes. Your driver will be waiting at the taxi stand just outside the entrance to the train station.",
        "image": "https://daytrip.imgix.net/meeting-point-5.png"
    },
    "dropOffPosition": {
        "lat": 45.4374041,
        "lon": 12.3190675,
        "description": "Piazzale Roma",
        "address": "Piazzale Roma, Venice, Metropolitan City of Venice, Italy",
        "instructions": "Venice’s historic center (the islands) is not accessible by car. Our partner driver will drop you off at Piazzale Roma.",
        "image": "https://daytrip.imgix.net/meeting-point-4.png"
    },
    "trip": {
        "id": "519314e3-cd92-41e0-85b6-c652c345e9d0",
        "type": "Private",
        "englishSpeakingDriver": false,
        "distanceKm": 334,
        "travelTimeMinutes": 268,
        "pickUp": {
            "lat": 46.067648,
            "lon": 7.775185,
            "time": "2022-12-05T18:00:00Z",
            "timezone": "Europe/Zurich",
            "description": "The train station in Tasch",
            "address": "3929 Täsch, Switzerland",
            "image": "https://daytrip.imgix.net/meeting-point-5.png",
            "meetAndGreet": false,
            "state": "adjusted",
            "adjustmentReason": "restricted_area",
            "immutable": true
        },
        "dropOff": {
            "lat": 45.4374041,
            "lon": 12.3190675,
            "description": "Piazzale Roma",
            "address": "Piazzale Roma, Venice, Metropolitan City of Venice, Italy",
            "image": "https://daytrip.imgix.net/meeting-point-4.png",
            "state": "adjusted",
            "adjustmentReason": "restricted_area",
            "immutable": true
        },
        "pricing": {
            "totalPrice": 288
        },
        "vehicle": {
            "type": "Sedan",
            "maxPassengers": 3,
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        },
        "luggage": {
            "maxTotalCarryons": 3,
            "maxTotalSuitcases": 3
        },
        "availableChildSeatTypes": [
            {
                "childSeatType": "RearFacing",
                "description": "Rear-facing infant seat",
                "ageFrom": 0,
                "ageTo": 1,
                "weightInPoundsFrom": 0,
                "weightInPoundsTo": 26,
                "weightInKilosFrom": 0,
                "weightInKilosTo": 10
            },
            {
                "childSeatType": "ForwardFacing",
                "description": "Forward-facing w/harness",
                "ageFrom": 1,
                "ageTo": 4,
                "weightInPoundsFrom": 18,
                "weightInPoundsTo": 36,
                "weightInKilosFrom": 8,
                "weightInKilosTo": 16
            },
            {
                "childSeatType": "BoosterSeat",
                "description": "Booster seat with high back",
                "ageFrom": 4,
                "ageTo": 6,
                "weightInPoundsFrom": 30,
                "weightInPoundsTo": 50,
                "weightInKilosFrom": 14,
                "weightInKilosTo": 23
            },
            {
                "childSeatType": "Booster",
                "description": "Backless booster",
                "ageFrom": 6,
                "ageTo": 12,
                "weightInPoundsFrom": 44,
                "weightInPoundsTo": 72,
                "weightInKilosFrom": 20,
                "weightInKilosTo": 33
            }
        ],
        "includedStops": [],
        "possibleStops": []
    }
}

Endpoint Details

POST /partners/v3/trip/book

Request body

Property Type Description
optionId string Id of the option you want to book. Taken from /search or /customize endpoint response.
departureTime integer Optional. Departure time as a UNIX epoch timestamp in seconds to use instead of the departureTime provided to the /search. You can only move departure time less than 24 hours into the past or into the future compared to the original departureTime, otherwise the booking will be rejected (403 HTTP status code). Also if the new price after changing the departure time would be different, booking will also get rejected. Such price change should be extremely rare but your integration should be ready for it if you are sending different departureTime. Note that UNIX timestamps are UTC so you need to convert from local time to UTC when calculating it. Change of the departure time is applicable only for the private trip.
departureTimeLocal integer Optional. The same as departureTime but the local departure time is not converted to UTC. If departureTime is specified, this parameter cannot be sent, and vice versa.
pickUpAddressNote string Pickup address or a note describing the pickup point. Optional, but should be provided if available at the booking time; otherwise, it should be provided via the /update endpoint. Applicable only for the private trip. It will be ignored if the selected trip option already has a predefined meeting position that cannot be changed (immutable), i.e. the meeting position outside of a restricted area.
dropOffAddressNote string Dropoff address or a note describing the dropoff point. Optional, but should be provided if available at the booking time; otherwise, it should be provided via the /update endpoint. Applicable only for the private trip. It will be ignored if the selected trip option already has a predefined meeting position that cannot be changed (immutable), i.e. the meeting position outside of a restricted area.
customerNote string Optional note for the driver not related to pickup or dropoff. Applicable only for the private trip.
flightNumber string Optional flight number in case this is an airport pickup. Applicable only for the private trip.
passengerDetails list of PassengerDetail List of passengers that will go on this trip. For trips with "Private" type the number of passengers must be below or equal to maxPassengers of the vehicle in the trip option. For trips with "Shared" type the number of passengers must match the passengersCount query parameter from the Search endpoint. There must always be exactly one passenger of type "Lead" with contact details filled and adulthood confirmed via over18: true (or the deprecated birthday). For passenger of type "Child" you must specify a child seat of proper type offered in the trip option's availableChildSeatTypes. For older children that do not need any child seat use Adult passenger type.
externalId string Optional. You can send us the id of the booking in your system to help with communication when our support team needs to identify a booking and you are not able to provide our own bookingReference.

Response body

Property Type Description
bookingId string Id of the created booking. Can be used to retrieve details about the booking or to cancel it.
bookingReference string Short booking reference that can be shared with the customer in order for him to be able to contact Daytrip customer support easily.
departureTimeUtc string Date and time of departure in UTC.
originTimezone string IANA timezone for the origin location. Can be used to convert departureTimeUtc to local time.
meetAndGreet boolean Specifies if meet and greet is provided for the pickup of this booking.
meetingPosition object - MeetingPosition Information about the meeting position, important for unreachable places or when meet and greet is not provided. Optional.
dropOffPosition object - DropOffPosition Information about the dropoff position, important for unreachable places. Optional.
trip object - TripOption Trip option used to make the booking.

Error status codes

Status code Description
400 Invalid request - missing mandatory property, property has wrong type, mismatch in passenger count, missing lead passenger, multiple lead passengers, lead passenger not confirmed as over 18 or not a valid json.
401 API key missing or invalid.
403 Forbidden request - trying to book a trip option owned by someone else. Departure too soon. Departure time change not allowed.
404 Trip option not found or expired.
409 Trip option has already been booked. Price changed, please make a new search.

Trip Cancel

This endpoint is used to cancel a booked trip. For private trips only trips that have departure more than 24 hours in the future can be cancelled - this threshold is a subject to change. The shared trips can be cancelled at any time before departure, and compensated according to the selected cancellation policy.

To cancel a booked trip, use the following call:

curl -d '{ "bookingId": "cb102778-a3d7-426e-8d18-6bd6b296f283" }' \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -X POST https://papi.staging.mydaytrip.net/partners/v3/trip/cancel

Example response with the penalty amount for the cancellation:

{
    "penalty": 0,
    "currency": "EUR"
}

Endpoint Details

POST /partners/v3/trip/cancel

Request body

Property Type Description
bookingId string Id of the booking to cancel. Taken from /book endpoint response.

Response body

Property Type Description
penalty number Amount of money that will be deducted from the refund. If the penalty is 0, the cancellation is free of charge.
currency string Currency of the penalty amount.

Error status codes

Status code Description
400 Invalid request - bookingId missing or not a valid json.
401 API key missing or invalid.
403 Forbidden request - trying to cancel a booking owned by someone else or the departure is too soon.
404 Booking not found.
409 Booking has already been cancelled.

Trip Details

This endpoint returns details of a booked trip. It provides the status of the booking, information about the trip option and the data that were provided when booking the trip.

There are two versions of the endpoint: /partners/v3/trip/details/boookingId and /partners/v3/trip/external/details/externalId. The second version can be used to retrieve trip details by the externalId you provided when creating the booking. The response of both versions of the endpoint is exactly the same.

To get details of a booked trip by bookingId, use the following call:

curl https://papi.staging.mydaytrip.net/partners/v3/trip/details/bookingId \
  -H "x-api-key: your_api_key"

Make sure to replace bookingId with the real booking id.

To get details of a booked trip by externalId, use the following call:

curl https://papi.staging.mydaytrip.net/partners/v3/trip/external/details/externalId \
  -H "x-api-key: your_api_key"

Make sure to replace externalId with the real external id.

Example response without meeting and dropoff positions:

{
    "bookingId": "cb102786-f663-47d7-9635-7ef61a51bf29",
    "bookingReference": "CB1027",
    "status": "Confirmed",
    "createdAt": "2022-12-05T18:00:00Z",
    "passengersCount": 3,
    "currency": "EUR",
    "departureTimeUtc": "2022-12-05T18:00:00Z",
    "originTimezone": "Europe/Prague",
    "meetAndGreet": true,
    "pickUpAddressNote": "Havel airport",
    "dropOffAddressNote": "Vienna central square",
    "customerNote": "We will stand next to the entrance",
    "flightNumber": "FR008",
    "passengerDetails": [
        {
            "type": "Lead",
            "firstName": "John",
            "lastName": "Doe",
            "phone": "+41555555555",
            "email": "client-email@example.com",
            "birthday": 629424000,
            "over18": true
        },
        {
            "type": "Adult"
        },
        {
            "type": "Child",
            "childSeatType": "Booster"
        }
    ],
    "trip": {
        "type": "Private",
        "englishSpeakingDriver": true,
        "distanceKm": 334,
        "travelTimeMinutes": 268,
        "pickUp": {
            "lat": 50.1,
            "lon": 14.25,
            "time": "2022-12-05T18:00:00Z",
            "timezone": "Europe/Prague",
            "meetAndGreet": true,
            "state": "original",
            "immutable": false
        },
        "dropOff": {
            "lat": 48.2,
            "lon": 16.37,
            "state": "original",
            "immutable": false
        },
        "pricing": {
            "totalPrice": 288
        },
        "vehicle": {
            "type": "Sedan",
            "maxPassengers": 3,
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "modelDescription": "VW Passat or similar",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        },
        "luggage": {
            "maxTotalCarryons": 3,
            "maxTotalSuitcases": 3
        },
        "includedStops": [
            {
                "id": "4ee58c0c-4e56-46ef-bd22-406a1bc60e1c",
                "price": 28,
                "name": "Mikulov",
                "image": "https://daytrip.imgix.net/510.jpg",
                "title": "The Heart of Czech Wine Country",
                "perex": "A town with a history as deep and flavourful as its wine, Mikulov provides a perfect combination of relaxation and exploration.",
                "description": "Often favoured by visitors with a more active approach to life, Mikulov has much to offer. Surrounded by idyllic countryside, crisscrossed by bicycle paths and marked hiking trails, and the nearby Nové Mlýny lakes, there is something for everyone to enjoy. After all that fresh air, a glass of wine will be more than welcome, and fortunately, Mikulov is the centre for Czech wine making. Due to a high concentration of limestone in the local soil, wine from this region has a unique character and distinct taste. If you like your wine with a side-serving of history, Mikulov Castle dates from the 1730s, and the Dietrichstein Tomb is the final resting place of a Bohemian noble family. Mikulov is also significant for its strong Jewish history. In the early 1800s Mikulov's Jewish Quarter was the largest in Moravia with half the town's inhabitants being of Jewish faith.",
                "durationInMinutes": 60,
                "order": 2,
                "timezone": "Europe/Prague",
                "country": {
                    "englishName": "Czech Republic"
                }
            }
        ]
    }
}

Example response with meeting and dropoff positions:

{
    "bookingId": "72r53786-f663-47d7-9635-7ef61a51bf29",
    "bookingReference": "72R537",
    "status": "Confirmed",
    "createdAt": "2022-12-05T18:00:00Z",
    "passengersCount": 3,
    "currency": "EUR",
    "departureTimeUtc": "2022-12-05T18:00:00Z",
    "originTimezone": "Europe/Zurich",
    "meetAndGreet": false,
    "meetingPosition": {
        "lat": 46.067648,
        "lon": 7.775185,
        "description": "The train station in Tasch",
        "address": "3929 Täsch, Switzerland",
        "instructions": "As vehicle entry into Zermatt is heavily restricted, your driver will meet you nearby at the train station in Tasch, which can be reached by transit from Zermatt within about 10 minutes. Your driver will be waiting at the taxi stand just outside the entrance to the train station.",
        "image": "https://daytrip.imgix.net/meeting-point-5.png"
    },
    "dropOffPosition": {
        "lat": 45.4374041,
        "lon": 12.3190675,
        "description": "Piazzale Roma",
        "address": "Piazzale Roma, Venice, Metropolitan City of Venice, Italy",
        "instructions": "Venice’s historic center (the islands) is not accessible by car. Our partner driver will drop you off at Piazzale Roma.",
        "image": "https://daytrip.imgix.net/management/venice.png?w=480&q=50"
    },
    "pickUpAddressNote": "Zermatt",
    "dropOffAddressNote": "Venice",
    "passengerDetails": [
        {
            "type": "Lead",
            "firstName": "John",
            "lastName": "Doe",
            "phone": "+41555555555",
            "email": "client-email@example.com",
            "birthday": 629424000,
            "over18": true
        },
        {
            "type": "Adult"
        },
        {
            "type": "Child",
            "childSeatType": "Booster"
        }
    ],
    "trip": {
        "type": "Private",
        "englishSpeakingDriver": true,
        "distanceKm": 334,
        "travelTimeMinutes": 268,
        "pickUp": {
            "lat": 46.067648,
            "lon": 7.775185,
            "time": "2022-12-05T18:00:00Z",
            "timezone": "Europe/Zurich",
            "description": "The train station in Tasch",
            "address": "3929 Täsch, Switzerland",
            "image": "https://daytrip.imgix.net/meeting-point-5.png",
            "meetAndGreet": false,
            "state": "adjusted",
            "adjustmentReason": "restricted_area",
            "immutable": true
        },
        "dropOff": {
            "lat": 45.4374041,
            "lon": 12.3190675,
            "description": "Piazzale Roma",
            "address": "Piazzale Roma, Venice, Metropolitan City of Venice, Italy",
            "image": "https://daytrip.imgix.net/meeting-point-4.png",
            "state": "adjusted",
            "adjustmentReason": "restricted_area",
            "immutable": true
        },
        "pricing": {
            "totalPrice": 1311
        },
        "vehicle": {
            "type": "Sedan",
            "maxPassengers": 3,
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "modelDescription": "VW Passat or similar",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        },
        "luggage": {
            "maxTotalCarryons": 3,
            "maxTotalSuitcases": 3
        },
        "includedStops": []
    }
}

Endpoint Details

GET /partners/v3/trip/details/bookingId

OR

/partners/v3/trip/external/details/externalId

Replace bookingId/externalId with the id of the booking you want to retrieve details for.

Response body

Property Type Description
bookingId string Unique id of the booking.
bookingReference string Short booking reference that can be shared with the customer in order for him to be able to contact Daytrip customer support easily.
externalId string Optional. If you sent the externalId parameter to the /book endpoint it will be returned here.
status string Booking status. "Confirmed" or "Cancelled".
createdAt string UTC timestamp of when this booking was created.
cancelledAt string UTC timestamp of when this booking was cancelled. Optional.
passengersCount integer The count of passengers this booking is for.
currency string Currency used for all prices in this response.
departureTimeUtc string Date and time of departure in UTC. This reflects possible changes made by customer support.
originTimezone string IANA timezone for the origin location. Can be used to convert departureTimeUtc to local time.
meetAndGreet boolean Specifies if meet and greet is provided for the pickup of this booking.
meetingPosition object - MeetingPosition Information about the meeting position, important for unreachable places or when meet and greet is not provided. Optional.
dropOffPosition object - DropOffPosition Information about the dropoff position, important for unreachable places. Optional.
pickUpAddressNote string Pickup address or a note describing the pickup point. Optional, but should be provided it it was unknown at the booking time. Applicable only for the private trip.
dropOffAddressNote string Dropoff address or a note describing the dropoff point. Optional, but should be provided it it was unknown at the booking time. Applicable only for the private trip.
customerNote string Optional note for the driver not related to pickup or dropoff.
flightNumber string Optional flight number in case this is an airport pickup.
passengerDetails list of PassengerDetail List of passengers that will go on this trip.
trip object - TripOption Information about the trip. This does not reflect changes made after the booking was created.

Error status codes

Status code Description
401 API key missing or invalid.
403 Forbidden request - trying to get details of a booking owned by someone else.
404 Booking not found.

Trip Update

This endpoint is used to update minor details of an existing booking. If you want to change departure time or add/remove stops you need to cancel the booking and create it again as it can affect the price. The response of the endpoint are the details of the updated booking, in the same format as the /details endpoint.

To update passenger details and customer note of a booked trip, use the following call:

curl -d '{
  "bookingId": "cb102778-a3d7-426e-8d18-6bd6b296f283",
  "customerNote": "We will wait inside the Airport building",
  "passengerDetails": [
    {
      "type": "Lead",
      "firstName": "John",
      "lastName": "Doe",
      "phone": "+4166666666",
      "email": "client-email@example.com",
      "over18": true
    },
    { "type": "Adult" },
    {
      "type": "Child",
      "childSeatType": "BoosterSeat"
    }
  ]
}' \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -X POST https://papi.staging.mydaytrip.net/partners/v3/trip/update

The above call returns a JSON structured like this:

{
    "bookingId": "cb102786-f663-47d7-9635-7ef61a51bf29",
    "bookingReference": "CB1027",
    "status": "Confirmed",
    "createdAt": "2022-12-05T18:00:00Z",
    "passengersCount": 3,
    "currency": "EUR",
    "departureTimeUtc": "2022-12-05T18:00:00Z",
    "originTimezone": "Europe/Prague",
    "meetAndGreet": true,
    "pickUpAddressNote": "Havel airport",
    "dropOffAddressNote": "Vienna central square",
    "customerNote": "We will wait inside the Airport building",
    "flightNumber": "FR008",
    "passengerDetails": [
        {
            "type": "Lead",
            "firstName": "John",
            "lastName": "Doe",
            "phone": "+4166666666",
            "email": "client-email@example.com",
            "birthday": 629424000,
            "over18": true
        },
        {
            "type": "Adult"
        },
        {
            "type": "Child",
            "childSeatType": "BoosterSeat"
        }
    ],
    "trip": {
        "type": "Private",
        "englishSpeakingDriver": true,
        "distanceKm": 334,
        "travelTimeMinutes": 268,
        "pickUp": {
            "lat": 50.1,
            "lon": 14.25,
            "time": "2022-12-05T18:00:00Z",
            "timezone": "Europe/Prague",
            "meetAndGreet": true,
            "state": "original",
            "immutable": false
        },
        "dropOff": {
            "lat": 48.2,
            "lon": 16.37,
            "state": "original",
            "immutable": false
        },
        "pricing": {
            "totalPrice": 288
        },
        "vehicle": {
            "type": "Sedan",
            "maxPassengers": 3,
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "modelDescription": "VW Passat or similar",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        },
        "luggage": {
            "maxTotalCarryons": 3,
            "maxTotalSuitcases": 3
        },
        "includedStops": [
            {
                "id": "4ee58c0c-4e56-46ef-bd22-406a1bc60e1c",
                "price": 28,
                "name": "Mikulov",
                "image": "https://daytrip.imgix.net/510.jpg",
                "title": "The Heart of Czech Wine Country",
                "perex": "A town with a history as deep and flavourful as its wine, Mikulov provides a perfect combination of relaxation and exploration.",
                "description": "Often favoured by visitors with a more active approach to life, Mikulov has much to offer. Surrounded by idyllic countryside, crisscrossed by bicycle paths and marked hiking trails, and the nearby Nové Mlýny lakes, there is something for everyone to enjoy. After all that fresh air, a glass of wine will be more than welcome, and fortunately, Mikulov is the centre for Czech wine making. Due to a high concentration of limestone in the local soil, wine from this region has a unique character and distinct taste. If you like your wine with a side-serving of history, Mikulov Castle dates from the 1730s, and the Dietrichstein Tomb is the final resting place of a Bohemian noble family. Mikulov is also significant for its strong Jewish history. In the early 1800s Mikulov's Jewish Quarter was the largest in Moravia with half the town's inhabitants being of Jewish faith.",
                "durationInMinutes": 60,
                "order": 2,
                "timezone": "Europe/Prague",
                "country": {
                    "englishName": "Czech Republic"
                }
            }
        ]
    }
}

Endpoint Details

POST /partners/v3/trip/update

Request body

All properties except bookingId are optional. When a property is not included in the request it won't be updated and it will keep it's previous value. If you want to remove a property value like customerNote then send an empty string "" as the value. If you want to make changes to any passenger you need to provide full passengerDetails array - it's not possible to send only details of the passenger you want to update.

Disclaimer: in the last 24 hours before the departure the /update endpoint will no longer accept updates. For updates in the last 24 hours please contact our customer support at daytrip@mydaytrip.com or call +44 20 3318 1119.

Property Type Description
bookingId string Id of the booking to cancel. Taken from /book endpoint response.
pickUpAddressNote string Pickup address or a note describing the pickup point. Optional, but should be provided if it was not provided at the booking time. Applicable only for the private trip. It will be ignored if the selected trip option already has a predefined meeting position that cannot be changed (immutable), i.e. the meeting position outside of a restricted area.
dropOffAddressNote string Dropoff address or a note describing the dropoff point. Optional, but should be provided if it was not provided at the booking time. Applicable only for the private trip. It will be ignored if the selected trip option already has a predefined meeting position that cannot be changed (immutable), i.e. the meeting position outside of a restricted area.
customerNote string Optional note for the driver not related to pickup or dropoff.
flightNumber string Optional flight number in case this is an airport pickup.
passengerDetails list of PassengerDetail Optional. List of passengers that will go on this trip. For trips with "Private" type the number of passengers must be below or equal to maxPassengers of the vehicle in the trip option. For trips with "Shared" type the number of passengers must match the passengersCount query parameter from the Search endpoint. There must always be exactly one passenger of type "Lead" with contact details filled and adulthood confirmed via over18: true (or the deprecated birthday). For passenger of type "Child" you must specify a child seat of proper type offered in the trip option's availableChildSeatTypes. For older children that do not need any child seat use Adult passenger type.

Response body

Property Type Description
bookingId string Unique id of the booking.
bookingReference string Short booking reference that can be shared with the customer in order for him to be able to contact Daytrip customer support easily.
externalId string Optional. If you sent the externalId parameter to the /book endpoint it will be returned here.
status string Booking status. "Confirmed" or "Cancelled".
createdAt string UTC timestamp of when this booking was created.
cancelledAt string UTC timestamp of when this booking was cancelled. Optional.
passengersCount integer The count of passengers this booking is for.
currency string Currency used for all prices in this response.
departureTimeUtc string Date and time of departure in UTC. This reflects possible changes made by customer support.
originTimezone string IANA timezone for the origin location. Can be used to convert departureTimeUtc to local time.
meetAndGreet boolean Specifies if meet and greet is provided for the pickup of this booking.
meetingPosition object - MeetingPosition Information about the meeting position, important for unreachable places or when meet and greet is not provided. Optional.
dropOffPosition object - DropOffPosition Information about the dropoff position, important for unreachable places. Optional.
pickUpAddressNote string Pickup address or a note describing the pickup point. Optional.
dropOffAddressNote string Dropoff address or a note describing the dropoff point. Optional.
customerNote string Optional note for the driver not related to pickup or dropoff.
flightNumber string Optional flight number in case this is an airport pickup.
passengerDetails list of PassengerDetail List of passengers that will go on this trip.
trip object - TripOption Information about the trip. This does not reflect changes made after the booking was created.

Error status codes

Status code Description
400 Invalid request - missing mandatory property, property has wrong type, mismatch in passenger count, missing lead passenger, multiple lead passengers, lead passenger not confirmed as over 18 or not a valid json.
401 API key missing or invalid.
403 Forbidden request - trying to update details of a booking owned by someone else or trying to update a trip in the last 24 hours before departure.
404 Booking not found.
409 Trying to update a cancelled booking.

Trip Tracking

This endpoint allows you to retrieve the latest position of driver(s) assigned to the trip. Not every trip is guaranteed to have driver tracking. Use the /drivers endpoint to retrieve the details about the drivers and the vehicles. That information can be cached and does not need to be retrieved with every tracking request.

To get driver position(s) of a trip currently in progress, use the following call:

curl https://papi.staging.mydaytrip.net/partners/v3/trip/tracking/bookingId \
  -H "x-api-key: your_api_key"

Make sure to replace bookingId with the real booking id.

Example response for a trip served by one driver:

{
    "driverPositions": [
        {
            "timestamp": "2023-12-04T18:00:00Z",
            "driverId": "4381b73d-be1d-4d7d-bf7c-cdde5292c1b9",
            "position": {
                "lat": 50.09298565485293,
                "lon": 14.453347220812443
            }
        }
    ]
}

Example response for a trip where tracking did not start yet:

{
    "driverPositions": []
}

Example response for a trip served by two drivers:

{
    "driverPositions": [
        {
            "timestamp": "2023-12-04T18:00:00Z",
            "driverId": "4381b73d-be1d-4d7d-bf7c-cdde5292c1b9",
            "position": {
                "lat": 50.09298565485293,
                "lon": 14.453347220812443
            }
        },
        {
            "timestamp": "2023-12-04T18:01:00Z",
            "driverId": "52443e97-dd86-477a-927a-8fc9fa786797",
            "position": {
                "lat": 50.08213692331847,
                "lon": 14.433944045117011
            }
        }
    ]
}

Endpoint Details

GET /partners/v3/trip/tracking/bookingId

Replace bookingId with the id of the booking you want to track.

Response body

Property Type Description
driverPositions list of DriverPosition List of latest driver positions for this trip.

Error status codes

Status code Description
401 API key missing or invalid.
403 Forbidden request - trying to track a booking owned by someone else.
404 Booking not found.

Trip Drivers

This endpoint allows you to retrieve the information about driver(s) and vehicle(s) currently assigned to the trip. The assigned driver might change so it is recommended to pass this information to the customer only few days before the trip and give him an update if the response of this endpoint changes. The driverId returned by this endpoint is the same as the driverId returned by the /tracking endpoint and can be used to identify which driver is at which position in case of trips with multiple drivers.

Proposed frequency of calling this endpoint depending on the time before the departure time:

To get drivers currently assigned to a trip

curl https://papi.staging.mydaytrip.net/partners/v3/trip/drivers/bookingId \
  -H "x-api-key: your_api_key"

Make sure to replace bookingId with the real booking id.

Example response for a trip served by one driver:

{
    "assignedDrivers": [
        {
            "driverId": "4381b73d-be1d-4d7d-bf7c-cdde5292c1b9",
            "name": "John Doe",
            "phoneNumber": "+1 628 201 9501",
            "profilePhoto": "link to image of driver's profile photo",
            "vehicle": {
                "title": "Mercedes-Benz E-class",
                "color": "Black",
                "licensePlate": "XXXXXX"
            }
        }
    ]
}

Example response for a trip that doesn't have any assigned driver yet:

{
    "assignedDrivers": []
}

Example response for a trip served by two drivers:

{
    "assignedDrivers": [
        {
            "driverId": "4381b73d-be1d-4d7d-bf7c-cdde5292c1b9",
            "name": "John Doe",
            "phoneNumber": "+1 628 201 9501",
            "profilePhoto": "link to driver's profile photo image",
            "vehicle": {
                "title": "Mercedes-Benz E-class",
                "color": "Black",
                "licensePlate": "XXXXXX"
            }
        },
        {
            "driverId": "52443e97-dd86-477a-927a-8fc9fa786797",
            "name": "Jack Smith",
            "phoneNumber": "+1 628 201 9501",
            "vehicle": {
                "title": "BMW 5 Series"
            }
        }
    ]
}

Endpoint Details

GET /partners/v3/trip/drivers/bookingId

Replace bookingId with the id of the booking you want to retrieve drivers and vehicles for.

Response body

Property Type Description
assignedDrivers list of Driver List of drivers currently assigned to this trip.

Error status codes

Status code Description
401 API key missing or invalid.
403 Forbidden request - trying to retrieve drivers for a booking owned by someone else.
404 Booking not found.

Trip API Data Types

Below is a documentation of all object entities returned by the Daytrip API endpoints.

TripOption

Property Type Description
id string Unique id of the trip option. Used to customize or book this option.
type string Type of this option. "Private" or "Shared" (predefined shuttle trips).
englishSpeakingDriver boolean Specifies if this option includes an English speaking driver.
distanceKm number Length of the trip.
travelTimeMinutes number Expected duration of the trip in minutes.
pickUp object - Location Details about the pickup point.
dropOff object - Location Details about the dropoff point.
pricing object - Pricing Details about the pricing.
vehicle object - Vehicle Details about the vehicle. Defined only if includeMultipleVehicles set to false or not defined.
vehicles list of Vehicle Details about vehicles. Defined only if includeMultipleVehicles set to true.
luggage object - Luggage Details about the luggage.
seatsAvailable integer Number of available seats in the shared shuttle. Optional.
availableChildSeatTypes list of ChildSeatType List of available child seat types for this trip.
possibleStops list of Stop Stops that can be added to this trip option.
includedStops list of Stop Stops that are already included in this option.
cancellationPolicy one of CancellationPolicyType Cancellation policy for this trip option. Optional. Populated only for shared trips.
expiresAt string UTC timestamp of when this offer expires. After this time it is no longer possible to book it, you need to make a new search.

Location

Property Type Description
lat number Latitude in degrees.
lon number Longitude in degrees.
time string UTC timestamp of the departure or arrival time. Optional. For pickup only in case of the private trip. Always present for shared trips.
interval object - TimeInterval Estimated departure or arrival interval. Optional, for shared trips only.
timezone string IANA timezone matching the location. Presents if time or interval are present. Can be used to convert UTC timestamps from time/interval to local time.
description string Description of the pickup or dropoff. Optional.
address string Address of the pickup or dropoff. Optional.
image string Link to an image of the position. Optional.
meetAndGreet boolean Specifies if meet and greet is provided for this pickup. Optional, for pickup only.
state string Represents a state of the location: original - customer provided; or adjusted - differs from the pickup or dropoff requested by the customer.
adjustmentReason string Reason for the adjustment of the pickup or dropoff. Optional. Possible values: restricted_area, airport_pickup.
immutable boolean Specifies if the pickup or dropoff position can be changed. If true then the position is predefined and cannot be changed.

TimeInterval

Property Type Description
earliest string UTC timestamp of the start of the interval.
latest string UTC timestamp of the end of the interval.

Pricing

Property Type Description
totalPrice number Total price of this option based on requested passenger count.
pricePerPassenger number Price per passenger. Optional, for shared options only.

Vehicle

Property Type Description
type string Type of vehicle. "Sedan", "MPV", "Van", "PremiumVan", "Luxury" or "Shuttle"
maxPassengers integer Maximum number of passengers that can take a trip in this vehicle.
description string Complete description of the vehicle type.
modelDescription string Models that the vehicle is similar to.
image string Link to an illustrative image of the vehicle type. Not an image of the exact vehicle that will be used for this trip.

Luggage

Property Type Description
maxTotalCarryons integer Maximum amount of carry-on luggage that passengers can bring on this trip.
maxTotalSuitcases integer Maximum amount of suitcases that passengers can bring on this trip.
maxCarryonsPerPerson integer Maximum amount of carry-on luggage that one passenger can bring on this trip. Optional, for shared trips only.
maxSuitcasesPerPerson integer Maximum amount of suitcases that one passenger can bring on this trip. Optional, for shared trips only.

ChildSeatType

Property Type Description
childSeatType string Type of the child seat. "RearFacing", "ForwardFacing", "BoosterSeat" or "Booster"
description string Description of the child seat type.
ageFrom integer Minimum age in years of a child that this seat type is suitable for.
ageTo integer Maximum age in years of a child that this seat type is suitable for.
weightInPoundsFrom integer Minimum weight in pounds of a child that this seat type is suitable for.
weightInPoundsTo integer Maximum weight in pounds of a child that this seat type is suitable for.
weightInKilosFrom integer Minimum weight in kilograms of a child that this seat type is suitable for.
weightInKilosTo integer Maximum weight in kilograms of a child that this seat type is suitable for.

Stop

Property Type Description
id string Id of the stop. Used for adding stops to a trip option.
price number Price of the stop. If the stop is in includedStops then this price is already part of totalPrice under pricing of the TripOption.
name string Name of the stop.
image string Link to the image of the stop.
title string Title of the stop description.
perex string Perex of the stop description.
description string The stop description.
durationInMinutes integer Expected duration of the stop.
order integer Order of this stop on this trip.
timezone string IANA timezone matching the location of the stop.
country object - Country Details about the country where the stop is located.

Country

Property Type Description
englishName string Name of the country in English.

PassengerDetail

Property Type Description
type string Type of the passenger. "Lead", "Adult" or "Child"
firstName string First name of the passenger - required the for lead passenger.
lastName string Last name of the passenger - required for the lead passenger.
phone string Phone number of the passenger - required for the lead passenger. Include country prefix in the +<country_code> format.
email string Email of the passenger - required for the lead passenger.
over18 boolean Confirmation that the lead passenger is 18 years old or older - required for the lead passenger unless the deprecated birthday is sent. Must be true; a booking with over18: false is rejected (400 HTTP status code). In responses it is always true for the lead passenger, as adulthood is validated at booking time.
birthday integer Deprecated. Use over18 instead. Birthday of the lead passenger as a UNIX epoch timestamp in seconds. Still accepted and still required when over18 is not sent, so existing integrations keep working. In responses this property is always returned for the lead passenger; for bookings made with over18 it holds a placeholder date (1990-01-01) instead of a real birthday.
childSeatType string Requested child seat type for a passenger of type "Child". Must match one of offered child seat types from availableChildSeatTypes of the trip option you are booking.

MeetingPosition

Property Type Description
lat number Latitude in degrees.
lon number Longitude in degrees.
description string Description of the position.
instructions string Meeting instructions for the customer.
address string Address of the position. Optional.
image string Link to an image of the position. Optional.

DropOffPosition

Property Type Description
lat number Latitude in degrees.
lon number Longitude in degrees.
description string Description of the position.
address string Address of the position. Optional.
image string Link to an image of the position. Optional.

DriverPosition

Property Type Description
timestamp string UTC timestamp of when this position was reported by the driver.
driverId string Unique id of the driver. To distinguish the drivers for trips with multiple drivers. Use the /drivers endpoint to retrieve the details about the drivers and vehicles and match them by this id.
position object - Position Last reported position of the driver.

Position

Property Type Description
lat number Latitude in degrees.
lon number Longitude in degrees.

Driver

Property Type Description
driverId string Unique id of the driver. Used to match driver position with driver details.
name string Name of the driver.
phoneNumber string Phone number of the driver including country code.
profilePhoto string Optional. Link to driver's profile photo if available.
vehicle object - DriversVehicle Information about driver's vehicle.

DriversVehicle

Property Type Description
title string Make and model of the vehicle.
color string Optional. Color of the vehicle if known.
licensePlate string Optional. Licence plate of the vehicle if known.

CancellationPolicyType

Property Type Description
NonRefundable string No refunds for cancellations.
Flexible string 100% refundable up to 24 hours before departure.
SuperFlexible string 100% refundable up to 15 minutes before departure.

Hourly Ride API

An hourly ride is a time-based rental service where passengers rent a driver with a vehicle for a specified duration, starting and ending at the same location. Each search will return multiple hourly ride options that can differ by vehicle type. The service includes number of kilometers included in travel per hour rented.

Flows

Hourly Ride API can be used to search for hourly ride options and then book the option.

Simple hourly ride

A typical flow would look like this:

  1. call /search endpoint to get possible options
  2. call /book endpoint to book the chosen option
  3. optional - call /details endpoint to get hourly ride and booking details

Cancelling an hourly ride

A flow to book an hourly ride, get details about it and then cancel it would look like this:

  1. call /search endpoint to get possible options
  2. call /book endpoint to book the chosen option
  3. optional - call /details endpoint to get hourly ride and booking details
  4. call /cancel endpoint to cancel the booking

Changing an hourly ride

If you want to change departure time, duration, or any other booking details, you need to cancel the existing booking and create a new one as changes can affect the price.

This endpoint returns all available hourly ride options based on the specified pickup location, departure time, duration, and passenger count. The pickup location can be provided either as geographic coordinates or as an IATA airport code. Geographic coordinates should be specified as latitude and longitude in decimal degrees format, for example: 39.753657, -117.610215. The departure time must be provided as a UNIX epoch timestamp in seconds (e.g., 1679463169), calculated from the local departure time and converted to UTC. Response times will be in ISO 8601 format.

To search for an hourly ride in Prague for 3 passengers for 6 hours, use this call:

curl "https://papi.staging.mydaytrip.net/partners/v1/hourly-rides/search?originType=iata&origin=PRG&departureTime=1769855400&hoursRented=6&passengersCount=3&childrenCount=1" \
  -H "x-api-key: your_api_key"

To search for an hourly ride from Dubrovnik Old Town for 10 passengers for 6 hours, use this call:

curl "https://papi.staging.mydaytrip.net/partners/v1/hourly-rides/search?originLatitude=42.639859&originLongitude=18.109776&departureTime=1769855400&hoursRented=6&passengersCount=10&childrenCount=1" \
  -H "x-api-key: your_api_key"

The above call returns a JSON structured like this:

{
    "searchId": "f0e34a1b-2b3d-4747-b426-292633b615b4",
    "passengersCount": 10,
    "childrenCount": 1,
    "options": [
        {
            "id": "1d32109f-c2e2-44fe-b2cf-461ef3730541",
            "type": "Private",
            "englishSpeakingDriver": true,
            "hoursRented": 6,
            "includedKilometers": 120,
            "pricing": {
                "totalPrice": 385,
                "currency": "EUR"
            },
            "pickUp": {
                "lat": 42.6420632,
                "lon": 18.1131754,
                "time": "2026-01-31T10:30:00Z",
                "timezone": "Europe/Zagreb",
                "description": "Ploce Gate, Ul. Frana Supila 2",
                "meetAndGreet": false,
                "pickupInstructions": "Your driver will be waiting for you at the entrance of the address provided, please be ready 10 minutes prior to the pick up time",
                "immutable": true,
                "state": "adjusted",
                "adjustmentReason": "restricted_area",
                "address": "Vrata od Ploča, Ul. Vrata od Ploča, 20000, Dubrovnik, Croatia",
                "image": "https://daytrip.imgix.net/management/dubrovnik.png?w=480&q=50"
            },
            "vehicles": [
                {
                    "type": "Van",
                    "maxPassengers": 7,
                    "description": "Van comparable to a VW Transporter, up to 7 passengers with luggage.",
                    "modelDescription": "VW Transporter or similar",
                    "image": "https://daytrip.imgix.net/site/van-vw.png"
                },
                {
                    "type": "Sedan",
                    "maxPassengers": 3,
                    "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
                    "modelDescription": "VW Passat or similar",
                    "image": "https://daytrip.imgix.net/site/sedan.png"
                }
            ],
            "luggage": {
                "maxTotalCarryons": 10,
                "maxTotalSuitcases": 10
            },
            "availableChildSeatTypes": [
                {
                    "childSeatType": "RearFacing",
                    "description": "Rear-facing infant seat",
                    "ageFrom": 0,
                    "ageTo": 1,
                    "weightInPoundsFrom": 0,
                    "weightInPoundsTo": 26,
                    "weightInKilosFrom": 0,
                    "weightInKilosTo": 10
                },
                {
                    "childSeatType": "ForwardFacing",
                    "description": "Forward-facing w/harness",
                    "ageFrom": 1,
                    "ageTo": 4,
                    "weightInPoundsFrom": 18,
                    "weightInPoundsTo": 36,
                    "weightInKilosFrom": 8,
                    "weightInKilosTo": 16
                },
                {
                    "childSeatType": "BoosterSeat",
                    "description": "Booster seat with high back",
                    "ageFrom": 4,
                    "ageTo": 6,
                    "weightInPoundsFrom": 30,
                    "weightInPoundsTo": 50,
                    "weightInKilosFrom": 14,
                    "weightInKilosTo": 23
                },
                {
                    "childSeatType": "Booster",
                    "description": "Backless booster",
                    "ageFrom": 6,
                    "ageTo": 12,
                    "weightInPoundsFrom": 44,
                    "weightInPoundsTo": 72,
                    "weightInKilosFrom": 20,
                    "weightInKilosTo": 33
                }
            ],
            "cancellationPolicy": "Flexible",
            "expiresAt": "2025-11-23T18:00:00Z"
        }
    ]
}

Endpoint Details

GET /partners/v1/hourly-rides/search

Query Parameters

Parameter Type Description
originType string Specifies whether the origin is provided as geo-coordinates or as an airport code. Possible values: coordinates, iata. If omitted, the default value is coordinates.
originLatitude number Pickup location latitude in degrees. Required if originType is set to coordinates or omitted.
originLongitude number Pickup location longitude in degrees. Required if originType is set to coordinates or omitted.
origin string IATA airport code of the pickup airport. Required if originType is set to iata.
departureTime integer Departure time as a UNIX epoch timestamp in seconds. This timestamp should be calculated from the local departure time and converted to UTC.
hoursRented integer Duration of the rental in hours.
passengersCount integer Total number of passengers to transport (adults and children).
childrenCount integer Optional. Specifies the number of children in the group.

Note: Meeting positions are automatically included in results. When the requested address is in an area that vehicles cannot access directly (e.g., restricted zones, pedestrian areas), the API will return the nearest accessible meeting point with relevant details.

Response body

Property Type Description
searchId string Unique id of your search query.
passengersCount integer The count of passengers this search query was for.
childrenCount integer The count of children this search query was for.
options list of HourlyRideOption List of options for this hourly ride.

Error status codes

Status code Description
400 Invalid request - missing mandatory query parameter, parameter has wrong type or wrong passenger count.
401 API key missing or invalid.

Hourly Ride Book

This endpoint creates a booking for the selected hourly ride option. The booking must include lead passenger details and can optionally include additional adult and child passenger details with required child seats.

To book an hourly ride option, use this call:

curl -X POST "https://papi.staging.mydaytrip.net/partners/v1/hourly-rides/book" \
  -H "x-api-key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "optionId": "1d32109f-c2e2-44fe-b2cf-461ef3730541",
    "customerNote": "Please call upon arrival",
    "passengerDetails": [
        {
            "type": "Lead",
            "firstName": "John",
            "lastName": "Doe",
            "email": "john.doe@example.com",
            "phone": "+420123456789",
            "over18": true
        },
        {
            "type": "Adult",
            "firstName": "Jane",
            "lastName": "Doe"
        },
        {
            "type": "Child",
            "firstName": "Tommy",
            "lastName": "Doe",
            "childSeatType": "BoosterSeat"
        }
    ],
    "externalId": "partner-booking-123"
}'

The above call returns a JSON structured like this:

{
    "bookingId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "bookingReference": "DTABC123",
    "departureTimeUtc": "2022-12-05T18:00:00Z",
    "originTimezone": "Europe/Prague",
    "hourlyRide": {
        "hoursRented": 6,
        "includedKilometers": 120,
        "pickUp": {
            "lat": 50.0755,
            "lon": 14.4378,
            "address": "Václavské náměstí, Prague, Czech Republic",
            "time": "2022-12-05T18:00:00Z",
            "timezone": "Europe/Prague",
            "meetAndGreet": false,
            "pickupInstructions": "Your driver will be waiting for you at the entrance of the address provided, please be ready 10 minutes prior to the pick up time",
            "immutable": true,
            "state": "adjusted"
        },
        "pricing": {
            "totalPrice": 26000,
            "currency": "EUR"
        },
        "vehicles": [
            {
                "type": "Sedan",
                "maxPassengers": 3,
                "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
                "modelDescription": "VW Passat or similar",
                "image": "https://daytrip.imgix.net/site/sedan.png"
            }
        ]
    }
}

Endpoint Details

POST /partners/v1/hourly-rides/book

Request body

Property Type Description
optionId string Required. The ID of the hourly ride option to book from the search response.
passengerDetails list of PassengerDetail Required. List of passenger details. Must include exactly one Lead passenger. Can include Adult and Child.
customerNote string Optional. General notes for the driver.
externalId string Optional. Your internal booking reference ID for tracking purposes.

Note: Pickup location and departure time are determined by the option from the search. The pickup address is automatically resolved from coordinates during booking.

Response body

Property Type Description
bookingId string Unique booking identifier.
bookingReference string Human-readable booking reference (e.g., "DTABC123").
departureTimeUtc string Departure time in UTC (ISO 8601 format).
originTimezone string IANA timezone of the pickup location (e.g., "Europe/Prague").
hourlyRide BookedHourlyRide Details of the booked hourly ride.

Error status codes

Status code Description
400 Invalid request - missing required fields or invalid data format.
401 API key missing or invalid.
404 Option not found or expired.
409 Option no longer available or already booked.

Hourly Ride Details

This endpoint retrieves full details of an existing hourly ride booking, including booking status, passenger information, and pricing details.

To get booking details, use this call:

curl "https://papi.staging.mydaytrip.net/partners/v1/hourly-rides/details/a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
  -H "x-api-key: your_api_key"

The above call returns a JSON structured like this:

{
    "bookingId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "bookingReference": "DTABC123",
    "externalId": "partner-booking-123",
    "status": "Confirmed",
    "createdAt": "2025-01-01T10:00:00Z",
    "departureTimeUtc": "2025-01-15T18:00:00Z",
    "originTimezone": "Europe/Prague",
    "customerNote": "Please call upon arrival",
    "passengerDetails": [
        {
            "type": "Lead",
            "firstName": "John",
            "lastName": "Doe",
            "email": "john.doe@example.com",
            "phone": "+420123456789",
            "over18": true
        },
        {
            "type": "Adult",
            "firstName": "Jane",
            "lastName": "Doe"
        },
        {
            "type": "Child",
            "firstName": "Tommy",
            "lastName": "Doe",
            "childSeatType": "BoosterSeat"
        }
    ],
    "hourlyRide": {
        "hoursRented": 6,
        "includedKilometers": 120,
        "pickUp": {
            "lat": 50.0755,
            "lon": 14.4378,
            "address": "Wenceslas Square, Prague, Czech Republic",
            "time": "2025-01-15T18:00:00Z",
            "timezone": "Europe/Prague",
            "meetAndGreet": false,
            "pickupInstructions": "Your driver will be waiting for you at the entrance of the address provided, please be ready 10 minutes prior to the pick up time",
            "immutable": true,
            "state": "adjusted"
        },
        "pricing": {
            "totalPrice": 26000,
            "currency": "EUR"
        },
        "vehicles": [
            {
                "type": "Sedan",
                "maxPassengers": 3,
                "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
                "modelDescription": "VW Passat or similar",
                "image": "https://daytrip.imgix.net/site/sedan.png"
            }
        ]
    }
}

Endpoint Details

GET /partners/v1/hourly-rides/details/:bookingId

Path Parameters

Parameter Type Description
bookingId string Required. Booking UUID.

Response body

Property Type Description
bookingId string Unique booking identifier.
bookingReference string Human-readable booking reference (e.g., "DTABC123").
externalId string Optional. Your internal booking reference ID (if provided during book).
status string Booking status: "Confirmed" or "Cancelled".
createdAt string When the booking was created (ISO 8601 format).
cancelledAt string Optional. When the booking was cancelled (ISO 8601 format).
departureTimeUtc string Departure time in UTC (ISO 8601 format).
originTimezone string IANA timezone of the pickup location (e.g., "Europe/Prague").
customerNote string Optional. General notes for the driver (if provided during book).
passengerDetails list of PassengerDetail List of passenger details from the booking.
hourlyRide BookedHourlyRide Details of the booked hourly ride.

Error status codes

Status code Description
401 API key missing or invalid.
404 Booking not found.

Hourly Ride Cancel

This endpoint cancels an existing hourly ride booking. The refund amount depends on the cancellation policy and how far in advance the cancellation is made.

To cancel a hourly ride booking, use this call:

curl -d '{ "bookingId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }' \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -X POST "https://papi.staging.mydaytrip.net/partners/v1/hourly-rides/cancel"

Example response with the penalty amount for the cancellation:

{
    "penalty": 0,
    "currency": "EUR"
}

Endpoint Details

POST /partners/v1/hourly-rides/cancel

Request body

Property Type Description
bookingId string Id of the booking to cancel. Taken from /book endpoint response.

Response body

Property Type Description
penalty number Amount of money that will be deducted from the refund. If the penalty is 0, the cancellation is free of charge.
currency string Currency of the penalty amount.

Error status codes

Status code Description
400 Invalid request - bookingId missing or not a valid json.
401 API key missing or invalid.
403 Forbidden request - trying to cancel a booking owned by someone else or the departure is too soon.
404 Booking not found.
409 Booking has already been cancelled.

Hourly Ride API Data Types

HourlyRideOption

Represents an available hourly ride option returned from search.

Property Type Description
id string Unique option identifier.
type string Always "Private" for hourly rides.
englishSpeakingDriver boolean Whether the driver speaks English.
hoursRented integer Duration in hours.
includedKilometers integer Total kilometers included.
pricing Pricing Price information.
pickUp TripLocation Details about the pickup point.
vehicles list of Vehicle Vehicles information.
luggage Luggage Luggage capacity information.
availableChildSeatTypes list of ChildSeat Available child seat types for this option.
cancellationPolicy string Cancellation policy: "Flexible", "SuperFlexible", or "NonRefundable".
expiresAt string When this option expires (ISO 8601 format).

BookedHourlyRideResponse

Detailed information about a booked hourly ride (used in book and details responses).

Property Type Description
hoursRented integer Duration in hours.
includedKilometers integer Total kilometers included.
pickUp TripLocation Pickup location information.
pricing Pricing Price information.
vehicles list of Vehicle Vehicles information.

TripLocation

Information about a pickup/dropoff location.

Property Type Description
lat number Latitude in decimal degrees.
lon number Longitude in decimal degrees.
address string Formatted address string resolved from Google Location API.
time string Pickup time (ISO 8601 format).
timezone string IANA timezone (e.g., "Europe/Prague").
meetAndGreet boolean Whether meet and greet service is included.
pickupInstructions string Instructions for the passenger to find the driver at the pickup location.
state string Location state: "original" or "adjusted".
immutable boolean Whether the location can be changed.
adjustmentReason string Optional. Reason for location adjustment (e.g., "restricted_area").
description string Optional. Description of the meeting point (included in search response).
image string Optional. URL to an image of the meeting point (included in search response).

Pricing

Price information.

Property Type Description
totalPrice integer Total price in the currency's minor unit (cents for EUR/USD).
currency string Currency used for all prices in this response.

Vehicle

Vehicle information.

Property Type Description
type string Vehicle type: "Sedan", "MPV", "Van", "PremiumVan", or "LuxurySedan".
maxPassengers integer Maximum number of passengers.
description string Full vehicle description.
modelDescription string Example model (e.g., "VW Passat or similar").
image string URL to vehicle image.

Luggage

Luggage capacity information.

Property Type Description
maxTotalCarryons integer Maximum number of carry-on bags.
maxTotalSuitcases integer Maximum number of suitcases.

ChildSeat

Information about available child seat types.

Property Type Description
childSeatType string Type: "RearFacing", "ForwardFacing", "BoosterSeat", or "Booster".
description string Human-readable description.
ageFrom integer Minimum age in years.
ageTo integer Maximum age in years.
weightInPoundsFrom integer Minimum weight in pounds.
weightInPoundsTo integer Maximum weight in pounds.
weightInKilosFrom integer Minimum weight in kilograms.
weightInKilosTo integer Maximum weight in kilograms.

PassengerDetail

Passenger information for booking and details responses.

Property Type Description
type string Required. Passenger type: "Lead", "Adult", or "Child".
firstName string Required for Lead passenger. Optional for Adult and Child.
lastName string Required for Lead passenger. Optional for Adult and Child.
email string Required for Lead passenger.
phone string Required for Lead passenger. Phone number with country code.
over18 boolean Required for Lead passenger. Must be true (lead passenger must be 18+).
childSeatType string Required for Child passenger. Type: "RearFacing", "ForwardFacing", "BoosterSeat", or "Booster".

RefundInfo

Refund information after cancellation.

Property Type Description
amount integer Refund amount in the currency's minor unit (cents for EUR/USD).
currency string Currency code (ISO 4217).

Cancellation Policy

All hourly rides follow the same cancellation policy:

Day Trips API

Day trips combine comfortable door‑to‑door transportation with guided sightseeing. Each product is a pre‑planned excursion with a fixed itinerary. Customers can discover available day trips by country or by geographic coordinates, inspect the full itinerary, and then book the trip for a specific departure time. Unlike the point‑to‑point trips from the Trip API, Day Trip products cannot be customized with additional stops or different routes – the itinerary and sightseeing stops are predefined.

The Day Trips API allows partners to search, browse, and book curated day trip packages.

Flows

The API is designed to support intuitive user flows, from discovery to booking management.

Browse and Book Flow

This flow is ideal when a user wants to explore available day trips starting from a specific country or city.

  1. Call /partners/v1/daytrips/country/{countryIsoCode} to discover all available departure locations within a country.
  2. Present the locations to the user. Once a location is chosen, call /partners/v1/daytrips/location/{locationId} to fetch all available day trip packages from that city.
  3. After the user selects a day trip, call /partners/v1/daytrips/book with the dayTripId and passenger details to create a booking.
  4. optional - Use /partners/v1/daytrips/details/{bookingId} to retrieve the complete booking information at any time.
  5. optional - If changes are needed, use /partners/v1/daytrips/update to modify booking details like passenger count or pickup time.
  6. optional - If the trip needs to be cancelled, call /partners/v1/daytrips/cancel.

Search and Book Flow

This flow is best for users who want to find day trips starting near their current position.

  1. Call /partners/v1/daytrips/search using the user's latitude and longitude. The API automatically finds the nearest departure location and returns all associated day trips.
  2. After the user selects a day trip, call /partners/v1/daytrips/book with the dayTripId and passenger details.
  3. optional - Manage the booking using the /details, /update, and /cancel endpoints as described above.

Browse Locations

This endpoint returns a list of all available day trip departure locations within a specified country.

To get all day trip locations in the Czech Republic, use this call:

curl "https://papi.staging.mydaytrip.net/partners/v1/daytrips/country/cz" \
  -H "x-api-key: your_api_key"

The above call returns a JSON object structured like this:

{
    "countryCode": "cz",
    "locations": [
        {
            "locationId": "4cf0e7a4-8443-40c9-bbf3-bfe253a3c631",
            "name": "Prague",
            "description": "According to legend, Prague was founded in the 8th century when the duchess Libuše stood atop a rocky cliff overlooking the Vltava and prophesied: \"I see a great city whose glory will touch the stars!\". In the 14th century, Charles IV Holy Roman Emperor and King of Bohemia personally elevated Prague into an imperial capital. Charles himself designed the layout of Nové Město, laid the first stone of the Charles Bridge, and founded Charles University. Over the following centuries, Prague experienced its fair share of ups and downs, not to mention a few defenestrations, but was spared the devastation that befell many European cities. Every visitor’s first stop should be the Old Town Square, for the beautiful Baroque buildings lining it, and the famed astronomical clock on the Old Town Hall. From here, you can easily reach the world famous Charles Bridge, and make your way up to expansive castle complex.",
            "images": [
                "https://daytrip2.imgix.net/76.jpg",
                "https://daytrip2.imgix.net/prague11.jpg",
                "https://daytrip.imgix.net/prague-full-view.jpg",
                "https://daytrip.imgix.net/prague12.jpg",
                "https://daytrip.imgix.net/prague13.jpg",
                "https://daytrip.imgix.net/prague14.jpg"
            ],
            "coordinates": {
                "lat": 50.0755381,
                "lon": 14.4378005
            }
        },
        {
            "locationId": "7df59e2b-7919-4c7a-b8a0-ef05cf0c9882",
            "name": "Brno",
            "description": "At the first sign of summer, the city transforms itself into a scene of lively street cafes, outdoor restaurants and street performers that make any visit that bit more memorable. The compact nature of the city means that restaurants, malls, museums, and galleries are all close at hand and the center can easily be viewed on foot or by taking a ride on one of the many trams that run both through and around the city center. Experience the delightful mix of cultures that make up Brno, a city that went unknown to most travelers for so long but emerged from the shadow of Prague in the 1990s. Take a tip from the locals and ‘look up’ when taking a stroll through the center in order to truly appreciate the beauty of the architecture where functionalist and gothic often combine to create the perfect blend of old and new.",
            "images": [
                "https://daytrip2.imgix.net/brno2.jpg",
                "https://daytrip.imgix.net/brno300.jpg",
                "https://daytrip.imgix.net/brno200.jpg",
                "https://daytrip.imgix.net/brno100.jpg"
            ],
            "coordinates": {
                "lat": 49.1950602,
                "lon": 16.6068371
            }
        },
        {
            "locationId": "b0559b77-1e5e-41e9-be6c-72bd2671e897",
            "name": "Olomouc",
            "description": "The centre of Olomouc is the largest historic preservation zone outside of Prague and therefore boasts numerous historic and religious buildings. However the one held in the highest regard is the Holy Trinity Column, a UNESCO World Heritage site and biggest Baroque sculpture in the Czech Republic. Built in 1754 by local citizens and craftsmen, the column is seen as both a celebration of the Catholic Church and of Olomouc itself. The monument stands 115ft high and is topped by a gilded statue of the Holy Trinity. The most prominent church in Olomouc is Saint Wenceslas Cathedral, founded in 1107 and in the compound of the Olomouc Castle. The Cathedral has undergone many renovations throughout its history, resulting in many different architectural styles on display, from a Romanesque crypt to a Gothic cloister to Baroque chapels. Olomouc is also home to the Moravian Theatre, the Moravian Philharmonic and the second oldest university in the Czech Republic.",
            "images": [
                "https://daytrip2.imgix.net/olomouc1.jpg",
                "https://daytrip2.imgix.net/olomouc2.jpg",
                "https://daytrip2.imgix.net/olomouc3.jpg"
            ],
            "coordinates": {
                "lat": 49.593778,
                "lon": 17.2508787
            }
        }
    ]
}

Endpoint Details

GET /partners/v1/daytrips/country/{countryIsoCode}

Request Parameters

Name Type Description
countryIsoCode string Required. ISO 3166-1 alpha-2 country code (e.g., cz).

Response Body

Property Type Description
countryCode string The ISO 3166-1 alpha-2 country code of the requested country.
locations array A list of available day trip departure locations within the specified country. See Location for details.

Error Status Codes

Status Code Description
400 Invalid or missing country code.

Day Trips By Location

This endpoint returns a list of available day trip packages departing from a specified location ID.

To get all day trips originating from Prague, use this call:

curl "https://papi.staging.mydaytrip.net/partners/v1/daytrips/location/4cf0e7a4-8443-40c9-bbf3-bfe253a3c631" \
  -H "x-api-key: your_api_key"

The above call returns a JSON object structured like this:

{
    "location": {
        "locationId": "4cf0e7a4-8443-40c9-bbf3-bfe253a3c631",
        "coordinates": {
            "lat": 50.0755381,
            "lon": 14.4378005
        },
        "name": "Prague",
        "description": "According to legend, Prague was founded in the 8th century when the duchess Libuše stood atop a rocky cliff overlooking the Vltava and prophesied: \"I see a great city whose glory will touch the stars!\". In the 14th century, Charles IV Holy Roman Emperor and King of Bohemia personally elevated Prague into an imperial capital. Charles himself designed the layout of Nové Město, laid the first stone of the Charles Bridge, and founded Charles University. Over the following centuries, Prague experienced its fair share of ups and downs, not to mention a few defenestrations, but was spared the devastation that befell many European cities. Every visitor’s first stop should be the Old Town Square, for the beautiful Baroque buildings lining it, and the famed astronomical clock on the Old Town Hall. From here, you can easily reach the world famous Charles Bridge, and make your way up to expansive castle complex.",
        "images": [
            "https://daytrip2.imgix.net/76.jpg",
            "https://daytrip2.imgix.net/prague11.jpg",
            "https://daytrip.imgix.net/prague-full-view.jpg",
            "https://daytrip.imgix.net/prague12.jpg",
            "https://daytrip.imgix.net/prague13.jpg",
            "https://daytrip.imgix.net/prague14.jpg"
        ]
    },
    "dayTrips": [
        {
            "dayTripId": "0e0e3600-5503-4bf8-9b4c-e044c2334e33",
            "name": "Prague to Karlovy Vary: Private day trip",
            "description": "Forested hills unfold on the journey into the Karlovy Vary’s spa elegance. Glide past Krivoklatsko’s wooded slopes and pause for panoramic views at Hartenstejn Castle, then descend into a world of colonnades, steaming springs, and Belle Epoque architecture. A return to Prague awaits after your indulgent day.",
            "sightseeingDescription": "When you arrive in Karlovy Vary, you'll have the freedom to relax in this elegant spa town and drink from its healing springs. Meanwhile, your driver will be waiting for you nearby, ensuring a stress-free return trip to Prague.",
            "images": [
                "https://daytrip.imgix.net/Karlovy-Vary3.jpg",
                "https://daytrip.imgix.net/Karlovy-Vary4.jpg",
                "https://daytrip.imgix.net/Karlovy-Vary6.jpg",
                "https://daytrip.imgix.net/Karlovy-Vary5.jpg"
            ],
            "totalTripTimeMinutes": 412,
            "price": {
                "currency": 0,
                "perPassengerPrice": 79,
                "minPassengerCount": 3
            },
            "itineraryItems": [
                {
                    "order": 1,
                    "type": "edgeLocation",
                    "location": {
                        "locationId": "4cf0e7a4-8443-40c9-bbf3-bfe253a3c631",
                        "coordinates": {
                            "lat": 50.0755381,
                            "lon": 14.4378005
                        },
                        "name": "Prague",
                        "description": "According to legend, Prague was founded in the 8th century when the duchess Libuše stood atop a rocky cliff overlooking the Vltava and prophesied: \"I see a great city whose glory will touch the stars!\". In the 14th century, Charles IV Holy Roman Emperor and King of Bohemia personally elevated Prague into an imperial capital. Charles himself designed the layout of Nové Město, laid the first stone of the Charles Bridge, and founded Charles University. Over the following centuries, Prague experienced its fair share of ups and downs, not to mention a few defenestrations, but was spared the devastation that befell many European cities. Every visitor’s first stop should be the Old Town Square, for the beautiful Baroque buildings lining it, and the famed astronomical clock on the Old Town Hall. From here, you can easily reach the world famous Charles Bridge, and make your way up to expansive castle complex.",
                        "images": [
                            "https://daytrip2.imgix.net/76.jpg",
                            "https://daytrip2.imgix.net/prague11.jpg",
                            "https://daytrip.imgix.net/prague-full-view.jpg",
                            "https://daytrip.imgix.net/prague12.jpg",
                            "https://daytrip.imgix.net/prague13.jpg",
                            "https://daytrip.imgix.net/prague14.jpg"
                        ]
                    }
                },
                {
                    "order": 2,
                    "type": "location",
                    "location": {
                        "locationId": "82565d30-7a14-4530-96f4-24861b018042",
                        "coordinates": {
                            "lat": 50.2318521,
                            "lon": 12.8719616
                        },
                        "name": "Karlovy Vary",
                        "description": "One of the best-known spa towns in the world where some of the most famous figures in European artistic and cultural life, such as Beethoven, Mozart and Casanova have all enjoyed treatment. Today, due to its distinctive architecture, hot springs and popularity with Hollywood celebrities, it is ranked among Europe’s elite spa towns. Absorb the atmosphere and the distinct fragrance of a spa town with a walk through the historical center where you can sample water from the healing springs that stand in the shadows of the exquisite colonnades. No visitor should miss the prestigious Grand Hotel Pupp with its world famous façade and regarded as one of the world’s best hotels. If you think you’ve seen it somewhere before then you most likely have — it features in the James Bond film, Casino Royale, among others, and hosts cultural festivals and award shows broadcast across the world.",
                        "images": [
                            "https://daytrip.imgix.net/Karlovy-Vary3.jpg",
                            "https://daytrip.imgix.net/Karlovy-Vary4.jpg",
                            "https://daytrip.imgix.net/Karlovy-Vary6.jpg",
                            "https://daytrip.imgix.net/Karlovy-Vary5.jpg"
                        ]
                    }
                },
                {
                    "order": 3,
                    "type": "edgeLocation",
                    "location": {
                        "locationId": "4cf0e7a4-8443-40c9-bbf3-bfe253a3c631",
                        "coordinates": {
                            "lat": 50.0755381,
                            "lon": 14.4378005
                        },
                        "name": "Prague",
                        "description": "According to legend, Prague was founded in the 8th century when the duchess Libuše stood atop a rocky cliff overlooking the Vltava and prophesied: \"I see a great city whose glory will touch the stars!\". In the 14th century, Charles IV Holy Roman Emperor and King of Bohemia personally elevated Prague into an imperial capital. Charles himself designed the layout of Nové Město, laid the first stone of the Charles Bridge, and founded Charles University. Over the following centuries, Prague experienced its fair share of ups and downs, not to mention a few defenestrations, but was spared the devastation that befell many European cities. Every visitor’s first stop should be the Old Town Square, for the beautiful Baroque buildings lining it, and the famed astronomical clock on the Old Town Hall. From here, you can easily reach the world famous Charles Bridge, and make your way up to expansive castle complex.",
                        "images": [
                            "https://daytrip2.imgix.net/76.jpg",
                            "https://daytrip2.imgix.net/prague11.jpg",
                            "https://daytrip.imgix.net/prague-full-view.jpg",
                            "https://daytrip.imgix.net/prague12.jpg",
                            "https://daytrip.imgix.net/prague13.jpg",
                            "https://daytrip.imgix.net/prague14.jpg"
                        ]
                    }
                }
            ]
        }
    ]
}

Endpoint Details

GET /partners/v1/daytrips/location/{locationId}

Request Parameters

Parameter Type Description
locationId UUID Required. The ID of the origin city.

Response Body

Property Type Description
location object The details of the departure location. See Location for details.
dayTrips array A list of available day trip packages from the specified location. See DayTrip for details.

Error Status Codes

Status Code Description
400 Malformed or missing locationId.
404 No location found with the given ID.

Search Day Trips

This endpoint finds the nearest departure location to a user's coordinates and returns all available day trips from that location.

To search for day trips near a specific point in Prague:

curl "https://papi.staging.mydaytrip.net/partners/v1/daytrips/search?lat=50.0755&lon=14.4378" \
  -H "x-api-key: your_api_key"

The above call returns a JSON object structured like this:

{
    "location": {
        "locationId": "4cf0e7a4-8443-40c9-bbf3-bfe253a3c631",
        "coordinates": {
            "lat": 50.0755381,
            "lon": 14.4378005
        },
        "name": "Prague",
        "description": "According to legend, Prague was founded in the 8th century when the duchess Libuše stood atop a rocky cliff overlooking the Vltava and prophesied: \"I see a great city whose glory will touch the stars!\". In the 14th century, Charles IV Holy Roman Emperor and King of Bohemia personally elevated Prague into an imperial capital. Charles himself designed the layout of Nové Město, laid the first stone of the Charles Bridge, and founded Charles University. Over the following centuries, Prague experienced its fair share of ups and downs, not to mention a few defenestrations, but was spared the devastation that befell many European cities. Every visitor’s first stop should be the Old Town Square, for the beautiful Baroque buildings lining it, and the famed astronomical clock on the Old Town Hall. From here, you can easily reach the world famous Charles Bridge, and make your way up to expansive castle complex.",
        "images": [
            "https://daytrip2.imgix.net/76.jpg",
            "https://daytrip2.imgix.net/prague11.jpg",
            "https://daytrip2.imgix.net/prague-full-view.jpg",
            "https://daytrip2.imgix.net/prague12.jpg",
            "https://daytrip2.imgix.net/prague13.jpg",
            "https://daytrip2.imgix.net/prague14.jpg"
        ]
    },
    "dayTrips": [
        {
            "dayTripId": "0e0e3600-5503-4bf8-9b4c-e044c2334e33",
            "name": "Prague to Karlovy Vary: Private day trip",
            "description": "Forested hills unfold on the journey into the Karlovy Vary’s spa elegance. Glide past Krivoklatsko’s wooded slopes and pause for panoramic views at Hartenstejn Castle, then descend into a world of colonnades, steaming springs, and Belle Epoque architecture. A return to Prague awaits after your indulgent day.",
            "sightseeingDescription": "When you arrive in Karlovy Vary, you'll have the freedom to relax in this elegant spa town and drink from its healing springs. Meanwhile, your driver will be waiting for you nearby, ensuring a stress-free return trip to Prague.",
            "images": [
                "https://daytrip.imgix.net/Karlovy-Vary3.jpg",
                "https://daytrip.imgix.net/Karlovy-Vary4.jpg",
                "https://daytrip.imgix.net/Karlovy-Vary6.jpg",
                "https://daytrip.imgix.net/Karlovy-Vary5.jpg"
            ],
            "totalTripTimeMinutes": 412,
            "price": {
                "currency": 0,
                "perPassengerPrice": 79,
                "minPassengerCount": 3
            },
            "itineraryItems": [
                {
                    "order": 1,
                    "type": "edgeLocation",
                    "location": {
                        "locationId": "4cf0e7a4-8443-40c9-bbf3-bfe253a3c631",
                        "coordinates": {
                            "lat": 50.0755381,
                            "lon": 14.4378005
                        },
                        "name": "Prague",
                        "description": "According to legend, Prague was founded in the 8th century when the duchess Libuše stood atop a rocky cliff overlooking the Vltava and prophesied: \"I see a great city whose glory will touch the stars!\". In the 14th century, Charles IV Holy Roman Emperor and King of Bohemia personally elevated Prague into an imperial capital. Charles himself designed the layout of Nové Město, laid the first stone of the Charles Bridge, and founded Charles University. Over the following centuries, Prague experienced its fair share of ups and downs, not to mention a few defenestrations, but was spared the devastation that befell many European cities. Every visitor’s first stop should be the Old Town Square, for the beautiful Baroque buildings lining it, and the famed astronomical clock on the Old Town Hall. From here, you can easily reach the world famous Charles Bridge, and make your way up to expansive castle complex.",
                        "images": [
                            "https://daytrip2.imgix.net/76.jpg",
                            "https://daytrip2.imgix.net/prague11.jpg",
                            "https://daytrip2.imgix.net/prague-full-view.jpg",
                            "https://daytrip2.imgix.net/prague12.jpg",
                            "https://daytrip2.imgix.net/prague13.jpg",
                            "https://daytrip2.imgix.net/prague14.jpg"
                        ]
                    }
                },
                {
                    "order": 2,
                    "type": "location",
                    "location": {
                        "locationId": "82565d30-7a14-4530-96f4-24861b018042",
                        "coordinates": {
                            "lat": 50.2318521,
                            "lon": 12.8719616
                        },
                        "name": "Karlovy Vary",
                        "description": "One of the best-known spa towns in the world where some of the most famous figures in European artistic and cultural life, such as Beethoven, Mozart and Casanova have all enjoyed treatment. Today, due to its distinctive architecture, hot springs and popularity with Hollywood celebrities, it is ranked among Europe’s elite spa towns. Absorb the atmosphere and the distinct fragrance of a spa town with a walk through the historical center where you can sample water from the healing springs that stand in the shadows of the exquisite colonnades. No visitor should miss the prestigious Grand Hotel Pupp with its world famous façade and regarded as one of the world’s best hotels. If you think you’ve seen it somewhere before then you most likely have — it features in the James Bond film, Casino Royale, among others, and hosts cultural festivals and award shows broadcast across the world.",
                        "images": [
                            "https://daytrip.imgix.net/Karlovy-Vary3.jpg",
                            "https://daytrip.imgix.net/Karlovy-Vary4.jpg",
                            "https://daytrip.imgix.net/Karlovy-Vary6.jpg",
                            "https://daytrip.imgix.net/Karlovy-Vary5.jpg"
                        ]
                    }
                },
                {
                    "order": 3,
                    "type": "edgeLocation",
                    "location": {
                        "locationId": "4cf0e7a4-8443-40c9-bbf3-bfe253a3c631",
                        "coordinates": {
                            "lat": 50.0755381,
                            "lon": 14.4378005
                        },
                        "name": "Prague",
                        "description": "According to legend, Prague was founded in the 8th century when the duchess Libuše stood atop a rocky cliff overlooking the Vltava and prophesied: \"I see a great city whose glory will touch the stars!\". In the 14th century, Charles IV Holy Roman Emperor and King of Bohemia personally elevated Prague into an imperial capital. Charles himself designed the layout of Nové Město, laid the first stone of the Charles Bridge, and founded Charles University. Over the following centuries, Prague experienced its fair share of ups and downs, not to mention a few defenestrations, but was spared the devastation that befell many European cities. Every visitor’s first stop should be the Old Town Square, for the beautiful Baroque buildings lining it, and the famed astronomical clock on the Old Town Hall. From here, you can easily reach the world famous Charles Bridge, and make your way up to expansive castle complex.",
                        "images": [
                            "https://daytrip2.imgix.net/76.jpg",
                            "https://daytrip2.imgix.net/prague11.jpg",
                            "https://daytrip2.imgix.net/prague-full-view.jpg",
                            "https://daytrip2.imgix.net/prague12.jpg",
                            "https://daytrip2.imgix.net/prague13.jpg",
                            "https://daytrip2.imgix.net/prague14.jpg"
                        ]
                    }
                }
            ]
        }
    ]
}

Endpoint Details

GET /partners/v1/daytrips/search

Query Parameters

Name Type Description
lat float Required. Latitude of the user.
lon float Required. Longitude of the user.

Response Body

Property Type Description
location object The details of the nearest departure location found. See Location for details.
dayTrips array A list of available day trip packages from the found location. See DayTrip for details.

Error Status Codes

Status Code Description
400 Invalid or missing coordinates.
404 No eligible departure location found near the coordinates.

Book Day Trip

This endpoint creates a new booking for a selected day trip product. The minimum time to departure is 36 hours.

To book a day trip for 3 adults and 1 child:

curl -X POST "https://papi.staging.mydaytrip.net/partners/v1/daytrips/book" \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -d '{
    "dayTripId": "ffa696fe-4f83-4554-80e7-f217c7a55502",
    "departureTimeLocal": 1747727049,
    "passengers": {
      "adults": 3,
      "children": [{"age": 5, "childSeatType": "Booster"}]
    },
    "leadPassenger": {
      "firstName": "John",
      "lastName": "Doe",
      "phone": "+41555555555",
      "email": "client-email@example.com",
      "over18": true
    },
    "pickupLocation": {
      "lat": 50.1,
      "lon": 14.25,
      "address": "Havel airport, Terminal 2",
      "note": "Taxi Parking 2"
    }
  }'

The above call returns a booking confirmation:

{
    "bookingId": "123e4567-e89b-12d3-a456-426614174000",
    "bookingReference": "CB1027",
    "departureTimeLocal": 1747727049,
    "originTimezone": "Europe/Prague",
    "pickupLocation": {
        "lat": 50.1,
        "lon": 14.25,
        "address": "Havel airport, Terminal 2",
        "note": "Taxi Parking 2"
    },
    "dayTrip": {
        "id": "ffa696fe-4f83-4554-80e7-f217c7a55502",
        "name": "Berlin to Dresden: Private day trip",
        "description": "Travel from Berlin to this captivating city on the Elbe...",
        "sightseeingDescription": "Explore the Old Town, Frauenkirche, and more...",
        "distanceKm": 334,
        "travelTimeMinutes": 268
    },
    "pricing": {
        "currency": "EUR",
        "perPassengerPrice": 83,
        "passengersCount": 4,
        "totalPrice": 332
    },
    "vehicles": [
        {
            "type": "Sedan",
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "modelDescription": "VW Passat or similar",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        }
    ]
}

Endpoint Details

POST /partners/v1/daytrips/book

Request Body Parameters

Property Type Description
dayTripId UUID Required. The ID of the day trip to book.
departureTimeLocal integer Required. UNIX timestamp of local departure.
passengers object Required. Passenger details. See PassengerDetails.
leadPassenger object Required. Contact info for the lead passenger. See LeadPassenger.
pickupLocation object Required. Details of the pickup location. See PickupLocation.

Response Body

Property Type Description
bookingId UUID The unique identifier for the newly created booking.
bookingReference string A human-readable reference for the booking.
departureTimeLocal integer The departure time as a UNIX timestamp in the local timezone of the origin.
originTimezone string The IANA timezone name of the origin.
pickupLocation object The details of the pickup location. See DayTripPickupLocation for details.
dayTrip object The details of the booked day trip. See DayTrip for details.
pricing object The pricing details for the booking. See DayTripPrice for details.
vehicles array An array of vehicles assigned to the booking. See DayTripVehicle for details.

Error Status Codes

Status Code Description
400 Missing or invalid data in the request body.
404 dayTripId not found or is not bookable.
500 Unexpected failure from a downstream system.

Cancel Booking

This endpoint cancels an existing day trip booking, if permitted by cancellation rules. If cancellation is in less than 24 hours before the departure time, the full amount is charged; otherwise, it's 0.

To cancel a booking with reference "CB1027":

curl -X POST "https://papi.staging.mydaytrip.net/partners/v1/daytrips/cancel" \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -d '{
    "bookingId": "CB1027"
  }'

The above call returns a confirmation of the cancellation:

{
    "bookingId": "CB1027",
    "cancelledAt": "2025-05-18T10:25:00Z",
    "penalty": 199,
    "currency":"EUR"
}

Endpoint Details

POST /partners/v1/daytrips/cancel

Request Body Parameters

Property Type Description
bookingId string Required. The booking ID to cancel.

Response Body

Property Type Description
bookingId string The ID of the booking that was cancelled.
cancelledAt string The timestamp of when the booking was cancelled.
penalty number The amount that should be payed in case of cancellation: the full price, if cancelled in less that 24 hours before departure; otherwise 0.
currency string The currency of the penalty amount.

Error Status Codes

Status Code Description
400 Invalid booking ID format.
403 Cancellation is not allowed (e.g., too close to departure).
404 Booking not found.
500 Unexpected internal failure.

Get Booking Details

This endpoint retrieves the full, current details of a specific booking.

To get details for a specific booking:

curl "https://papi.staging.mydaytrip.net/partners/v1/daytrips/details/123e4567-e89b-12d3-a456-426614174000" \
  -H "x-api-key: your_api_key"

The above call returns a booking confirmation:

{
    "bookingId": "123e4567-e89b-12d3-a456-426614174000",
    "bookingReference": "CB1027",
    "departureTimeLocal": 1747727049,
    "originTimezone": "Europe/Prague",
    "pickupLocation": {
        "lat": 50.1,
        "lon": 14.25,
        "address": "Havel airport, Terminal 2",
        "note": "Taxi Parking 2"
    },
    "dayTrip": {
        "id": "ffa696fe-4f83-4554-80e7-f217c7a55502",
        "name": "Berlin to Dresden: Private day trip",
        "description": "Travel from Berlin to this captivating city on the Elbe...",
        "sightseeingDescription": "Explore the Old Town, Frauenkirche, and more...",
        "distanceKm": 334,
        "travelTimeMinutes": 268
    },
    "pricing": {
        "currency": "EUR",
        "perPassengerPrice": 83,
        "passengersCount": 4,
        "totalPrice": 332
    },
    "vehicles": [
        {
            "type": "Sedan",
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "modelDescription": "VW Passat or similar",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        }
    ]
}

Endpoint Details

GET /partners/v1/daytrips/details/{bookingId}

URL Parameters

Parameter Type Description
bookingId string Required. The booking ID to retrieve.

Response Body

Property Type Description
bookingId UUID The unique identifier for the booking.
bookingReference string A human-readable reference for the booking.
departureTimeLocal integer The departure time as a UNIX timestamp in the local timezone of the origin.
originTimezone string The IANA timezone name of the origin.
pickupLocation object The details of the pickup location. See DayTripPickupLocation for details.
dayTrip object The details of the booked day trip. See DayTrip for details.
pricing object The pricing details for the booking. See DayTripPrice for details.
vehicles array An array of vehicles assigned to the booking. See DayTripVehicle for details.

Error Status Codes

Status Code Description
400 Malformed or missing bookingId.
404 Booking not found.

Update Booking

This endpoint modifies an existing booking, allowing changes to pickup time, location, and passenger count. The current cutoff for updates is 24 hours before the trip departure time.

To update the passenger count and pickup location for a booking:

curl -X POST "https://papi.staging.mydaytrip.net/partners/v1/daytrips/update" \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -d '{
    "bookingId": "123e4567-e89b-12d3-a456-426614174000",
    "passengers": {
      "adults": 2,
      "children": []
    },
    "pickupLocation": {
      "lat": 50.101,
      "lon": 14.252,
      "note": "New pickup point note"
    }
  }'

The above call returns a booking confirmation:

{
    "bookingId": "123e4567-e89b-12d3-a456-426614174000",
    "bookingReference": "CB1027",
    "departureTimeLocal": 1747727049,
    "originTimezone": "Europe/Prague",
    "pickupLocation": {
        "lat": 50.1,
        "lon": 14.25,
        "address": "Havel airport, Terminal 2",
        "note": "Taxi Parking 2"
    },
    "dayTrip": {
        "id": "ffa696fe-4f83-4554-80e7-f217c7a55502",
        "name": "Berlin to Dresden: Private day trip",
        "description": "Travel from Berlin to this captivating city on the Elbe...",
        "sightseeingDescription": "Explore the Old Town, Frauenkirche, and more...",
        "distanceKm": 334,
        "travelTimeMinutes": 268
    },
    "pricing": {
        "currency": "EUR",
        "perPassengerPrice": 83,
        "passengersCount": 4,
        "totalPrice": 332
    },
    "vehicles": [
        {
            "type": "Sedan",
            "description": "Sedan comparable to a Volkswagen Passat, up to 3 passengers with luggage.",
            "modelDescription": "VW Passat or similar",
            "image": "https://daytrip.imgix.net/site/sedan.png"
        }
    ]
}

Endpoint Details

POST /partners/v1/daytrips/update

Request Body Parameters

All fields are optional except for bookingId. Only include the fields you wish to update.

Property Type Description
bookingId UUID Required. The ID of the booking to update.
departureTimeLocal integer A new UNIX timestamp for local departure time.
passengers object A new passenger configuration. See PassengerDetails.
pickupLocation object A new pickup location object. See PickupLocation.

Response Body

Property Type Description
bookingId UUID The unique identifier for the updated booking.
bookingReference string A human-readable reference for the booking.
departureTimeLocal integer The updated departure time as a UNIX timestamp in the local timezone of the origin.
originTimezone string The IANA timezone name of the origin.
pickupLocation object The updated details of the pickup location. See PickupLocation for details.
dayTrip object The details of the booked day trip. See DayTrip for details.
pricing object The updated pricing details for the booking. See DayTripPrice for details.
vehicles array An array of vehicles assigned to the booking. See DayTripVehicle for details.

Error Status Codes

Status Code Description
400 Malformed or incomplete request.
404 Booking ID does not exist.
422 Update not allowed due to business rules (e.g., too close to departure).
500 Internal service or pricing failure.

Day Trips API Data Types

DayTripBooking

Property Type Description
bookingId UUID The unique identifier for the booking.
bookingReference string A human-readable reference for the booking.
departureTimeLocal integer The departure time as a UNIX timestamp in the local timezone of the origin.
originTimezone string The IANA timezone name of the origin.
pickupLocation object The details of the pickup location. See PickupLocation.
dayTrip object The details of the day trip. See Day trip.
pricing object The pricing details for the booking. See Price.
vehicles array An array of vehicles assigned to the booking. See DayTripVehicle.

DayTripLocation

Property Type Description
locationId UUID The unique identifier for the location.
name string The name of the location.
description string A description of the location.
images array An array of URLs for images of the location.
coordinates object The geographical coordinates of the location. See Coordinates.

Coordinates

Property Type Description
lat float The latitude of the location.
lon float The longitude of the location.

DayTrip

Property Type Description
dayTripId UUID The unique identifier for the day trip.
name string The name of the day trip.
description string A description of the day trip.
sightseeingDescription string A description of the sightseeing opportunities on the day trip.
images array An array of URLs for images of the day trip.
totalTripTimeMinutes integer The total duration of the day trip in minutes.
price object The pricing details for the day trip. See Price.
itineraryItems array An array of itinerary items for the day trip. See ItineraryItem.

ItineraryItem

Property Type Description
order integer The order of the itinerary item.
type string The type of the itinerary item. Can be edgeLocation or location.
location object The location of the itinerary item. See Location.

Price

Property Type Description
currency string The currency of the price.
perPassengerPrice float The price per passenger.
minPassengerCount integer The minimum number of passengers required for the day trip.
passengersCount integer The number of passengers for the booking.
totalPrice float The total price for the booking.

PassengerDetails

Property Type Description
adults integer The number of adult passengers.
children array An array of child passengers.
children.age integer The age of the child passenger.
children.childSeatType string The type of child seat required for the child passenger.

LeadPassenger

Property Type Description
firstName string The first name of the lead passenger.
lastName string The last name of the lead passenger.
phone string The phone number of the lead passenger.
email string The email address of the lead passenger.
over18 boolean Whether the lead passenger is over 18 years of age.

PickupLocation

Property Type Description
lat float The latitude of the pickup location.
lon float The longitude of the pickup location.
address string The address of the pickup location.
note string A note for the driver about the pickup location.

DayTripVehicle

Property Type Description
type string The type of vehicle.
description string A description of the vehicle.
modelDescription string A description of the vehicle model.
image string A URL for an image of the vehicle.

Frequently asked questions

For how many passengers can I book a trip?

On most routes we offer trips for 1-7 passengers. On some routes we offer trips for up to 10 passengers. If you need to book a trip for more passengers please create multiple bookings.

After receiving trip options, how much time do I have to book one of them?

Options are valid for up to 7 days or until the price changes due to increased demand. In such case you will need to repeat the search.

Can I cancel a booking created via the API?

Yes, you can cancel a booking if it's departure is more than 24 hours in the future - this threshold is a subject to change.

Once a booking is created, can it be cancelled or changed by Daytrip?

No, once a booking is created by calling our API, it is confirmed and guaranteed by Daytrip to be fulfilled. You do not need to subscribe to any booking status changes.

Does the Daytrip API handle payments?

No, the Daytrip API does not handle payments. You are responsible for collecting online payments from the customers. You are also responsible for any currency conversion for display purposes (currently the API will return prices in EUR or USD based on the country of the trip). Your company will be invoiced by Daytrip for the trips you book with us.

Is the amount of requests for the Daytrip API limited?

You can send up to 2000 requests per minute.

Change Log