Integration

Xola integration

Xola is booking software for tour and activity operators. Manage experiences (bookable products) with their schedules, opening hours, fees and questionnaires, read availability (timeslots and upcoming dates), run events (departures) with guides, notes and roster emails, list, create and update purchases (bookings) with tags, notes and payment reminders, work waitlists and abandoned purchases, manage guides, resources, blackout schedules, coupons and codes, gift offers, message templates and conversations, message customers, and read customers, transactions, waivers, forms, packages, memberships, affiliates and gratuities. Bookings, customers, conversations and waivers are personal data. Left out: seller account, API key, permission, preference and payment-gateway settings, media and file uploads, payments and refunds on purchases, purchase rules, booking buttons, catalog items, units, wares, reports and the CSV or Excel exports. Authentication is a Xola API key sent in the X-API-KEY header, and every call pins API version 2025-07-07. Calls go to the production host; the sandbox is not reachable.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Xola.Built from the 131 Xola tools below, on the connection you add once.

What you can do with Xola

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Note, 10 operations

  • create_customer_noteCreate customer notePOSTAdd a note to a customer (traveler) on the given seller account.
  • create_event_noteCreate event notePOSTAdd a note to an event. When the event belongs to a group, the note is attached to the primary event of the group. Requires the `EDIT_EVENT_NOTES` permission on the event.
  • create_purchase_noteCreate purchase notePOSTAdd a note to a purchase (order). Requires the `CREATE_PURCHASE_NOTES` permission on the purchase.
  • create_waitlist_noteCreate waitlist notePOSTAdd a note to a waitlist entry. The waitlist entry may be a waitlist purchase or a waitlist order. Requires the `CREATE_WAITLIST_PURCHASE_NOTES` permission for waitlist purchases, or the `CREATE_ORDER_NOTES` permission for waitlist orders.
  • delete_customer_noteDelete customer noteDELETEDelete a customer note. System-generated notes cannot be removed and return a `403` response.
  • delete_event_noteDelete event noteDELETEDelete an event note. Requires the `EDIT_EVENT_NOTES` permission on the event.
  • delete_purchase_noteDelete purchase noteDELETEDelete a purchase note. Requires the `DELETE_PURCHASE_NOTES` permission on the purchase.
  • delete_waitlist_noteDelete waitlist noteDELETEDelete a waitlist note. Requires the `DELETE_WAITLIST_PURCHASE_NOTES` permission for waitlist purchases, or the `DELETE_ORDER_NOTES` permission for waitlist orders.
  • update_customer_noteUpdate customer notePUTUpdate the text of an existing customer note. System-generated notes cannot be edited and return a `403` response.
  • update_event_noteUpdate event notePUTUpdate the text of an existing event note. Requires the `EDIT_EVENT_NOTES` permission on the event.

Guide, 9 operations

  • add_event_guideAdd event guidePOSTAdd a guide to an event. Only users with guide management permissions can add guides to events. The system will check for guide availability conflicts with other events.
  • create_guideCreate guidePOSTCreate a new guide for a seller. Can create a guide for an existing user or create a new user account.
  • delete_guideDelete guideDELETEDelete a guide. The guide cannot be deleted if they are assigned to future events.
  • get_guideGet guideGETGet detailed information about a specific guide.
  • list_event_guidesList event guidesGETGet all guides currently assigned to an event. Returns basic guide information for each assigned guide.
  • list_guidesList guidesGETRetrieve a paginated list of guides belonging to a specific seller. Supports filtering by availability for events.
  • remove_event_guideRemove event guideDELETERemove a guide from an event. This will unassign the guide from the specified event.
  • update_event_guideUpdate event guidePUTUpdate an event guide assignment. Supports updating the guide's status (e.g., to confirm or decline). The authenticated user must be the guide themselves.
  • update_guideUpdate guidePUTUpdate information for an existing guide.

Schedule, 7 operations

  • create_experience_scheduleCreate experience schedulePOSTCreate schedules for an Experience. This allows you to build activity schedules that define when your trip departs. Combining schedules also allows for dynamic pricing that adjusts based on time or day.
  • create_guide_scheduleCreate guide schedulePOSTAdd a new availability schedule to a guide. Guide schedules define when guides are available for assignments. Required fields: `type`, `days`, `start`
  • create_resource_scheduleCreate resource schedulePOSTAdd a new schedule to a resource. Resource schedules define when equipment or resources are available for use. Use the `force` query parameter to force creation even if there are conflicts.
  • delete_experience_scheduleDelete experience scheduleDELETEDelete a schedule from an experience. This will remove all future occurrences of the schedule.
  • delete_guide_scheduleDelete guide scheduleDELETEDelete a schedule from a guide. Use the `force` query parameter to force deletion even if there are conflicts.
  • delete_resource_scheduleDelete resource scheduleDELETEDelete a schedule from a resource. Use the `force` query parameter to force deletion even if there are conflicts.
  • update_experience_scheduleUpdate experience schedulePUTUpdate an existing schedule for an experience. All schedule properties can be modified.

Resource, 6 operations

  • assign_resource_to_experienceAssign resource to experiencePOSTAssigns a pre-existing resource (inventory item) to an experience. Resources are fixed assets that can be utilized across multiple experiences. You must have the Inventory feature enabled for this endpoint to work.
  • create_resourceCreate resourcePOSTCreate a new resource (equipment or guide). The resource will be automatically associated with the authenticated user's seller account unless a different seller is specified.
  • delete_resourceDelete resourceDELETESoft delete a resource by setting the deletedAt timestamp. Resources that are associated with experiences cannot be deleted and will return a conflict error.
  • get_resourceGet resourceGETRetrieve detailed information about a specific resource
  • list_resourcesList resourcesGETRetrieve a paginated list of resources.
  • unassign_resource_from_experienceUnassign resource from experienceDELETERemove the assignment of a resource (inventory item) from an experience. This will also remove the resource from all existing events for this experience.

Code, 5 operations

  • create_coupon_codesCreate coupon codesPOSTCreate one or more coupon codes for a specific coupon. You must have EDIT_COUPON permission.
  • get_coupon_codeGet coupon codeGETRetrieve details of a specific coupon code. You must have VIEW_COUPON permission.
  • list_coupon_codesList coupon codesGETReturns a paginated list of coupon codes associated with a specific coupon. You must have VIEW_COUPON permission for the parent coupon.
  • lookup_coupon_codeLookup coupon codeGETResolve a customer-entered coupon code to the coupon it belongs to, scoped to a seller.
  • update_coupon_codeUpdate coupon codePUTUpdate a specific coupon code. You must have EDIT_COUPON permission. Restrictions: - Cannot change code if it has been used - Cannot change to/from the special 'iin-discount' code - Status can only be set to void (400)

Coupon, 5 operations

  • create_couponCreate couponPOSTCreate a new coupon with purchase rules and optional initial coupon codes.
  • delete_couponDelete couponDELETESoft delete a coupon by setting the deletedAt timestamp. You must have EDIT_COUPON permission. Note: This does not immediately void associated coupon codes.
  • get_couponGet couponGETRetrieve a specific coupon by its ID. To retrieve a coupon, you must have VIEW_COUPON permission. The response includes complete coupon details including associated purchase rules (when expanded).
  • list_couponsList couponsGETGet all coupons based on filters. This endpoint will NOT return coupon codes but it will return total uses for all codes in this coupon. To retrieve coupons, either the `seller` or `experience` must be specified as a filter.
  • update_couponUpdate couponPUTUpdate an existing coupon's properties. You must have EDIT_COUPON permission. Note: Some fields like purchase rules may have restrictions on updates depending on usage.

Event, 5 operations

  • create_eventCreate eventPOSTCreate a new event (trip) for an experience. A trip represents a collection of bookings for one experience that departs at the same time.
  • delete_eventDelete eventDELETEDelete a manual type event which has no orders. Only events that were manually created and have no associated bookings can be deleted.
  • get_eventGet eventGETReturns one event (a departure of an experience): start and end, capacity, open seats, booking counts, guides and notes.
  • list_eventsList eventsGETLists events (departures: the bookings of one experience leaving at one time) with capacity, open seats and guides. Filter by seller, experience, guide, open capacity or a date range in Unix seconds.
  • update_eventUpdate eventPATCHOverrides an event's maximum capacity (the experience's configured capacity otherwise applies), or reopens a closed event as manual.

Experience, 5 operations

  • create_experienceCreate experiencePOSTCreate a new experience for the authenticated seller account.
  • delete_experienceDelete experienceDELETEDelete an experience. This is typically a soft delete operation.
  • get_experienceGet experienceGETRetrieve detailed information about a specific experience.
  • list_experiencesList experiencesGETRetrieve a paginated list of experiences. This endpoint supports various filtering and search options.
  • update_experienceUpdate experiencePUTUpdate an existing experience. Only the provided fields will be updated; other fields remain unchanged.

Gift offer, 5 operations

  • create_gift_offerCreate gift offerPOSTCreate a new gift offer for a seller
  • delete_gift_offerDelete gift offerDELETESoft delete a gift offer (sets deletedAt timestamp)
  • get_gift_offerGet gift offerGETRetrieve a gift offer by its ID
  • list_gift_offersList gift offersGETRetrieve all gift offers with optional filtering and pagination
  • update_gift_offerUpdate gift offerPUTUpdate an existing gift offer

Message template, 4 operations

  • create_message_templateCreate message templatePOSTCreates a new message template for the specified seller. A message template must include at least one message channel (email and/or SMS). You can specify channels using either the `email`/`sms` properties or the `channels` array.
  • delete_message_templateDelete message templateDELETESoft-deletes a message template by setting the `deletedAt` timestamp. The template will no longer appear in regular API responses but can still be retrieved using the `deletedAt[exists]=true` filter parameter.
  • get_message_templateGet message templateGETRetrieves a specific message template by ID
  • list_message_templatesList message templatesGETRetrieves a list of message templates for the authenticated user's accessible sellers. Results can be filtered by seller and the existence of specific message channels (email or SMS). Supports pagination and sorting.

Purchase, 4 operations

  • create_purchaseCreate purchasePOSTCreates a purchase (booking) for one or more experience items with the customer's name and email. Set dryRun to true to validate and price it without saving.
  • delete_purchaseDelete purchaseDELETERelease or rollback a purchase that is in HOLD status. This operation is only allowed for purchases with STATUS_HOLD. It effectively cancels the purchase and releases any inventory holds or temporary reservations.
  • get_purchaseGet purchaseGETReturns one purchase (booking): customer name, email and phone, amounts, balance, status, items and line items. Use expand to embed items, travelers, the organizer, the conversation or the payment breakdown.
  • list_purchasesList purchasesGETLists purchases (bookings) with customer name and email, amounts, balance and status. Filter by seller, organizer, status, product, creation or update date, or search text; paginated with limit and offset.

Tag, 4 operations

  • add_purchase_tagAdd purchase tagPOSTAdd a tag to a purchase. Authorization: - Requires the import-orders permission, or the Reservationist, Reservationist Lite, or Administrator role on the purchase's seller account.
  • add_waitlist_tagAdd waitlist tagPOSTAdd a tag to a waitlist. The waitlist entry may be a waitlist purchase or a waitlist order, and the required permission differs accordingly.
  • remove_purchase_tagRemove purchase tagDELETERemove a tag from a purchase. System-generated tags (e.g. `Auto accept`, `Waitlist`, `Import`) cannot be removed and return a `403` response.
  • remove_waitlist_tagRemove waitlist tagDELETERemove a tag from a waitlist. System-generated tags cannot be removed and return a `403` response. Requires the `DELETE_WAITLIST_PURCHASE_TAGS` permission for waitlist purchases, or the `EDIT_ORDER_TAGS` permission for waitlist orders.

Abandoned purchase, 3 operations

  • get_abandoned_purchaseGet abandoned purchaseGETFetches a specific abandoned purchase by its unique identifier. This endpoint provides detailed information about an abandoned purchase, including all items, customer information, and associated reminders.
  • list_abandoned_purchasesList abandoned purchasesGETFetches a paginated list of abandoned purchases for the authenticated seller. Abandoned purchases are draft purchases that customers started but didn't complete. They're automatically filtered to exclude soft-deleted purchases.
  • update_abandoned_purchaseUpdate abandoned purchasePATCHUpdates specific properties of an abandoned purchase. This endpoint supports updating the status of individual purchase items, particularly for marking items as "emailed" or "dismissed" for tracking recovery campaign effectiveness.

Blackout, 3 operations

  • create_user_blackout_scheduleCreate user blackout schedulePOSTCreate a new blackout schedule for a user. This is the primary endpoint. Blackout schedules automatically set the type to 'unavailable' and affect all user experiences.
  • delete_user_blackout_scheduleDelete user blackout scheduleDELETEDelete an existing blackout schedule for a user. This will remove the blackout and make previously blocked times available again according to other schedules.
  • list_user_blackoutsList user blackoutsGETRetrieve all blackout schedules for a specific user. Blackout schedules define periods when experiences are unavailable.

Conversation, 3 operations

  • create_conversationCreate conversationPOSTCreate a new conversation for a specific purchase. The conversation will automatically include participants based on the purchase (seller and traveler/organizer).
  • get_conversationGet conversationGETGet detailed information about a specific conversation including all messages and participants.
  • list_conversationsList conversationsGETRetrieve a paginated list of conversations

Opening hour, 3 operations

  • create_experience_opening_hourCreate experience opening hourPOSTAdd a new opening-hours schedule to an experience. Opening-hours schedules define the days and time windows during which an experience is open for walk-in or pre_opening_end cutoff enforcement.
  • delete_experience_opening_hourDelete experience opening hourDELETERemove an opening-hours schedule from an experience. Permission required: `EDIT_EXPERIENCE_OPENING_SCHEDULES`
  • update_experience_opening_hourUpdate experience opening hourPUTUpdate an existing opening-hours schedule on an experience.

Waitlist, 3 operations

  • create_waitlistCreate waitlistPOSTCreate a waitlist for an experience. A waitlist accepts exactly one item referencing an experience and the requested arrival date/time.
  • get_waitlistGet waitlistGETRetrieve a single waitlist by its ID. Requires the `VIEW_PURCHASE` permission on the waitlist.
  • list_waitlistsList waitlistsGETRetrieve a paginated list of waitlists. The `seller` query parameter is required. When a `search` term is provided together with `seller`, results are served from Elasticsearch; otherwise they are read directly from the database.

Affiliate, 2 operations

  • get_affiliateGet affiliateGETRetrieve a specific affiliate by ID.
  • list_affiliatesList affiliatesGETRetrieve a list of affiliates. Access is controlled based on authentication and authorization.

Form, 2 operations

  • get_formGet formGETGet detailed information about a specific form by its ID
  • list_formsList formsGETRetrieve a paginated list of forms.

Gratuity, 2 operations

  • get_gratuityGet gratuityGETRetrieve a single gratuity by its ID. Access is limited to the gratuity's seller, seller delegates, and administrators.
  • list_gratuitiesList gratuitiesGETRetrieve a paginated list of gratuities.

Membership, 2 operations

  • get_membershipGet membershipGETRetrieve a single membership by its ID.
  • list_membershipsList membershipsGETRetrieve a paginated list of memberships for a seller. Deleted memberships are excluded. The endpoint is publicly accessible when a `seller` filter is provided; unauthenticated requests without a `seller` parameter are rejected.

Message, 2 operations

  • send_conversation_messageSend conversation messagePOSTCreates a new message within an existing conversation.
  • send_customer_messagesSend customer messagesPOSTSends email and/or SMS messages to the customers of the purchases matched by filters (an order, purchase, event or date), from a message template or inline content. Set dryRun to true to preview without sending.

Package, 2 operations

  • get_packageGet packageGETRetrieve a single package by its ID.
  • list_packagesList packagesGETRetrieve a paginated list of packages for a seller. The `seller` query parameter is required.

Purchase item, 2 operations

  • get_purchase_itemGet purchase itemGETRetrieve a specific purchase item by its ID. Supports expanding related objects. Access control: - Sellers can view purchase items for their products - Travelers can view their own purchase items
  • list_purchase_itemsList purchase itemsGETLists purchase items (one booked experience per item, with arrival date, quantity, guests and status) for a seller, filterable by product, arrival date or event; paginated with limit and offset.

Question, 2 operations

  • list_experience_questionsList experience questionsGETRetrieve the questionnaire form that applies to a specific experience. The system will first look for an experience-specific form, and if none exists, it will fall back to the seller's global questionnaire.
  • list_purchase_item_questionsList purchase item questionsGETRetrieve the questionnaire that applies to a specific item within a purchase. This is useful for purchases with multiple items that may have different questionnaires.

Seller, 2 operations

  • get_sellerGet sellerGETRetrieves detailed information about a specific seller (operator) account. Some fields appear only for admins or for users holding delegate permissions on the seller.
  • list_sellersList sellersGETSearches and retrieves a list of sellers based on various filters. Supports different contexts like agent view, Google Reserve, and partner search. Results are paginated and can be filtered by various criteria.

Transaction, 2 operations

  • get_transactionGet transactionGETRetrieve a single transaction by its ID. The response includes the complete transaction details with all available fields. Authorization rules are applied to ensure users can only access transactions they have permission to view.
  • list_transactionsList transactionsGETRetrieve a paginated list of transactions. Transactions track all movement of money in Xola, including customer payments, seller payouts, refunds, and adjustments. Transactions are returned in descending order of creation date by default.

User, 2 operations

  • get_userGet userGETReturns details about a specific user account. Private Access: With the `private=true` parameter, private data is returned based on authorization level. The `seller` parameter is required when requesting private data.
  • list_usersList usersGETRetrieve a paginated list of users. When a `seller` parameter is provided, only travelers (customers) for that seller are returned and additional traveler-specific filter parameters become available.

Waiver, 2 operations

  • get_waiverGet waiverGETFetch details for an individual waiver
  • list_waiversList waiversGETFetch a list of waivers. By default, only returns waivers that are not linked to any purchases. If the seller has multi-link day interval configured, waivers created within that interval are included regardless of their link status.

Coupon code, 1 operation

  • search_coupon_codesSearch coupon codesGETSearch for coupon codes across all coupons. This is a utility endpoint for code lookup. Results depend on user permissions and seller access.

Email, 1 operation

  • get_emailGet emailGETGet a sent email by its ID, including its body.

Fee, 1 operation

  • list_experience_feesList experience feesGETReturns the fees that are applicable to this experience, including processing fees, service fees, and any other charges that may apply to bookings.

Job, 1 operation

  • get_jobGet jobGETRetrieve the status and details of an asynchronous job. Jobs are created by async operations such as CSV purchase imports, dispute evidence exports, and catalog item exports.

Me, 1 operation

  • get_current_userGet current userGETReturns the profile of the user the API key belongs to: id, name, email, phone, roles and enabled state.

Payment reminder, 1 operation

  • send_payment_reminderSend payment reminderPOSTCreates or updates a payment reminder on a purchase and at once emails the invoice or balance-due notice to the traveler; it also schedules follow-ups and any auto-charge. Not idempotent: every call sends again.

Resend, 1 operation

  • resend_emailResend emailPOSTSend a previously sent email again, unchanged, to its original recipients. The resend is recorded as a new email message in the conversation of the purchase the email was sent for, with `meta.resentBy` set to the requesting user.

Roster, 1 operation

  • send_event_roster_emailSend event roster emailGETSend the trip roster to the seller and any assigned guides through email. This action triggers email delivery of the event participant list.

Summary, 1 operation

  • get_transaction_summaryGet transaction summaryGETRetrieve aggregated transaction summary data calculated through database aggregation. Provides totals, averages, and breakdowns by transaction type and payment method. Supports the same filtering parameters as the transaction list endpoint.

Timeslot, 1 operation

  • list_timeslotsList timeslotsGETRetrieve available timeslots for experiences. This is a public endpoint that provides detailed schedule information including available time slots, capacity, pricing, and additional data based on included fields.

Upcoming, 1 operation

  • list_experience_upcoming_datesList experience upcoming datesGETGet a list of future dates that have availability for the given experience.

Waiver template, 1 operation

  • list_waiver_templatesList waiver templatesGETReturns available waiver templates from configured waiver plugins. Templates represent the blank waiver forms that can be used to create new waivers. This endpoint is used to discover available waiver types for a seller.

Showing the first 120 of 131 endpoints. The rest are in the product, searchable from the workflow builder and from chat.

Use Xola from Claude Code, Cursor or Codex

Connect Xola in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Xola operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Xola

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Xola once

    Add your Xola connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Xola integration FAQ

What can you do with the Xola integration?

LiveContext exposes 131 operations on Xola, covering note, guide, schedule and resource.

Popular integrations

Browse the whole catalog