Quickstart
Go from zero to your first booked trip in a few minutes.
1. Create an API key
Sign in to your dashboard and open Settings → Integration. Give the key a label (for example, Dispatch server) and create it. Copy the token — you'll send it with every request.
2. Make an authenticated request
Every request sends the key in the Authorization header. Ping the API to
confirm the key works and see the business it resolves to:
Request
curl https://app.destination.dev/api/v1/ping \
-H "Authorization: Bearer YOUR_API_KEY"
3. Check your fleet and drivers
Before you book a trip, list the cars and drivers you can assign to it:
Request
curl https://app.destination.dev/api/v1/cars \
-H "Authorization: Bearer YOUR_API_KEY"
curl https://app.destination.dev/api/v1/drivers \
-H "Authorization: Bearer YOUR_API_KEY"
4. Create a trip
Book a job with a pickup, drop-off, date/time and passenger count. You can assign a car and driver up front, or leave them unset and dispatch later. The response contains the created trip, including its reference and status.
curl -X POST https://app.destination.dev/api/v1/trips \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer_name": "Ada Lovelace",
"customer_email": "[email protected]",
"customer_phone": "+353871234567",
"pickup_at": "2026-08-02 09:15:00",
"pickup_address": "Dublin Airport T2, Dublin",
"dropoff_address": "The Shelbourne, Dublin 2",
"passengers": 2,
"car_id": 12,
"driver_id": 7
}'
const res = await fetch(
"https://app.destination.dev/api/v1/trips",
{
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
customer_name: "Ada Lovelace",
customer_email: "[email protected]",
customer_phone: "+353871234567",
pickup_at: "2026-08-02 09:15:00",
pickup_address: "Dublin Airport T2, Dublin",
dropoff_address: "The Shelbourne, Dublin 2",
passengers: 2,
car_id: 12,
driver_id: 7,
}),
},
);
const trip = await res.json();
5. Dispatch and complete the trip
Assign or reassign a driver, then move the trip through its lifecycle:
Request
# Confirm and assign a driver
curl -X PATCH https://app.destination.dev/api/v1/trips/4821 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "confirmed", "driver_id": 7 }'
# Mark completed once the passenger is dropped off
curl -X PATCH https://app.destination.dev/api/v1/trips/4821 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "completed" }'
Conventions worth knowing
- Authentication — API keys and user tokens, one key per integration.
- Errors — a single error envelope and a small set of error types.
- Pagination —
pageandper_pageon list endpoints. - Rate limits — default 120 requests/minute.
When you're ready, browse the full API reference.