Connect your own systems to Samba with the API
The Samba API gives your developer read access to your workspace: experiences, departures, bookings, customers, payments and more. Use it to sync sales into a CRM or a spreadsheet, or to show your catalog and live availability on your own website.
Your whole workspace
Experiences, departures, bookings, customers, transactions, invoices and traveler forms, all behind one key.
Keys you control
Owners and Admins create keys under Settings → API keys, see when each was last used, and revoke any of them.
Standard and documented
An OpenAPI document, request samples in curl, JavaScript, Python and PHP, and one-click import into Postman.
What can you read?
Your workspace settings, experiences, and departures with the seats left on each. Bookings, booking requests and cancellation requests. Customers. Transactions, installments and invoices, with each invoice as a PDF. Traveler forms and the answers travelers sent. Discount codes, gift cards, and the resources a departure uses, like a van or a boat.
Money comes as an integer in minor units with its currency, so 12000 in EUR is €120.00. Timestamps are in UTC, and departures also return your workspace timezone. Translated text comes back in your default language, or in any language you have enabled.
What do operators build with it?
A nightly job that copies new bookings and customers into a CRM, so sales follow up without anyone exporting a file. A spreadsheet that totals revenue by trip and by month for the accountant. A page on your own website that lists the next departures with live seats and prices, for a design the booking widgets do not cover.
How does a CRM sync work?
Read /bookings with updated_since set to the last time the job ran. Each booking carries its customer, its participants, its add-ons and its payments, and its updated_at moves whenever any of those change, so one list catches new bookings, edits and payments alike. Copy the customers you need from /customers, keyed on their Samba id, and the CRM always points back to the right person.
How do I show live availability on my own site?
Read /departures for a date window with starts_after and starts_before. Each departure returns its seats remaining, whether it is bookable, and its price range. Those change on their own as checkout holds expire and booking cutoffs pass, so re-read the window every few minutes rather than relying on updated_since, and send travelers to Samba’s checkout to book.
Can it change anything?
The API reads data. It does not create bookings, change departures or move money. A key gives read access to the whole workspace, including traveler forms that can hold passport numbers and health details, so keep it on a server, never in a browser or an app, and share it only with people you trust.
What are the limits?
Each key can make 120 requests per minute. Every response tells you how many you have left, and a request over the limit gets a 429 with a Retry-After header. Errors share one shape, with a status, a code and a plain message.
API or AI connector?
The API is for your developer and the tools they connect. If you want answers in Claude or ChatGPT without writing code, use Samba MCP instead: you paste one URL into your AI assistant and sign in to Samba, with no key to copy.
How connecting works
No setup fee and nothing to install. Your developer needs a key and the docs.
- 1
Create a key
In Samba, open Settings → API keys and create one. Copy it right away: it is only shown once.
- 2
Hand it to your developer
Share the key and the API docs with whoever builds the connection. They need nothing else from you.
- 3
Sync what you need
Bookings, customers and departures flow into your CRM, spreadsheet or website on the schedule you choose.
Frequently asked questions
Is the API included in my plan?
Yes. Every Samba workspace can create API keys at no extra cost.
Who can create an API key?
Workspace Owners and Admins, under Settings → API keys. The full key is shown once, when you create it.
Can the API create or change bookings?
Not today. The API is read-only: it returns the same data you see in Samba.
Is there an OpenAPI document?
Yes, at https://api-docs.sambahq.com/openapi.json. Import it into Postman or Insomnia and set your key as a Bearer token to explore every endpoint.
How do I keep a copy of my data in sync?
Store the latest updated_at you have seen and pass it as updated_since on the next run. For seats left and prices, re-read a window of departures instead: those change with time, not only with edits.
Can I get the data in another language?
Yes. Translated text comes back in your default language. Pass lang with any language enabled in your workspace, for example ?lang=fr, to read it in that one.
What happens if a key leaks?
Revoke it under Settings → API keys. Anything using it stops working immediately, so create a replacement first if a sync depends on it.