Get started as a developer
What you can build on Travel Orbit, where each API lives, how it decides who you are, and your first request.
Tutorial3 min read
Travel Orbit holds an organisation's trips, departures, prices and bookings. Your team runs them in the app; your website reads them and takes bookings through the APIs below. Payments go from the traveller's browser straight to the organisation's own Stripe account, never through your server or ours.
What you can build
/quote in the booking API, or the quote query in GraphQL/bookings in the booking API, with Stripe's Payment Element| You want to | Use |
|---|---|
| Show trips, departures, guides and destinations with live prices and places | The booking API (REST) or GraphQL |
| Price a booking as the traveller chooses | POST/quote in the booking API, or the quote query in GraphQL |
| Take bookings on your own website | POST/bookings in the booking API, with Stripe's Payment Element |
| Give travellers an account on your website | The portal endpoints in the booking API |
| Preview draft trips on a staging site | An API key that reads drafts, from your server |
| Let an AI assistant work with trips and bookings | The MCP server |
| Try requests with your own data | The API playground |
If the website is built in CMS Orbit, editors can put trips on pages without code: see Show your trips on your website. The organisation's hosted booking pages at https://app.bifrostorbit.com/travel/book/{booking name} need no code either.
Addresses
https://app.bifrostorbit.com/travel/api/public/{booking name}https://app.bifrostorbit.com/travel/api/cdn/graphqlhttps://app.bifrostorbit.com/travel/mcp| What | Address |
|---|---|
| Booking API | https://app.bifrostorbit.com/travel/api/public/{booking name} |
| GraphQL | https://app.bifrostorbit.com/travel/api/cdn/graphql |
| MCP server | https://app.bifrostorbit.com/travel/mcp |
The booking name is set under Booking settings, such as northwilds. It is the same name as in the hosted booking pages' address.
Who you are
- Reading trips, departures, guides and destinations needs no key. It returns only what the booking pages show anyway.
- Quotes and bookings need no key either. From a browser, only the websites listed under Allowed websites in Booking settings may call them; a call from your server, without an
Originheader, always may. - API keys are optional. A key that starts with
trv_pk_counts your requests; one that starts withtrv_sk_also reads draft trips and works only from a server. Admins create them under API keys. - The MCP server signs in with OAuth as a person on the team, with that person's role.
Your first request
List Northwilds' trips in Norway, in Norwegian:
curl 'https://app.bifrostorbit.com/travel/api/public/northwilds/trips?country=NO&locale=nb'{ "data": [ { "id": "6650f1c2a9e4b3d2c1f0e9b1", "slug": "lofoten-ridge-walk", "name": "Eggevandring i Lofoten", "currency": "EUR", "priceFrom": 124000, "nextDeparture": "2027-06-14", "departures": [{ "id": "6650f1c2a9e4b3d2c1f0ea07", "startDate": "2027-06-14", "status": "open", "seatsLeft": 6 }], "locale": "nb", "fallback": [] } ]}The answer is shortened. Amounts are whole minor units: 124000 with EUR is €1,240.00.
The same in GraphQL, from a browser:
const response = await fetch("https://app.bifrostorbit.com/travel/api/cdn/graphql?organisation=northwilds", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ query: '{ trips(country: "NO", locale: "nb") { slug name priceFrom currency nextDeparture } }' }),});const { data } = await response.json();From here
- Open API playground under Developers in the sidebar and run Trips with your own data.
- Read the booking API for every field, the booking flow and the traveller account.
- Add your website to Allowed websites before you call quotes or bookings from the browser.
- When something answers with an error, look it up in Troubleshooting.
Travel Orbit records what happens to trips, departures, bookings and payments as events in Orbit Exchange. It doesn't send webhooks to your own systems, and there is no Travel Orbit SDK: the APIs are plain HTTP and JSON.
Was this page helpful?