Rapid Activities API overview
Empower travelers to book activities and experiences with the Rapid Activities API
Early access preview
This documentation is part of an early access preview initiative for selected partners only. Pilot programs will launch in Q2 2026, with general availability in 2027.
If you are interested in becoming a pilot or beta partner, please reach out to your account manager.
The Rapid Activities API is designed to help you surface activities to travelers via an easy to integrate, end-to-end shopping and booking flow. This provides travelers a more holistic experience while allowing you to unlock new revenue sources.
Key concepts
- Activity: A bookable event (what you show and sell).
- Activity group: A bundle of similar activities.
- Experience: A conceptual/marketing wrapper that may contain multiple activities.
- Tickets: Ticket types for an activity (adult/child/infant, etc.).
- Itinerary: A booking (activity reservation) with one activity and one or more tickets.
- Categories: High-level groupings that classify experiences and activities into themes (for example, city tours, museums, or outdoor activities).
- Attributes: Descriptive flags that capture specific characteristics of an experience or activity (for example, wheelchair accessible, family friendly, guided tour, or skip the line).
End‑to‑end integration flow
Booking activities with this API follows this general flow.
Step 1: Discover inventory
Understand what you can sell in a destination and create a structured catalog of activities by destination ready to merchandise.
- Map Geography API regions to underlying inventory (experiences, activities, and activity groups) using the region mapping endpoints. Note: The Activities API will only support the
region_IDparameter in this iteration. - Pull rich activity content (titles, descriptions, images, locations, and categories) in multiple languages.
- Pull guest ratings and reviews for activities to help travelers compare options and build trust in the experience.
- Populate search results, activity detail pages, and filters (for example, family friendly or walking tours).
Step 2: Search availability and prices
Know when activities are available and at what price. Leverage bookable dates/times, ticket options, and price ranges to power the shopping journey.
- For specific activities and dates, request availability and pricing by ticket type.
- Show calendars (available/unavailable dates), time slots, and starting prices in the shopper experience.
- Support multiple activities in a single call.
Step 3: Pre-booking price check
Confirm final bookable price and get a list of required booking fields before payment. Receive a confirmed offer and a booking token, aligned with the latest inventory and policy.
- Validate a specific selection (activity, date, time, and tickets) in real time.
- Receive final price, taxes/fees, and availability status (including price changes or sell‑outs).
- Get details about required booking fields (such as passenger details or pick-up type) and a secure token for booking.
Step 4: Create booking
Turn a confirmed selection into a reservation. Receive a confirmed itinerary (booking) that you can display and manage in your own systems.
- Send the booking token from the shopping flow as a query parameter, the
payment_tokenfrom the Payments API in the request body, along with traveler details (primary and additional travelers). - Include your own affiliate reference so you can reconcile and search bookings later.
- Receive an itinerary ID and links to retrieve booking details.
Step 5: Manage bookings
Support post‑booking workflows for customers and agents. Access a complete post‑booking toolset to view, cancel, and provide vouchers for existing reservations.
- Retrieve booking details by itinerary ID or your affiliate reference.
- Cancel bookings when permitted and surface the resulting state to the customer.
- Retrieve voucher documents for customers to present at the activity.
Testing error responses
To send a test request for a given Rapid Activities API method, include an additional HTTP header named test in your Shopping or Booking request and use the appropriate value from the tables below. Failing to send a test header or sending an invalid test header will cause the request to be processed live.
Note: Using a test header will result in a static response message, so rates and content returned may not be relevant to the activities being tested.
Shopping and Content APIs
| Test header value | HTTP code and response | Status |
|---|---|---|
| standard | 200 OK (standard success response) | Success |
invalid_input | 400 bad request (invalid input) | Error |
bad_link | 400 bad request (bad link) | Error |
internal_server_error | 500 internal server error (unknown error) | Error |
service_unavailable | 503 service unavailable | Error |
Booking API
| Test header value | HTTP code and response | Status |
|---|---|---|
| standard | 200 OK (standard success response) | Success |
invalid_input | 400 bad request (invalid input) | Error |
bad_link | 400 bad request (bad link) | Error |
price_mismatch | 409 conflict (price mismatch) | Error |
sold_out | 409 conflict (sold out) | Error |
internal_server_error | 500 internal server error (unknown error) | Error |
service_unavailable | 503 service unavailable | Error |
Endpoint summary by use case
| Use case | Method and path | Required query parameters / comments |
|---|---|---|
| Region experiences | GET /regions/{region_id}/experiences | language |
| Region activity groups | GET /regions/{region_id}/activity-groups | language |
| Region activities | GET /regions/{region_id}/activities | language |
| Experience content | GET /experiences/content | experience_id[], language |
| Activity group content | GET /experiences/activity-groups/content | language, activity_group_id[] |
| Activity content | GET /experiences/activities/content | activity_id[], language |
| Activity operating hours | GET /experiences/activities/{activity_id}/operating-hours | start_date, end_date (≤ 90 days), language |
| Experience categories | GET /experiences/categories | language, pagination_size |
| Experience attributes | GET /experiences/attributes | language, pagination_size |
| Activity categories | GET /experiences/activities/categories | language, pagination_size |
| Activity attributes | GET /experiences/activities/attributes | language, pagination_size |
| Guest reviews | GET /experiences/activities/{activity_id}/guest-reviews | limit, sort |
| Availability and pricing | GET /experiences/activities/availability | activity_id[], start_date, end_date (≤14), currency, language |
| Calendar availability | GET /experiences/activities/calendars/availability | activity_id[], start_date, end_date |
| Price check | GET /experiences/activities/{activity_id}/price-check | token (from Shopping API call), tickets |
| Create booking | POST /itineraries/activity | Query: token (from Shopping API call), Body: CreateItineraryRequest, affiliate_reference_id, payment_token, primary_traveler |
| Retrieve by itinerary ID | GET /itineraries/{itinerary_id}/activity | — |
| Retrieve by affiliate reference | GET /itineraries/activity | affiliate_reference_id |
| Cancel booking | DELETE /itineraries/{itinerary_id}/activity | 204 (booking successfully cancelled), 202 (state unknown) |
| Retrieve voucher | GET /itineraries/{itinerary_id}/activity/voucher | Returns link to retrieve voucher for booked activity |
Note: Parameters that are followed by [] indicate that it can have multiple values in a comma-separated array.
API details
Explore the activity-related endpoint definitions on this page, then use testing software such as Postman to get an understanding of how the examples and schema definitions compare to the actual output. When this API is past the pilot stage, its endpoints will be included in our API Explorer as well.