POST/v1/transfers/search

Search transfers

Search transfer offers and receive a complete JSON response or progressive stream events.

Share
POST/v1/transfers/search

API console

Try it

Send a real request to the sandbox API and inspect the response.

Credentials

Log in to pick from your saved API keys instead of pasting them.

Request body

cURL request

cURL
bash
curl -X POST 'https://api.sandbox.travelandz.com/v1/transfers/search' \
  -H 'Authorization: Bearer YOUR_SECRET_KEY' \
  -H 'X-Travelandz-Id: YOUR_PUBLIC_KEY:YOUR_PROFILE_CODE' \
  -H 'Content-Type: application/json' \
  -d '{"mode":"one_way","startAddress":"433 Park Ave","startCity":"New York","startZipcode":"10022","endAddress":"JFK","pickupDatetime":"2026-08-16 15:30","numPassengers":2,"currency":"USD","responseMode":"complete"}'

Add your credentials to send a request.

Response

Click "Try it!" to send a request and see the response here.

Search transfer offers and receive a complete JSON response or progressive stream events.

Authentication and headers

HeaderDescription
AuthorizationBearer <secret_key>. Keep the secret on the server and never write it to client logs.
X-Travelandz-Id<public_key>:<profile_code>, where the persisted profile code has the form dp_<12 alphanumeric>.
LANGPreferred locale header. Accept-Language is also supported.
Content-Typeapplication/json for requests with a JSON body.

Request

Send mode and numPassengers. Origin and destination each need an address, a place ID, or a latitude/longitude pair. Set responseMode to stream to receive offers as they arrive instead of one final response. A round_trip search also requires returnPickupDatetime or returnFlightDatetime.

Request Body Schema

mode
enum
one_wayround_trip
Yes
responseMode
enum
completestream
No
Defaults to complete.
numPassengers
numberYes
Integer from 1 to 99.
startAddress
stringNo
Send an address, a place ID, or a latitude/longitude pair for the origin.
startCity
stringNo
Appended to the address to improve resolution.
startZipcode
stringNo
Appended to the address to improve resolution.
startLat
numberNo
Must be sent together with startLng.
startLng
numberNo
Must be sent together with startLat.
startPlaceId
stringNo
Alternative to an address or coordinates.
endAddress
stringNo
Send an address, a place ID, or a latitude/longitude pair for the destination.
endCity
stringNo
Appended to the address to improve resolution.
endZipcode
stringNo
Appended to the address to improve resolution.
endLat
numberNo
Must be sent together with endLng.
endLng
numberNo
Must be sent together with endLat.
endPlaceId
stringNo
Alternative to an address or coordinates.
pickupDatetime
string
Format: YYYY-MM-DD HH:mm
No
Local date and time at the origin.
flightDatetime
string
Format: YYYY-MM-DD HH:mm
No
flightType
enum
domesticinternational
No
returnPickupDatetime
stringNo
A round_trip search requires this field or returnFlightDatetime.
returnFlightDatetime
stringNo
A round_trip search requires this field or returnPickupDatetime.
amenities
arrayYes
amenities[]
string[]No
Amenity keys to bias the search. Also accepted as a CSV string.
currency
enum
EURUSDINRCHFJPYGBPAUDCADCNYSGDNZDMXN
No
Lowercase values are accepted and normalized. Defaults to USD on a new search and is inherited afterwards.
campaign
stringNo
Your own campaign context.
branch
stringNo
Requires campaign when sent.
language
enum
en-USes-ESde-DEfr-FRpt-BRzh-CNit-IT
No
Legacy field. Prefer the LANG or Accept-Language header.

Request example

Complete response

json
json
{
  "mode": "one_way",
  "startAddress": "433 Park Ave",
  "startCity": "New York",
  "startZipcode": "10022",
  "endAddress": "JFK",
  "pickupDatetime": "2026-08-16 15:30",
  "numPassengers": 2,
  "currency": "USD",
  "responseMode": "complete"
}

Stream response

json
json
{
  "mode": "one_way",
  "startAddress": "433 Park Ave, New York",
  "endAddress": "JFK",
  "pickupDatetime": "2026-08-16 15:30",
  "numPassengers": 2,
  "currency": "USD",
  "responseMode": "stream"
}

Success response

Returns transfers[] with the offers that can be priced and booked, plus metadata describing the resolved locations and whether the result set is final. Each offer carries an opaque bookingToken that you copy into pricing.

A search can return 200 with metadata.timedOut: true. That is not an error: the offers already present are valid and bookable.

Response Body Schema

transfers
arrayYes
transfers[]searchId
stringYes
Send this value in pricing, booking and reservation reads.
transfers[]gdsprovider
enum
0
Yes
transfers[]resultId
stringYes
Identifies the selected offer.
transfers[]bookingToken
stringYes
Opaque value. Copy it into pricing and booking; never decode or modify it.
transfers[]expiresAt
string
Format: ISO 8601
Yes
The offer and its token stop being usable after this moment.
transfers[]vehicleId
stringNo
transfers[]totalAmount
numberYes
Indicative total for the offer in currency.
transfers[]currency
enum
EURUSDINRCHFJPYGBPAUDCADCNYSGDNZDMXN
Yes
transfers[]bookable
booleanYes
False when the offer cannot be booked.
transfers[]flightInfoRequired
booleanYes
When true, airline and flightNumber are required to book.
transfers[]extraPaxRequired
booleanYes
When true, extraPaxInfo is required to book.
transfers[]goodToKnowInfo
arrayYes
transfers[]goodToKnowInfo[]
string[]Yes
Localized operational notes to show the traveller.
transfers[]supports
objectYes
transfers[]cancellationPolicies
arrayYes
transfers[]cancellationPolicies[]notice
numberNo
Hours of notice the policy requires.
transfers[]cancellationPolicies[]refundPercent
numberNo
transfers[]cancellationPolicies[]refundableUntilDatetime
string
Format: ISO 8601
No
transfers[]cancellationPolicies[]refundAmount
numberNo
Refundable amount in the offer currency.
transfers[]cancellationPolicies[]currency
enum
EURUSDINRCHFJPYGBPAUDCADCNYSGDNZDMXN
No
transfers[]steps
arrayYes
transfers[]steps[]stepType
stringNo
Leg type, for example car.
transfers[]steps[]main
booleanNo
True for the primary leg of the transfer.
transfers[]steps[]description
stringNo
transfers[]steps[]departureDatetime
string
Format: ISO 8601
No
transfers[]steps[]durationMinutes
numberNo
transfers[]steps[]durationSeconds
numberNo
transfers[]steps[]distanceMeters
numberNo
transfers[]steps[]distanceMiles
numberNo
transfers[]steps[]lineName
stringNo
Present for scheduled line transport.
transfers[]steps[]lineColor
stringNo
transfers[]steps[]provider
objectYes
transfers[]steps[]providername
stringNo
transfers[]steps[]providerrating
numberNo
transfers[]steps[]vehicle
objectYes
transfers[]steps[]vehicletype
stringNo
Vehicle name, for example Shared Ride Van.
transfers[]steps[]vehiclecategory
stringNo
Vehicle grouping, for example Shared or Private.
transfers[]steps[]vehiclemaxBags
numberNo
transfers[]steps[]vehiclemaxPassengers
numberNo
transfers[]steps[]vehiclenumVehicles
numberNo
transfers[]steps[]vehicleimageUrl
string
Format: URL
No
transfers[]steps[]waitTime
objectYes
transfers[]steps[]waitTimeincluded
booleanNo
transfers[]steps[]waitTimeminutesIncluded
numberNo
transfers[]steps[]waitTimeextraWaitTimeChargeable
booleanNo
transfers[]steps[]amenities
arrayYes
transfers[]steps[]amenities[]key
stringYes
Value to send in selectedAmenities.
transfers[]steps[]amenities[]name
stringYes
Localized name.
transfers[]steps[]amenities[]description
stringNo
transfers[]steps[]amenities[]imageUrl
string
Format: URL
No
transfers[]steps[]amenities[]pngImageUrl
string
Format: URL
No
transfers[]steps[]amenities[]inputType
enum
booleannumeric
No
transfers[]steps[]amenities[]included
booleanYes
True when the amenity is already part of the offer.
transfers[]steps[]amenities[]selectable
booleanYes
True when the amenity can be added to this offer.
transfers[]steps[]amenities[]selected
booleanYes
True when the amenity is part of the priced selection.
transfers[]steps[]startLocation
objectYes
transfers[]steps[]startLocationformattedAddress
stringNo
transfers[]steps[]startLocationfullAddress
stringNo
transfers[]steps[]startLocationiataCode
stringNo
Present for airport locations.
transfers[]steps[]startLocationicaoCode
stringNo
transfers[]steps[]startLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
transfers[]steps[]startLocationlatitude
numberNo
transfers[]steps[]startLocationlongitude
numberNo
transfers[]steps[]startLocationtimezone
stringNo
IANA timezone of the location.
transfers[]steps[]endLocation
objectYes
transfers[]steps[]endLocationformattedAddress
stringNo
transfers[]steps[]endLocationfullAddress
stringNo
transfers[]steps[]endLocationiataCode
stringNo
Present for airport locations.
transfers[]steps[]endLocationicaoCode
stringNo
transfers[]steps[]endLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
transfers[]steps[]endLocationlatitude
numberNo
transfers[]steps[]endLocationlongitude
numberNo
transfers[]steps[]endLocationtimezone
stringNo
IANA timezone of the location.
transfers[]ticketTypes
arrayYes
transfers[]ticketTypes[]id
stringYes
Send this value in ticketTypes[].id when booking.
transfers[]ticketTypes[]name
stringNo
transfers[]ticketTypes[]departureDatetime
string
Format: ISO 8601
No
transfers[]ticketTypes[]arrivalDatetime
string
Format: ISO 8601
No
transfers[]alternativeTimes
arrayYes
transfers[]alternativeTimes[]departureDatetime
string
Format: ISO 8601
No
transfers[]alternativeTimes[]arrivalDatetime
string
Format: ISO 8601
No
metadata
objectYes
metadatacompleted
booleanYes
True when the result set is final.
metadatatimedOut
booleanYes
True when results were returned before every source finished. The offers already present are valid.
metadataproviderResults
arrayYes
metadataproviderResults[]gdsprovider
enum
0
Yes
metadataproviderResults[]searchId
stringNo
metadataproviderResults[]completed
booleanNo
True when this source has no further offers to return.
metadataproviderResults[]timedOut
booleanNo
metadataproviderResults[]moreComing
booleanNo
True when more offers may still arrive for this searchId.
metadatastartLocation
objectYes
metadatastartLocationformattedAddress
stringNo
metadatastartLocationfullAddress
stringNo
metadatastartLocationiataCode
stringNo
Present for airport locations.
metadatastartLocationicaoCode
stringNo
metadatastartLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
metadatastartLocationlatitude
numberNo
metadatastartLocationlongitude
numberNo
metadatastartLocationtimezone
stringNo
IANA timezone of the location.
metadataendLocation
objectYes
metadataendLocationformattedAddress
stringNo
metadataendLocationfullAddress
stringNo
metadataendLocationiataCode
stringNo
Present for airport locations.
metadataendLocationicaoCode
stringNo
metadataendLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
metadataendLocationlatitude
numberNo
metadataendLocationlongitude
numberNo
metadataendLocationtimezone
stringNo
IANA timezone of the location.
metadatapickupDatetime
string
Format: ISO 8601
No
Resolved pickup moment in the origin timezone.
metadatanumPassengers
numberNo

Response Body Schema (responseMode=stream)

transfers
arrayYes
transfers[]searchId
stringYes
Send this value in pricing, booking and reservation reads.
transfers[]gdsprovider
enum
0
Yes
transfers[]resultId
stringYes
Identifies the selected offer.
transfers[]bookingToken
stringYes
Opaque value. Copy it into pricing and booking; never decode or modify it.
transfers[]expiresAt
string
Format: ISO 8601
Yes
The offer and its token stop being usable after this moment.
transfers[]vehicleId
stringNo
transfers[]totalAmount
numberYes
Indicative total for the offer in currency.
transfers[]currency
enum
EURUSDINRCHFJPYGBPAUDCADCNYSGDNZDMXN
Yes
transfers[]bookable
booleanYes
False when the offer cannot be booked.
transfers[]flightInfoRequired
booleanYes
When true, airline and flightNumber are required to book.
transfers[]extraPaxRequired
booleanYes
When true, extraPaxInfo is required to book.
transfers[]goodToKnowInfo
arrayYes
transfers[]goodToKnowInfo[]
string[]Yes
Localized operational notes to show the traveller.
transfers[]supports
objectYes
transfers[]cancellationPolicies
arrayYes
transfers[]cancellationPolicies[]notice
numberNo
Hours of notice the policy requires.
transfers[]cancellationPolicies[]refundPercent
numberNo
transfers[]cancellationPolicies[]refundableUntilDatetime
string
Format: ISO 8601
No
transfers[]cancellationPolicies[]refundAmount
numberNo
Refundable amount in the offer currency.
transfers[]cancellationPolicies[]currency
enum
EURUSDINRCHFJPYGBPAUDCADCNYSGDNZDMXN
No
transfers[]steps
arrayYes
transfers[]steps[]stepType
stringNo
Leg type, for example car.
transfers[]steps[]main
booleanNo
True for the primary leg of the transfer.
transfers[]steps[]description
stringNo
transfers[]steps[]departureDatetime
string
Format: ISO 8601
No
transfers[]steps[]durationMinutes
numberNo
transfers[]steps[]durationSeconds
numberNo
transfers[]steps[]distanceMeters
numberNo
transfers[]steps[]distanceMiles
numberNo
transfers[]steps[]lineName
stringNo
Present for scheduled line transport.
transfers[]steps[]lineColor
stringNo
transfers[]steps[]provider
objectYes
transfers[]steps[]providername
stringNo
transfers[]steps[]providerrating
numberNo
transfers[]steps[]vehicle
objectYes
transfers[]steps[]vehicletype
stringNo
Vehicle name, for example Shared Ride Van.
transfers[]steps[]vehiclecategory
stringNo
Vehicle grouping, for example Shared or Private.
transfers[]steps[]vehiclemaxBags
numberNo
transfers[]steps[]vehiclemaxPassengers
numberNo
transfers[]steps[]vehiclenumVehicles
numberNo
transfers[]steps[]vehicleimageUrl
string
Format: URL
No
transfers[]steps[]waitTime
objectYes
transfers[]steps[]waitTimeincluded
booleanNo
transfers[]steps[]waitTimeminutesIncluded
numberNo
transfers[]steps[]waitTimeextraWaitTimeChargeable
booleanNo
transfers[]steps[]amenities
arrayYes
transfers[]steps[]amenities[]key
stringYes
Value to send in selectedAmenities.
transfers[]steps[]amenities[]name
stringYes
Localized name.
transfers[]steps[]amenities[]description
stringNo
transfers[]steps[]amenities[]imageUrl
string
Format: URL
No
transfers[]steps[]amenities[]pngImageUrl
string
Format: URL
No
transfers[]steps[]amenities[]inputType
enum
booleannumeric
No
transfers[]steps[]amenities[]included
booleanYes
True when the amenity is already part of the offer.
transfers[]steps[]amenities[]selectable
booleanYes
True when the amenity can be added to this offer.
transfers[]steps[]amenities[]selected
booleanYes
True when the amenity is part of the priced selection.
transfers[]steps[]startLocation
objectYes
transfers[]steps[]startLocationformattedAddress
stringNo
transfers[]steps[]startLocationfullAddress
stringNo
transfers[]steps[]startLocationiataCode
stringNo
Present for airport locations.
transfers[]steps[]startLocationicaoCode
stringNo
transfers[]steps[]startLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
transfers[]steps[]startLocationlatitude
numberNo
transfers[]steps[]startLocationlongitude
numberNo
transfers[]steps[]startLocationtimezone
stringNo
IANA timezone of the location.
transfers[]steps[]endLocation
objectYes
transfers[]steps[]endLocationformattedAddress
stringNo
transfers[]steps[]endLocationfullAddress
stringNo
transfers[]steps[]endLocationiataCode
stringNo
Present for airport locations.
transfers[]steps[]endLocationicaoCode
stringNo
transfers[]steps[]endLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
transfers[]steps[]endLocationlatitude
numberNo
transfers[]steps[]endLocationlongitude
numberNo
transfers[]steps[]endLocationtimezone
stringNo
IANA timezone of the location.
transfers[]ticketTypes
arrayYes
transfers[]ticketTypes[]id
stringYes
Send this value in ticketTypes[].id when booking.
transfers[]ticketTypes[]name
stringNo
transfers[]ticketTypes[]departureDatetime
string
Format: ISO 8601
No
transfers[]ticketTypes[]arrivalDatetime
string
Format: ISO 8601
No
transfers[]alternativeTimes
arrayYes
transfers[]alternativeTimes[]departureDatetime
string
Format: ISO 8601
No
transfers[]alternativeTimes[]arrivalDatetime
string
Format: ISO 8601
No
metadata
objectYes
metadatacompleted
booleanYes
True when the result set is final.
metadatatimedOut
booleanYes
True when results were returned before every source finished. The offers already present are valid.
metadataproviderResults
arrayYes
metadataproviderResults[]gdsprovider
enum
0
Yes
metadataproviderResults[]searchId
stringNo
metadataproviderResults[]completed
booleanNo
True when this source has no further offers to return.
metadataproviderResults[]timedOut
booleanNo
metadataproviderResults[]moreComing
booleanNo
True when more offers may still arrive for this searchId.
metadatastartLocation
objectYes
metadatastartLocationformattedAddress
stringNo
metadatastartLocationfullAddress
stringNo
metadatastartLocationiataCode
stringNo
Present for airport locations.
metadatastartLocationicaoCode
stringNo
metadatastartLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
metadatastartLocationlatitude
numberNo
metadatastartLocationlongitude
numberNo
metadatastartLocationtimezone
stringNo
IANA timezone of the location.
metadataendLocation
objectYes
metadataendLocationformattedAddress
stringNo
metadataendLocationfullAddress
stringNo
metadataendLocationiataCode
stringNo
Present for airport locations.
metadataendLocationicaoCode
stringNo
metadataendLocationplaceId
stringNo
Reusable place identifier; send it back to skip geocoding.
metadataendLocationlatitude
numberNo
metadataendLocationlongitude
numberNo
metadataendLocationtimezone
stringNo
IANA timezone of the location.
metadatapickupDatetime
string
Format: ISO 8601
No
Resolved pickup moment in the origin timezone.
metadatanumPassengers
numberNo
error
stringNo
Present on an error event.
errorCode
stringNo
Present on an error event.

Response examples

json
json
{
  "transfers": [
    {
      "searchId": "5c8563a5d31d4c33a3a1eafbbfe59c4b",
      "gdsprovider": 0,
      "resultId": "763475651c06f5ac31ea587084dc0629",
      "bookingToken": "opaque_offer_token_generated_by_travelandz",
      "expiresAt": "2026-08-05T21:20:00.000Z",
      "totalAmount": 49.84,
      "currency": "USD",
      "bookable": true,
      "flightInfoRequired": true,
      "extraPaxRequired": false,
      "goodToKnowInfo": [],
      "cancellationPolicies": [
        {
          "notice": 48,
          "refundPercent": 100,
          "refundableUntilDatetime": "2026-08-14T14:40:00-04:00",
          "refundAmount": 49.84,
          "currency": "USD"
        }
      ],
      "supports": {},
      "steps": [
        {
          "stepType": "car",
          "main": true,
          "departureDatetime": "2026-08-16T14:40:00-04:00",
          "durationMinutes": 26,
          "distanceMeters": 25749,
          "provider": {
            "name": "GO Airlink NYC",
            "rating": 5
          },
          "vehicle": {
            "type": "Shared Ride Van",
            "category": "Shared",
            "maxBags": 4,
            "maxPassengers": 11,
            "numVehicles": 1
          },
          "waitTime": {
            "included": false,
            "minutesIncluded": 0,
            "extraWaitTimeChargeable": false
          },
          "amenities": []
        }
      ],
      "ticketTypes": [],
      "alternativeTimes": [
        {
          "departureDatetime": "2026-08-16T14:40:00-04:00",
          "arrivalDatetime": "2026-08-16T15:06:10-04:00"
        },
        {
          "departureDatetime": "2026-08-16T13:40:00-04:00",
          "arrivalDatetime": "2026-08-16T14:06:10-04:00"
        }
      ]
    }
  ],
  "metadata": {
    "completed": true,
    "timedOut": false,
    "providerResults": [
      {
        "gdsprovider": 0,
        "searchId": "5c8563a5d31d4c33a3a1eafbbfe59c4b",
        "completed": true,
        "timedOut": false,
        "moreComing": false
      }
    ],
    "startLocation": {
      "formattedAddress": "433 Park Ave, New York, NY 10022, USA",
      "fullAddress": "433 Park Ave, New York",
      "placeId": "EiU0MzMgUGFyayBBdmUsIE5ldyBZb3JrLCBOWSAxMDAyMiwgVVNB",
      "latitude": 40.7607634,
      "longitude": -73.971212,
      "timezone": "America/New_York"
    },
    "endLocation": {
      "formattedAddress": "John F Kennedy International Airport",
      "fullAddress": "John F Kennedy International Airport",
      "iataCode": "JFK",
      "icaoCode": "KJFK",
      "latitude": 40.639751,
      "longitude": -73.778926,
      "timezone": "America/New_York"
    },
    "pickupDatetime": "2026-08-16T15:30:00-04:00",
    "numPassengers": 2
  }
}

Stream events

EventDescription
provider_search_createdThe search was accepted. Carries the first offers, if any are already available.
provider_poll_resultAn updated set of offers. Replace what you were showing with the payload of the latest event.
provider_doneA source finished contributing offers.
errorThe stream could not continue. Carries error and errorCode.
doneFinal combined result. Close the connection when you receive it.

Stream example

text
text
event: provider_search_created
data: {"transfers":[],"metadata":{"completed":false,"timedOut":false,"providerResults":[{"gdsprovider":0,"searchId":"5c8563a5d31d4c33a3a1eafbbfe59c4b","moreComing":true}]}}

event: provider_poll_result
data: {"transfers":[{"searchId":"5c8563a5d31d4c33a3a1eafbbfe59c4b","resultId":"763475651c06f5ac31ea587084dc0629","totalAmount":49.84,"currency":"USD"}],"metadata":{"completed":false,"timedOut":false,"providerResults":[{"gdsprovider":0,"moreComing":true}]}}

event: provider_done
data: {"transfers":[{"searchId":"5c8563a5d31d4c33a3a1eafbbfe59c4b","resultId":"763475651c06f5ac31ea587084dc0629","totalAmount":49.84,"currency":"USD"}],"metadata":{"completed":true,"timedOut":false,"providerResults":[{"gdsprovider":0,"completed":true,"moreComing":false}]}}

event: done
data: {"transfers":[{"searchId":"5c8563a5d31d4c33a3a1eafbbfe59c4b","resultId":"763475651c06f5ac31ea587084dc0629","totalAmount":49.84,"currency":"USD"}],"metadata":{"completed":true,"timedOut":false,"providerResults":[{"gdsprovider":0,"completed":true,"moreComing":false}]}}

Errors

HTTPCodeMeaningRecommended action
400The body, query or path is invalid, or contains an unknown property.Fix the request using the message array.
400transfer_invalid_currencyThe currency is outside the supported list.Use a supported currency.
400transfer_invalid_languageThe requested language is not supported.Use one of the documented language values.
429transfer_provider_errorThe service is temporarily rate limited.Retry with exponential backoff.
502transfer_provider_errorThe request could not be completed.Do not assume success. Keep your identifiers and read the reservation when the operation could have been created.
400transfer_location_not_foundAn origin or destination could not be resolved.Add a city or zipcode, or send a place ID or a coordinate pair.
503The price could not be confirmed right now.Retry later. Do not book and do not charge the traveller.

Usage notes

If every source fails before the stream opens, the request fails with a normal JSON HTTP error. If the stream already started, the failure arrives as an error event instead. Close stream connections explicitly when you no longer need them.

Persist searchId, resultId and bookingToken for the offer the traveller selects: pricing, booking and reservation reads all need them.

cURL example

bash
bash
curl --request POST \
  --url "https://api.sandbox.travelandz.com/v1/transfers/search" \
  -H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
  -H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
  -H "Content-Type: application/json" \
  --data '{
  "mode": "one_way",
  "startAddress": "433 Park Ave",
  "startCity": "New York",
  "startZipcode": "10022",
  "endAddress": "JFK",
  "pickupDatetime": "2026-08-16 15:30",
  "numPassengers": 2,
  "currency": "USD",
  "responseMode": "complete"
}'