The interactive reference renders the machine-readable OpenAPI contract with a built-in "Try it" console. It covers every operation, request and response schema, status code, and authentication requirement.
Base URL: https://ari.console.adrasis.com/api/v1. Authentication uses OAuth
2.0 client credentials to obtain a Bearer token; see
Authentication.
Profile-scoped operations use the stable Default profile when
X-Adrasis-Partner-Profile-Id is omitted and return the exact resolved identity
in X-Adrasis-Resolved-Partner-Profile-Id. Opaque cursors and proofs restore
the profile they sealed. GET /bookings is account-wide instead and uses the
optional profile_public_id query parameter only as an originating-profile
reporting filter.
Authentication
POST/oauth/tokenExchange client credentials for an access token
Availability & rates
On an initial availability request, a client-supplied request_time may be at
most 30 days behind or 60 seconds ahead of the server clock; both boundaries
are inclusive. A value outside the inclusive
[server_time - 30 days, server_time + 60 seconds] window returns a top-level
400 INVALID_REQUEST with field=request_time. It never appears as an inline
per-property error_code.
For the first POST /places/availability page, omit request_time to use the
server clock. Its opaque cursor preserves that resolved instant, so a
continuation may omit request_time as well; if it is supplied, it must equal
the first response. A valid cursor-carried fixed instant remains usable until
the cursor expires, even if the server clock crosses the initial 30-day lower
boundary during the walk. Do not derive it from the HTTP Date header.
POST /properties/availability takes 1..200 properties. Its optional
max_offers_per_property (1, 10 or any count up to 250, or "all" for
every offer) adds offers to each result, the cheapest
first, each one room type and one rate plan for every requested room; a request
without it is answered exactly as before. See
Offers per property.
Its optional include adds each slot's cancellation_quote, each allocation's
selectable_quantity (rooms left) or both, and a request without it is answered
exactly as before as well. See
Cancellation terms and rooms left.
POST/availability/checkCheck availability for a single room/rate/date tuple
Property content
GET/propertiesPrice-free Channel Portfolio lookup with an optional place filter
GET/properties/{public_id}Full property content document
Reference & discovery
GET/countriesList canonical country identities and localized names
GET/reference/categoriesList property, room, or bed type references
GET/reference/attributesList stable amenity and feature definitions
GET/reference/place-typesDescribe canonical place kinds for one country
GET/reference/currenciesList the currencies a search can be priced in
GET/placesDiscover the canonical destination hierarchy
GET/places/{place_id}Resolve one canonical place identity
GET/service-zonesDiscover tenant service-zone identities
GET/service-zones/{public_id}Resolve one tenant service zone
GET/transfer-vehicle-typesDiscover private-transfer vehicle identities
GET/transfer-vehicle-types/{public_id}Resolve one tenant transfer vehicle type
GET/toursDiscover tenant tour and modality identities
GET/tours/{public_id}Get one tenant tour catalog document
GET/flightsDiscover tenant charter flight identities
GET/flights/{public_id}Get one tenant flight catalog document
GET/catalog/changesIncrementally synchronize a profile's Channel Portfolio
Booking
POST/prebookPin an allocation into a short-lived prebook token
POST/bookFinalize a prebook into a stored booking
GET/bookingsReconcile bookings by partner reference or bounded time window
GET/bookings/{public_id}Fetch a booking by public_id
PATCH/bookings/{public_id}Safely amend booking contact details
POST/bookings/{public_id}/cancellation-quotePreview the cancellation penalty for a booking
POST/bookings/{public_id}/cancelCancel a booking
Booking webhooks
See Booking webhooks before enabling delivery.
GET/webhook-endpointsList account-owned webhook endpoints
POST/webhook-endpointsRegister an endpoint and disclose its signing secret once
GET/webhook-endpoints/{public_id}Read one account-owned endpoint
PATCH/webhook-endpoints/{public_id}Change URL, description, or disabled state
DELETE/webhook-endpoints/{public_id}Soft-delete an endpoint and stop pending delivery
PUT/webhook-endpoints/{public_id}/subscriptionsReplace the complete endpoint subscription set
POST/webhook-endpoints/{public_id}/rotate-secretMint and disclose the next signing secret once
POST/webhook-endpoints/{public_id}/verifyEnqueue a signed endpoint verification probe
POST/webhook-endpoints/{public_id}/testEnqueue a signed non-booking test event
GET/webhook-endpoints/{public_id}/deliveriesInspect delivery and attempt outcomes
Transfers
POST/transfer/searchSearch transfer offers for a route + date + party
POST/transfer/prebookRe-quote a transfer offer into a short-lived prebook token
POST/transfer/bookFinalize a transfer prebook token into a booking
Tours
POST/tour/searchSearch tour offers for a tour + departure date + party
POST/tour/prebookRe-quote a tour offer into a short-lived prebook token
POST/tour/bookFinalize a tour prebook token into a booking
Flights
POST/flight/searchSearch a charter-flight offer for a flight + departure date + typed party
POST/flight/prebookRe-quote a flight offer into a short-lived prebook token
POST/flight/bookFinalize a flight prebook token into a booking
Packages
POST/package/searchCompose selected product offers into one atomic package offer
POST/package/prebookRequote every package component and return a signed package token
POST/package/bookAtomically finalize the package booking
A package is read and cancelled through the canonical booking operations above:
/bookings/{public_id}, /bookings/{public_id}/cancellation-quote and
/bookings/{public_id}/cancel. The last two accept an optional
item_public_ids[] to target individual services.
Trip bundling
POST/tripCreate a trip grouping over independently-confirmed bookings (R11)
GET/trip/{public_id}Read a trip with its members + combined totals
POST/trip/{public_id}/membersLink one more booking into a trip
DELETE/trip/{public_id}/members/{booking_public_id}Unlink a booking from a trip (non-destructive)
POST/trip/{public_id}/cancelCancel every member of a trip (each honours its own policy)
Generate a client
The contract is a standard OpenAPI 3.0 document, so you can generate a typed
client in your language of choice instead of hand-writing HTTP calls. The
specification is published at
https://docs.adrasis.com/developer/openapi/partner-api.yaml
(also downloadable from the interactive reference above).
openapi-generator (Java, Python, Go, C#, and more):
# Install once (requires a JRE)
npm install -g @openapitools/openapi-generator-cli
# Generate, e.g., a TypeScript client
openapi-generator-cli generate \
-i https://docs.adrasis.com/developer/openapi/partner-api.yaml \
-g typescript-fetch \
-o ./adrasis-distribution-client
Swap -g typescript-fetch for python, go, csharp, etc. to target another
language.
openapi-typescript (TypeScript types only; pairs well with a fetch
wrapper):
npm install -D openapi-typescript
npx openapi-typescript https://docs.adrasis.com/developer/openapi/partner-api.yaml -o ./distribution-api.d.ts
Building an AI agent? See AI agent integration (MCP). The
published site also serves an LLM-readable index at /llms.txt.