> For the complete documentation index, see [llms.txt](https://adrasis.gitbook.io/developer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adrasis.gitbook.io/developer/api-reference.md).

# API reference

Interactive OpenAPI specification and client-generation quickstart for the Distribution Partner API.

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](/developer/authentication.md).

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.

## 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.

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/properties/availability" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/places/availability" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/properties/{property\_public\_id}/offers/search" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/availability/check" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Property content

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/properties" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/properties/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Reference & discovery

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/countries" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/reference/categories" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/reference/attributes" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/reference/place-types" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/places" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/places/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/service-zones" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/service-zones/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/transfer-vehicle-types" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/transfer-vehicle-types/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/tours" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/tours/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/flights" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/flights/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/catalog/changes" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Booking

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/prebook" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/book" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/bookings" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/bookings/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/bookings/{public\_id}" method="patch" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/bookings/{public\_id}/cancellation-quote" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/bookings/{public\_id}/cancel" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Booking webhooks

See [Booking webhooks](/developer/booking-webhooks.md) before enabling delivery.

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}" method="patch" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}" method="delete" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}/subscriptions" method="put" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}/rotate-secret" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}/verify" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}/test" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}/deliveries" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/webhook-endpoints/{public\_id}/deliveries/{delivery\_public\_id}/retry" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Transfers

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/transfer/search" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/transfer/prebook" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/transfer/book" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Tours

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/tour/search" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/tour/prebook" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/tour/book" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Flights

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/flight/search" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/flight/prebook" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/flight/book" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## Packages

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/package/search" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/package/prebook" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/package/book" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

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

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/trip" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/trip/{public\_id}" method="get" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/trip/{public\_id}/members" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/trip/{public\_id}/members/{booking\_public\_id}" method="delete" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

{% openapi src="<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>" path="/trip/{public\_id}/cancel" method="post" %}
<https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml>
{% endopenapi %}

## 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://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml` (also downloadable from the interactive reference above).

**openapi-generator** (Java, Python, Go, C#, and more):

```bash
# Install once (requires a JRE)
npm install -g @openapitools/openapi-generator-cli

# Generate, e.g., a TypeScript client
openapi-generator-cli generate \
  -i https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-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):

```bash
npm install -D openapi-typescript

npx openapi-typescript https://openapi.gitbook.com/o/eB3GGLRIw8pOdwbjJ90e/spec/distribution-partner-api.yaml -o ./distribution-api.d.ts
```

Building an AI agent? See [AI agent integration (MCP)](/developer/ai-agents-mcp.md). The published site also serves an LLM-readable index at `/llms.txt`.

## Related guides

* [Getting started](/developer/getting-started.md)
* [Authentication](/developer/authentication.md)
* [Property content](/developer/property-content.md)
* [The booking flow](/developer/booking-flow.md)
* [Booking webhooks](/developer/booking-webhooks.md)
* [Transfers](/developer/transfers.md)
* [Tours](/developer/tours.md)
* [Flights](/developer/flights.md)
* [Trip bundling](/developer/trip-bundling.md)
* [Idempotency](/developer/idempotency.md)
* [Errors](/developer/errors.md)
* [Currencies, occupancy & allocations](/developer/currencies-occupancy-allocations.md)
* [Rate limits & usage](/developer/rate-limits-and-usage.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://adrasis.gitbook.io/developer/api-reference.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
