Check car rental availability 3.2 Beta
Use the 3.2 /cars/availability endpoint to retrieve detailed availability, pricing, and policy information for a specific car rental offer returned by the /cars/search endpoint.
This endpoint is currently available to selected partners as part of an early access pilot.
- Pilot phase - The API is under active development and may change.
- Available flows
- Search, Look and Book flow (Type 3) is currently test-ready in Beta.
- Access - Only approved pilot partners can use this endpoint.
- Contact your partnership manager to express interest.
- Frequent updates - Documentation and API specs will be updated regularly during the pilot.
- Check the Changelog periodically for the latest updates.
Overview
The /cars/availability endpoint returns real-time availability, including:
- Current price (base and total)
- Policies (cancellation, mileage, fuel, deposit, insurance)
- Optional extras and their prices
- Deal information (discounts or promotions)
When to use this endpoint
Use /cars/availability:
- After using the search endpoint - After completing a car search, each offer in the response includes an
offerID and asearch_token.- These values are required to retrieve accurate details for that specific offer.
- Before booking, to allow the traveller to review the policies, prices, and available extras.
- When displaying offer details, such as cancellation terms, terms and conditions, or included insurance.
Request parameters
Name | Required | Description | Important note |
|---|---|---|---|
offer | ✔ | The ID of the car offer, returned by /cars/search. | This is needed for the next orders/preview request. |
search_token | ✔ | Encoded token returned by /cars/search. | This is needed for the next orders/preview request. |
currency | ✔ | A three-letter ISO-4217 currency code (for example EUR, GBP). | Include in the availability request, the currency from the booker´s country (rather than display currency), otherwise it returns error. |
Always use the same search_token and offer combination returned from your /cars/search call. Do not reuse tokens across different searches.
Example request:
{
"offer": 740171366,
"search_token": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7InNlYXJjaF9rZXkiOiJleU...",
"currency": "GBP" // This must be the booker country currency.
}
Example for currency request:
- If booker country in cars/search request is "no" and currency is "EUR". You will need to include currency NOK in the availability call, otherwise it returns a 500 error.
Response structure
A successful response (200 OK) includes:
Field | Type | Description |
|---|---|---|
request_id | string | Unique request identifier for debugging or support. |
data | object | Contains details about the offer’s price, policies, and products. |
Key objects
Policies
Describes the rules and terms that apply to the rental.
cancellation–typeand conditions (for example,free_cancellation,non_refundable)details.context– when the rule applies (e.g., before_pickup)details.duration– time window (ISO 8601 duration, e.g., "PT48H")
deposit– pre-authorised amount blocked on the traveller’s card.damage_excess,theft_excess– maximum payable amounts in case of damage or theft.fuel– fuel return policy (for example,return_same,prepay_refunds)insurance_package– insurance included (e.g., inclusive or basic)mileage– allowed distance limit and excess fee details.type– limited or unlimited.distance_limit– numeric limit.distance_unit– miles or kilometers.amount– excess fee per unit if exceeded.
payment.timing– indicates when payment occurs (for example,pay_online_now,pay_at_pickup)
Price
Contains pricing information for the rental.
Example fields / values:
base– base rental price.total– full price including fees and mandatory extras.
Products
Lists optional extras available for the booking.
Example fields / values:
type– product type (e.g., baby_seat_included, gps)mode– pricing model (for example,per_day,per_rental)maximum_available– maximum number of this item available.price.amount– cost of the product.price.prepayment– whether prepayment is required (true/false)extra_charges- whether there is an extra cost.
Deal
Provides details about applied discounts or special offers.
Example fields / values:
tags– type of deal (e.g., black_friday, mobile_rate)discount_percentage– numeric discount applied.public_price– original price of this product, before applying any discounts.
See the Deals guide for more details.
Example response
{
"request_id": "01k1deq3e5b41da80f28yybhz0",
"data": {
"offer": 740171366,
"currency": "GBP",
"policies": {
"cancellation": {
"type": "free_cancellation",
"details": {
"context": "before_pickup",
"duration": "PT48H"
}
},
"deposit": { "amount": 1500 },
"damage_excess": { "amount": 1500 },
"theft_excess": { "amount": 1500 },
"fuel": "return_same",
"insurance_package": "inclusive",
"mileage": {
"type": "limited",
"distance_limit": 200,
"distance_unit": "miles",
"amount": 0.3
},
"payment": { "timing": "pay_online_now" }
},
"price": {
"base": 74.4,
"total": 194.4,
"extra_charges": [
{ "charge": "aged_driver_fee", "total_amount": 120 }
]
},
"products": [
{ "type": "baby_seat", "mode": "each_per_rental", "price": { "amount": 33.98, "prepayment": false } },
{ "type": "gps", "mode": "per_rental", "price": { "amount": 31.98, "prepayment": false } }
],
"supplier": 3486,
"depot": 38566
}
}Best practices
✅ Validate tokens and offers:
- Always pair the
offerID with thesearch_tokenfrom the same /cars/search response. Tokens are time-limited (90 minutes) and search-specific.
✅ Localise currency and units:
- Use the
currencyparameter to match the booker’s country used in the search request. - Mileage units (miles, kilometers) should also be displayed in the format used at the pick-up location (e.g., kilometers in Greece). If you display a different unit (e.g., miles), show it in addition to the original policy units, since the contract is based on the pick-up location’s units.
✅ Interpret cancellation rules:
- Use the
contextanddurationfields to generate user-friendly cancellation messages (for example: “Free cancellation up to 48 hours before pickup”).
✅ Log the request_id:
- Include request_id in your logs or when contacting support for troubleshooting.
Common errors
| Code | Meaning | Resolution |
|---|---|---|
400 Bad Request | Missing or invalid offer, search_token, or currency. | Check parameter values and formats. |
403 Forbidden | Missing or invalid X-Affiliate-Id. | Ensure your affiliate credentials are correctly set. |
404 Not Found | The offer is no longer available. | Re-run /cars/search to get updated offers. |
429 Too Many Requests | Too many requests within a short time. | Implement rate limiting and retries with exponential backoff. |
500 Internal Server Error | Unexpected error. | Retry after a short delay and report the request_id if the issue persists. |
See the Demand API Error handling guide for details.
Next steps
Once availability is confirmed and shown to the user, proceed to present the car rental terms and conditions and create the order using the /orders/preview and /orders/create endpoints.