Workspace API
A REST API that lets external booking engines and partner systems browse trips, check availability, and create orders in your workspace.
The Workspace API is a REST interface that allows external applications — such as custom booking websites, partner systems, or CRM integrations — to interact with your workspace programmatically. Through the API, external systems can browse your trips, check real-time availability and pricing, and create fully processed orders with automatic payment link generation.
How It Works
External applications authenticate using an API key included in every request. Once authenticated, they can list your trips, retrieve detailed product and pricing information, check availability for specific participant combinations, and submit orders. When an order is created through the API, Itsy handles everything automatically: client record creation, pricing calculation, payment link generation, and confirmation email delivery.
Authentication
Every request must include your API key in the x-api-key header. The key identifies your workspace and enforces the configured rate limit. See API Keys for how to create and manage keys.
Requests without a valid key receive a 401 Unauthorized response.
Available Endpoints
Trips
List Trips
Retrieve all bookable trips in your workspace with optional filters.
| Parameter | Type | Description |
|---|---|---|
| departingFrom | Date (optional) | Only trips departing on or after this date |
| departingTo | Date (optional) | Only trips departing on or before this date |
| tags | Text (optional) | Comma-separated tag names to filter by |
| page | Number (optional) | Page number, starting at 1 |
| pageSize | Number (optional) | Items per page (default 25, max 100) |
Each trip in the response includes its name, code, slug, departure date, trip length, duration options, tags, category, series, product count, and deposit settings.
Get Trip Details
Retrieve complete information for a single trip, including all product groups, individual products with pricing, variants, capacity, and availability. This gives an external system everything it needs to display a booking interface.
Get Field Requirements
Retrieve the data fields required for clients and participants when booking a specific trip. Each field is marked as required or optional. If the trip has custom field overrides, those take precedence over workspace defaults.
This endpoint helps external booking forms collect the right information before submitting an order.
Check Availability
Submit a participant combination (adults, children, infants) and product selections to validate availability and get a price calculation. The response includes:
| Field | Description |
|---|---|
| Valid | Whether the booking is still available (checks capacity and booking cutoff) |
| Error message | Reason if the booking is not valid |
| Total price | Calculated total for the selected products and participants |
| Price per participant | Average price per person |
| Deposit amount | Required deposit if deposits are enabled |
| Line items | Per-product price breakdown |
Use this before creating an order to show customers accurate pricing and confirm availability.
Orders
Create Order
Submit a complete order with client details, participants, and product selections. Itsy processes the order end-to-end:
- Client matching — If a client with the same email exists, the existing record is used. Otherwise, a new client is created.
- Participant creation — All travelers are added to the order with their details.
- Pricing calculation — Product prices are calculated based on rate types, participant counts, and any promo codes.
- Payment setup — If a payment provider is configured, a payment link or form data is generated for the selected payment intention (full payment or deposit).
- Confirmation email — An order confirmation email is automatically sent to the client.
- Event publishing — Events are published for any configured actions (e.g., triggers on external order creation).
The response includes the order ID, order code, pricing, payment status, and — if applicable — a payment URL or form data that you redirect the customer to for payment.
What you send:
| Field | Description |
|---|---|
| Trip | The trip to book |
| Participants | Number of adults, children, and infants |
| Products | Selected products and optional variants |
| Client | First name, last name, email, and optional phone |
| Participant details | Name, type, and optional fields (email, passport, nationality, etc.) |
| Promo code | Optional discount code |
| Payment intention | Pay in full or pay deposit |
Get Order
Retrieve the current status of an order created through the API, including order code, pricing, payment status, and key dates.
Rate Limiting
Each API key has a configured rate limit (requests per minute). Requests exceeding the limit receive an error response. You can adjust the rate limit from the API Keys settings page.
What the API Can and Cannot Do
Can do:
- Browse and filter trips
- Retrieve full product and pricing details
- Check real-time availability and pricing
- Retrieve field requirements for booking forms
- Create orders with automatic payment processing
- Track order status
Cannot do:
- Modify existing orders, trips, or products
- Access customer payment details
- Access data from other workspaces
- Bypass rate limits
How It Connects
- API Keys — Each API key grants access to one workspace's API with a configured rate limit and environment.
- Trips — The API exposes your trips, products, and pricing for external consumption.
- Orders — Orders created through the API appear in your admin interface like any other order, with the origin marked as "Workspace API". Each order tracks which API key created it for auditing purposes.
- Actions — Order creation triggers configured actions, so automations work the same for API-created orders.
- Payment Providers — The API generates payment links using your configured payment provider (Stripe, Rapyd, Teya, or Valitor).
- Tags — External systems can filter trips by tags to build themed or filtered booking experiences.