Itsy Docs
Settings

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.

ParameterTypeDescription
departingFromDate (optional)Only trips departing on or after this date
departingToDate (optional)Only trips departing on or before this date
tagsText (optional)Comma-separated tag names to filter by
pageNumber (optional)Page number, starting at 1
pageSizeNumber (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:

FieldDescription
ValidWhether the booking is still available (checks capacity and booking cutoff)
Error messageReason if the booking is not valid
Total priceCalculated total for the selected products and participants
Price per participantAverage price per person
Deposit amountRequired deposit if deposits are enabled
Line itemsPer-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:

  1. Client matching — If a client with the same email exists, the existing record is used. Otherwise, a new client is created.
  2. Participant creation — All travelers are added to the order with their details.
  3. Pricing calculation — Product prices are calculated based on rate types, participant counts, and any promo codes.
  4. 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).
  5. Confirmation email — An order confirmation email is automatically sent to the client.
  6. 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:

FieldDescription
TripThe trip to book
ParticipantsNumber of adults, children, and infants
ProductsSelected products and optional variants
ClientFirst name, last name, email, and optional phone
Participant detailsName, type, and optional fields (email, passport, nationality, etc.)
Promo codeOptional discount code
Payment intentionPay 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.

On this page