Search Ground Transport
Search available vehicles for your users and poll for results.
Search Ground Transport
Ground transport uses an async pattern: POST to start a search, then poll until results are ready. All requests carry the white-label headers Authorization: Bearer <JWT>, X-App-Id, and X-Environment.
Search Available Rides
POST /v1/travel/ground-transport
Search for available vehicles and pricing for a route. Returns a search_id. Poll the results endpoint until status is complete.
| Field | Type | Required | Description |
|---|---|---|---|
start_address | string | yes | Pickup address or airport name |
end_address | string | yes | Drop-off address |
pickup_datetime | string | yes | ISO-8601 datetime |
num_passengers | integer | yes | Passenger count |
currency | string | no | ISO-4217 currency code |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/ground-transportSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X POST 'https://cloud.vanitypass.com/v1/travel/ground-transport' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"start_address":"Heathrow Airport, London","end_address":"1 Buckingham Palace Rd, London SW1W 0QT","pickup_datetime":"2026-07-01T10:00:00Z","num_passengers":2,"currency":"USD"}'Poll Search Results
GET /v1/travel/ground-transport/{search_id}/poll
Repeat every 2 seconds until more_coming is false. Quotes arrive across several polls — the initial search response carries none. Carry a quote's id into the quote and booking requests.
| Path param | Description |
|---|---|
search_id | ID returned by the search endpoint |
Response fields:
more_coming—truewhile more suppliers are still respondingcurrency— the search currency; everypricein the response is in itquotes— available vehicles with pricing
Each quote's price is the full fare for the itinerary, already including any supplier
fees — the same amount POST /v1/travel/quotes returns at checkout for that quote in
the same currency. Amenity price values are likewise the amount charged to add the
amenity, so nothing new appears at checkout.
make and model are supplier-reported and often null. Fall back to
vehicle_description (free text, usually names the car), then vehicle_type +
vehicle_class.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/ground-transport/{search_id}/pollSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X GET 'https://cloud.vanitypass.com/v1/travel/ground-transport/{search_id}/poll' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \Filter and Sort Results
POST /v1/travel/ground-transport/{search_id}/poll
Same endpoint, with a filters-only JSON body. Filter on the poll, not the search — the search response carries no quotes yet, so filters passed there have nothing to match against.
| Field | Type | Description |
|---|---|---|
filter_vehicle_types | string[] | Display name or numeric key — ["Sedan", "SUV"] or ["3", "4"] |
filter_vehicle_classes | string[] | ["First Class", "Business"] or ["1", "2"] |
filter_categories | string[] | ["Standard", "Large"] |
filter_amenities | string[] | Amenity keys the quote must offer |
filter_step_type | string | car, bus, ferry, rail, air |
filter_exclude_walk | boolean | Drop itineraries with a walking leg |
filter_min_passengers | integer | Minimum passenger capacity |
filter_min_luggage | integer | Minimum luggage capacity |
filter_cancellable_only | boolean | Cancellable quotes only |
filter_max_price | number | Maximum fare in the search currency |
sort_by | string | price_asc (default), price_desc, rating_desc, capacity_desc |
Every field is optional and unknown fields are ignored, so re-posting the original
search body also works. A malformed body, or a filter value outside the supported
taxonomy (e.g. "Platinum" as a vehicle class), returns 400 — filters are never
silently ignored.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/ground-transport/{search_id}/pollSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X POST 'https://cloud.vanitypass.com/v1/travel/ground-transport/{search_id}/poll' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"filter_vehicle_classes":["First Class"],"sort_by":"price_asc"}'