Version 1 · Sandbox · September 2026
https://api.wellgotaxi.com/functions/viatoviaWebhookVia-Fleet-Api-Version: 1X-Api-Key: <your-key>/v1/search, /v1/bookings etc. — these paths are handled by a proxy layer in front of the endpoint, so calls resolve correctly.| Method | Endpoint | Purpose |
|---|---|---|
POST | /v1/search | Search vehicle availability and pricing |
POST | /v1/bookings | Create a booking |
GET | /v1/bookings/{bookingReference} | Retrieve booking details |
PATCH | /v1/bookings/{bookingReference} | Amend a booking (accept / decline) |
POST | /v1/bookings/{bookingReference}/cancel | Cancel a booking |
GET | /v1/reference/segments | List all segments |
GET | /v1/reference/vehicle-types | List all vehicle types |
GET | /v1/reference/service-attributes | List all service attributes |
GET | /v1/reference/cancellation-reasons | List all cancellation reasons |
Locations are sent as AIRPORT (IATA and/or lat-lng) or POINT (lat-lng and/or address). One offer per vehicle class, with a single price. An empty results array means no availability.
{
"pickup": {
"type": "AIRPORT",
"iata": "DXB"
},
"dropoff": {
"type": "POINT",
"lat": 24.4936,
"lng": 54.378,
"address": "Abu Dhabi Mall"
},
"pickup_datetime": "2026-10-01T14:00:00Z",
"passengers": {
"adult": 2,
"children": 0,
"infant": 0
}
}{
"results": [
{
"vehicle_id": "WG-VTV-2",
"segment": "Standard Sedan",
"vehicle_type": "Sedan",
"max_passengers": 4,
"suitcase": 2,
"small_bag": 1,
"is_electric": false,
"price": 45,
"currency": "USD",
"services": [
{
"id": 21,
"price": 10,
"max_quantity": 3
}
]
}
]
}curl -X POST "https://api.wellgotaxi.com/functions/viatoviaWebhook/v1/search" \
-H "Content-Type: application/json" \
-H "X-Api-Key: <your-key>" \
-H "Via-Fleet-Api-Version: 1" \
-d '{
"pickup": {
"type": "AIRPORT",
"iata": "DXB"
},
"dropoff": {
"type": "POINT",
"lat": 24.4936,
"lng": 54.378,
"address": "Abu Dhabi Mall"
},
"pickup_datetime": "2026-10-01T14:00:00Z",
"passengers": {
"adult": 2,
"children": 0,
"infant": 0
}
}'Your reservation_no is used as the booking reference and is idempotent — resending it returns the existing booking.
{
"vehicle_id": "WG-VTV-2",
"reservation_no": "VTV-123456",
"pickup": {
"type": "AIRPORT",
"iata": "DXB"
},
"dropoff": {
"type": "POINT",
"lat": 24.4936,
"lng": 54.378,
"address": "Abu Dhabi Mall"
},
"pickup_datetime": "2026-10-01T14:00:00Z",
"passenger": {
"name": "John",
"surname": "Smith",
"email": "john@example.com",
"phone": "+971501234567"
},
"passengers": {
"adult": 2,
"children": 0,
"infant": 0
},
"flight_number": "EK762",
"price": 45
}{
"booking_reference": "VTV-123456",
"reservation_no": "VTV-123456",
"status": "APPROVED"
}curl -X POST "https://api.wellgotaxi.com/functions/viatoviaWebhook/v1/bookings" \
-H "Content-Type: application/json" \
-H "X-Api-Key: <your-key>" \
-H "Via-Fleet-Api-Version: 1" \
-d '{
"vehicle_id": "WG-VTV-2",
"reservation_no": "VTV-123456",
"pickup": {
"type": "AIRPORT",
"iata": "DXB"
},
"dropoff": {
"type": "POINT",
"lat": 24.4936,
"lng": 54.378,
"address": "Abu Dhabi Mall"
},
"pickup_datetime": "2026-10-01T14:00:00Z",
"passenger": {
"name": "John",
"surname": "Smith",
"email": "john@example.com",
"phone": "+971501234567"
},
"passengers": {
"adult": 2,
"children": 0,
"infant": 0
},
"flight_number": "EK762",
"price": 45
}'GET /v1/bookings/{ref} returns full booking details including driver fields once assigned (driver_name, driver_phone, vehicle_plate).
Status values: PENDING → APPROVED → COMPLETED, or CANCELLED.
PATCH returns { "status": "accepted" } or { "status": "declined", "description": "<reason>" }. We decline amendments whose new pickup time is in the past.
POST /cancel returns { "acknowledged": true }. Cancellation is free up to 24 hours before pickup.
| ID | Class | Max pax | Suitcase | Small bag | Segment | Type |
|---|---|---|---|---|---|---|
WG-VTV-1 | micro | 3 | 1 | 1 | Standard Sedan | Sedan |
WG-VTV-2 | economy | 4 | 2 | 1 | Standard Sedan | Sedan |
WG-VTV-3 | comfort | 4 | 2 | 1 | Standard Sedan | Sedan |
WG-VTV-4 | business | 3 | 2 | 1 | Executive Sedan | Sedan |
WG-VTV-5 | luxury_suv | 3 | 2 | 2 | Executive Crossover | Crossover |
WG-VTV-6 | premium | 3 | 2 | 2 | First Class | Sedan |
WG-VTV-7 | minivan_4 | 4 | 2 | 2 | Standard People Carrier | Minivan |
WG-VTV-8 | suv | 4 | 2 | 1 | Standard Crossover | Crossover |
WG-VTV-9 | minibus_7 | 7 | 3 | 4 | Standard People Carrier | Minibus |
WG-VTV-10 | premium_minibus_6 | 6 | 2 | 2 | Executive People Carrier | Minivan |
WG-VTV-11 | minibus_10 | 10 | 4 | 6 | Standard People Carrier | Minibus |
WG-VTV-12 | minibus_13 | 13 | 6 | 7 | Standard People Carrier | Minibus |
WG-VTV-13 | minibus_16 | 16 | 8 | 8 | Standard People Carrier | Minibus |
WG-VTV-14 | minibus_19 | 19 | 9 | 10 | Standard People Carrier | Minibus |
WG-VTV-15 | minibus_20 | 20 | 10 | 10 | Standard People Carrier | Minibus |
WG-VTV-16 | bus_25 | 25 | 10 | 15 | Bus | Bus |
WG-VTV-17 | bus_35 | 35 | 15 | 20 | Bus | Bus |
WG-VTV-18 | bus_45 | 45 | 20 | 25 | Bus | Bus |
| ID | Service | Price | Max qty |
|---|---|---|---|
5 | Meet and Greet Service | Free | 1 |
21 | Infant Seat (0–9 months) | $10 | 3 |
22 | Toddler Seat (9 months–4 years) | $10 | 3 |
23 | Booster Seat (4 years+) | $10 | 3 |
37 | Complimentary Water Bottle | $5 | 3 |
Segments, vehicle types, service attributes and cancellation reasons are all served live from the four reference endpoints: