---
title: "Get booking intake settings"
description: "Get required/optional booking fields, document-type codes and active payers. Pass payerQuery when a document already identifies the payer (e.g. the health plan on an insurance card), to omit unrelated payers. Reuse clear patient data from the conversation or documents instead of asking it again; request only missing required or ambiguous values. Each payer includes attended sites and sitesNote: a nonempty sites list restricts which IPS/sede is served; an empty list means all its sites. Each payer also has bookingPolicy: 'staff_only' means only the clinic's team books its patients, so never book them; use add_to_waitlist with reason payer_review instead. An empty payer match does not establish coverage.\n\n- **Scopes:** any one of `agenda:bookings:read`, `agenda:bookings:write`\n- **Credentials:** an API key, a client-credentials token or a person's access token\n- **Effect:** read-only; safe to retry\n- **Limits:** response up to 8 MB\n- **CLI:** `arbol agenda booking-requirements get` · **MCP tool:** `agenda_booking_requirements_get`"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.getarbol.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Agenda API › Booking requirements

`GET /v1/agenda/booking-requirements`

Get required/optional booking fields, document-type codes and active payers. Pass payerQuery when a document already identifies the payer (e.g. the health plan on an insurance card), to omit unrelated payers. Reuse clear patient data from the conversation or documents instead of asking it again; request only missing required or ambiguous values. Each payer includes attended sites and sitesNote: a nonempty sites list restricts which IPS/sede is served; an empty list means all its sites. Each payer also has bookingPolicy: 'staff_only' means only the clinic's team books its patients, so never book them; use add_to_waitlist with reason payer_review instead. An empty payer match does not establish coverage.

- **Scopes:** any one of `agenda:bookings:read`, `agenda:bookings:write`
- **Credentials:** an API key, a client-credentials token or a person's access token
- **Effect:** read-only; safe to retry
- **Limits:** response up to 8 MB
- **CLI:** `arbol agenda booking-requirements get` · **MCP tool:** `agenda_booking_requirements_get`

## Authentication

Requires one of the following:

- `arbolHuman`, oauth2, scopes: `agenda:bookings:read`
- `arbolHuman`, oauth2, scopes: `agenda:bookings:write`
- `arbolMachine`, oauth2, scopes: `agenda:bookings:read`
- `arbolMachine`, oauth2, scopes: `agenda:bookings:write`
- `arbolApiKey`, http, header `Authorization`

## Query parameters

- `payerQuery` (`agenda.bookingRequirements.get.query.payerQuery`; string, optional) — Known payer name to narrow the active payer list; an empty match never establishes coverage.
- `channel` (`agenda.bookingRequirements.get.query.channel`; string, optional) — The conversation's channel, set by the platform. It changes nothing in Agenda; omit it.
  - one of `"voice"`, `"whatsapp"`, `"web"`
- `connectionId` (`agenda.bookingRequirements.get.query.connectionId`; string, optional) — The platform's id for the organization's Agenda, set by the platform. An organization has one Agenda, so it selects nothing; omit it.
  - minLength 1; maxLength 128; pattern `^[\w-]+$`

## Code samples

### cURL

```bash
curl https://api.getarbol.com/v1/agenda/booking-requirements \
  --header "Authorization: Bearer $ARBOL_API_KEY"
```

### TypeScript

```typescript
import { createClient } from "@arbol-ai/sdk";

const arbol = createClient({
  baseUrl: "https://api.getarbol.com",
  token: process.env.ARBOL_API_KEY!,
});

const { data } = await arbol.agenda.bookingRequirements.get();
```

### Rust

```rust
use arbol_sdk::{types, Client, Credential};

let arbol = Client::new(Credential::ApiKey(std::env::var("ARBOL_API_KEY")?))?;

let data = arbol
    .agenda()
    .booking_requirements()
    .get(&types::AgendaBookingRequirementsGetInput::default())
    .await?;
```

### CLI

```bash
arbol agenda booking-requirements get
```

### MCP

```json
{
  "name": "agenda_booking_requirements_get",
  "arguments": {}
}
```

## Responses

### 200

Successful operation.

#### Example

```json
{
  "success": true,
  "data": {
    "bookingDuration": {
      "enabled": false,
      "maxMinutes": 1440,
      "minMinutes": 1,
      "stepMinutes": 1
    },
    "customFields": [],
    "documentTypes": [
      {
        "code": "CC",
        "description": "Colombianos de 18 años o más.",
        "name": "Cédula de ciudadanía",
        "status": "active"
      },
      {
        "code": "TI",
        "description": "Colombianos de 7 a 17 años.",
        "name": "Tarjeta de identidad",
        "status": "active"
      },
      {
        "code": "RC",
        "description": "Colombianos menores de 7 años.",
        "name": "Registro civil",
        "status": "active"
      },
      {
        "code": "CE",
        "description": "Extranjeros residentes en Colombia.",
        "name": "Cédula de extranjería",
        "status": "active"
      },
      {
        "code": "PA",
        "description": "Extranjeros sin documento colombiano.",
        "name": "Pasaporte",
        "status": "active"
      },
      {
        "code": "PEP",
        "description": "Migrantes con PEP vigente.",
        "name": "Permiso especial de permanencia",
        "status": "active"
      },
      {
        "code": "PPT",
        "description": "Migrantes venezolanos con PPT.",
        "name": "Permiso por protección temporal",
        "status": "active"
      },
      {
        "code": "NUIP",
        "description": "El número del registro civil o la tarjeta de identidad.",
        "name": "Número único de identificación personal",
        "status": "active"
      },
      {
        "code": "CD",
        "description": "Personal diplomático acreditado.",
        "name": "Carné diplomático",
        "status": "active"
      },
      {
        "code": "SC",
        "description": "Extranjeros con trámite de refugio.",
        "name": "Salvoconducto de permanencia",
        "status": "active"
      },
      {
        "code": "NIT",
        "description": "Empresas y personas jurídicas.",
        "name": "Número de identificación tributaria",
        "status": "active"
      },
      {
        "code": "DE",
        "description": "El documento del país de origen.",
        "name": "Documento de identidad extranjero",
        "status": "active"
      },
      {
        "code": "CN",
        "description": "Recién nacidos sin registro civil.",
        "name": "Certificado de nacido vivo",
        "status": "active"
      },
      {
        "code": "MS",
        "description": "Menores sin ningún documento.",
        "name": "Menor sin identificación",
        "status": "active"
      },
      {
        "code": "AS",
        "description": "Adultos sin ningún documento.",
        "name": "Adulto sin identificación",
        "status": "active"
      }
    ],
    "fields": {
      "authorization": "optional",
      "conversationUrl": "optional",
      "document": "optional",
      "email": "optional",
      "notes": "optional",
      "payer": "optional",
      "phone": "optional",
      "priority": "on"
    },
    "labels": {
      "authorization": {
        "label": "N.º de autorización",
        "placeholder": ""
      },
      "document": {
        "label": "Documento",
        "placeholder": "Número"
      },
      "email": {
        "label": "Correo",
        "placeholder": "paciente@correo.com"
      },
      "name": {
        "label": "Nombre del paciente",
        "placeholder": "Nombres y apellidos"
      },
      "notes": {
        "label": "Observaciones",
        "placeholder": "Ej. Debe traer la autorización. No cancela copago."
      },
      "phone": {
        "label": "Teléfono",
        "placeholder": "+57 300 000 0000"
      }
    },
    "payerLabel": "Entidad / EPS",
    "object": "scheduling.intake_settings",
    "updatedAt": "string",
    "version": 0,
    "payers": [
      {
        "bookingPolicy": "open",
        "name": "string",
        "sites": [
          "string"
        ],
        "sitesNote": "string"
      }
    ]
  },
  "error": null,
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`agenda.bookingRequirements.get.response.200.success`; boolean, required)
- `data` (`agenda.bookingRequirements.get.response.200.data`; object, required)
  - `bookingDuration` (`agenda.bookingRequirements.get.response.200.data.bookingDuration`; object, required) — Staff duration override policy; it changes one appointment without changing the service’s standard duration.
    - default `{"enabled":false,"maxMinutes":1440,"minMinutes":1,"stepMinutes":1}`
    - `enabled` (`agenda.bookingRequirements.get.response.200.data.bookingDuration.enabled`; boolean, required)
      - default `false`
    - `maxMinutes` (`agenda.bookingRequirements.get.response.200.data.bookingDuration.maxMinutes`; integer, required)
      - min 1; max 1440; default `1440`
    - `minMinutes` (`agenda.bookingRequirements.get.response.200.data.bookingDuration.minMinutes`; integer, required)
      - min 1; max 1440; default `1`
    - `stepMinutes` (`agenda.bookingRequirements.get.response.200.data.bookingDuration.stepMinutes`; number, required) — Permitted appointment duration increment; the selected duration must be divisible by this value.
      - one of `1`, `5`, `10`, `15`, `20`, `30`, `60`; default `1`
  - `customFields` (`agenda.bookingRequirements.get.response.200.data.customFields`; array<object>, required) — Organization-defined intake fields with stable keys retained in recorded values.
    - default `[]`
    - `help` (`agenda.bookingRequirements.get.response.200.data.customFields.help`; string | null, required) — One line under the input, e.g. "Como aparece en la orden".
      - maxLength 200; default `null`
    - `key` (`agenda.bookingRequirements.get.response.200.data.customFields.key`; string, required) — Stable custom-field key used in recorded intake values. Renaming a display label does not change this key.
      - pattern `^[a-z][a-z0-9_]{0,39}$`
    - `label` (`agenda.bookingRequirements.get.response.200.data.customFields.label`; string, required) — Display label shown to staff when entering this field.
      - minLength 1; maxLength 80
    - `options` (`agenda.bookingRequirements.get.response.200.data.customFields.options`; array<string>, required) — Choices of a `select`; empty for every other type.
      - minLength 1; maxLength 80; default `[]`
    - `required` (`agenda.bookingRequirements.get.response.200.data.customFields.required`; boolean, required) — Whether this active custom field requires a nonempty value during intake.
      - default `false`
    - `status` (`agenda.bookingRequirements.get.response.200.data.customFields.status`; string, required) — Archived fields stop being asked but keep the values already recorded.
      - one of `"active"`, `"archived"`; default `"active"`
    - `type` (`agenda.bookingRequirements.get.response.200.data.customFields.type`; string, required) — Value type accepted by this custom configuration field.
      - one of `"text"`, `"number"`, `"date"`, `"select"`, `"checkbox"`
  - `documentTypes` (`agenda.bookingRequirements.get.response.200.data.documentTypes`; array<object>, required) — Configured document types; inactive types remain valid on existing records.
    - default `[{"code":"CC","description":"Colombianos de 18 años o más.","name":"Cédula de ciudadanía","status":"active"},{"code":"TI","description":"Colombianos de 7 a 17 años.","name":"Tarjeta de identidad","status":"active"},{"code":"RC","description":"Colombianos menores de 7 años.","name":"Registro civil","status":"active"},{"code":"CE","description":"Extranjeros residentes en Colombia.","name":"Cédula de extranjería","status":"active"},{"code":"PA","description":"Extranjeros sin documento colombiano.","name":"Pasaporte","status":"active"},{"code":"PEP","description":"Migrantes con PEP vigente.","name":"Permiso especial de permanencia","status":"active"},{"code":"PPT","description":"Migrantes venezolanos con PPT.","name":"Permiso por protección temporal","status":"active"},{"code":"NUIP","description":"El número del registro civil o la tarjeta de identidad.","name":"Número único de identificación personal","status":"active"},{"code":"CD","description":"Personal diplomático acreditado.","name":"Carné diplomático","status":"active"},{"code":"SC","description":"Extranjeros con trámite de refugio.","name":"Salvoconducto de permanencia","status":"active"},{"code":"NIT","description":"Empresas y personas jurídicas.","name":"Número de identificación tributaria","status":"active"},{"code":"DE","description":"El documento del país de origen.","name":"Documento de identidad extranjero","status":"active"},{"code":"CN","description":"Recién nacidos sin registro civil.","name":"Certificado de nacido vivo","status":"active"},{"code":"MS","description":"Menores sin ningún documento.","name":"Menor sin identificación","status":"active"},{"code":"AS","description":"Adultos sin ningún documento.","name":"Adulto sin identificación","status":"active"}]`
    - `code` (`agenda.bookingRequirements.get.response.200.data.documentTypes.code`; string, required) — Stable document-type code retained in patient records.
      - pattern `^[A-Z][A-Z0-9]{0,9}$`
    - `description` (`agenda.bookingRequirements.get.response.200.data.documentTypes.description`; string, required) — What the select's tooltip says, e.g. "Colombianos de 18 años o más".
      - maxLength 200; default `""`
    - `name` (`agenda.bookingRequirements.get.response.200.data.documentTypes.name`; string, required) — Display name of this catalog or configuration record.
      - minLength 1; maxLength 80
    - `status` (`agenda.bookingRequirements.get.response.200.data.documentTypes.status`; string, required) — Inactive types stop being offered; records that use one stay valid.
      - one of `"active"`, `"inactive"`; default `"active"`
  - `fields` (`agenda.bookingRequirements.get.response.200.data.fields`; object, required) — Modes controlling which built-in intake fields are displayed or required.
    - default `{"authorization":"optional","conversationUrl":"optional","document":"optional","email":"optional","notes":"optional","payer":"optional","phone":"optional","priority":"on"}`
    - `authorization` (`agenda.bookingRequirements.get.response.200.data.fields.authorization`; string, required) — Organization-defined authorization field configuration.
      - one of `"off"`, `"optional"`, `"required"`; default `"optional"`
    - `conversationUrl` (`agenda.bookingRequirements.get.response.200.data.fields.conversationUrl`; string, required) — Configuration for displaying an optional conversation link during intake.
      - one of `"off"`, `"optional"`; default `"optional"`
    - `document` (`agenda.bookingRequirements.get.response.200.data.fields.document`; string, required) — Organization-defined patient document field configuration.
      - one of `"optional"`, `"required"`; default `"optional"`
    - `email` (`agenda.bookingRequirements.get.response.200.data.fields.email`; string, required) — Organization-defined email field configuration.
      - one of `"off"`, `"optional"`, `"required"`; default `"optional"`
    - `notes` (`agenda.bookingRequirements.get.response.200.data.fields.notes`; string, required) — Organization-defined appointment notes field configuration.
      - one of `"off"`, `"optional"`, `"required"`; default `"optional"`
    - `payer` (`agenda.bookingRequirements.get.response.200.data.fields.payer`; string, required) — Organization-defined payer field configuration.
      - one of `"off"`, `"optional"`, `"required"`; default `"optional"`
    - `phone` (`agenda.bookingRequirements.get.response.200.data.fields.phone`; string, required) — Organization-defined telephone field configuration.
      - one of `"off"`, `"optional"`, `"required"`; default `"optional"`
    - `priority` (`agenda.bookingRequirements.get.response.200.data.fields.priority`; string, required) — Whether the appointment priority control is displayed during intake.
      - one of `"off"`, `"on"`; default `"on"`
  - `labels` (`agenda.bookingRequirements.get.response.200.data.labels`; object, required) — Organization-defined labels and examples for built-in intake fields.
    - default `{"authorization":{"label":"N.º de autorización","placeholder":""},"document":{"label":"Documento","placeholder":"Número"},"email":{"label":"Correo","placeholder":"paciente@correo.com"},"name":{"label":"Nombre del paciente","placeholder":"Nombres y apellidos"},"notes":{"label":"Observaciones","placeholder":"Ej. Debe traer la autorización. No cancela copago."},"phone":{"label":"Teléfono","placeholder":"+57 300 000 0000"}}`
    - `authorization` (`agenda.bookingRequirements.get.response.200.data.labels.authorization`; object, required) — Organization-defined authorization field configuration.
      - default `{"label":"N.º de autorización","placeholder":""}`
      - `label` (`agenda.bookingRequirements.get.response.200.data.labels.authorization.label`; string, required) — Display label shown to staff when entering this field.
        - minLength 1; maxLength 60
      - `placeholder` (`agenda.bookingRequirements.get.response.200.data.labels.authorization.placeholder`; string, required) — Example or hint displayed inside the input before staff enter a value.
        - maxLength 120
    - `document` (`agenda.bookingRequirements.get.response.200.data.labels.document`; object, required) — Organization-defined patient document field configuration.
      - default `{"label":"Documento","placeholder":"Número"}`
      - `label` (`agenda.bookingRequirements.get.response.200.data.labels.document.label`; string, required) — Display label shown to staff when entering this field.
        - minLength 1; maxLength 60
      - `placeholder` (`agenda.bookingRequirements.get.response.200.data.labels.document.placeholder`; string, required) — Example or hint displayed inside the input before staff enter a value.
        - maxLength 120
    - `email` (`agenda.bookingRequirements.get.response.200.data.labels.email`; object, required) — Organization-defined email field configuration.
      - default `{"label":"Correo","placeholder":"paciente@correo.com"}`
      - `label` (`agenda.bookingRequirements.get.response.200.data.labels.email.label`; string, required) — Display label shown to staff when entering this field.
        - minLength 1; maxLength 60
      - `placeholder` (`agenda.bookingRequirements.get.response.200.data.labels.email.placeholder`; string, required) — Example or hint displayed inside the input before staff enter a value.
        - maxLength 120
    - `name` (`agenda.bookingRequirements.get.response.200.data.labels.name`; object, required) — Display name of this catalog or configuration record.
      - default `{"label":"Nombre del paciente","placeholder":"Nombres y apellidos"}`
      - `label` (`agenda.bookingRequirements.get.response.200.data.labels.name.label`; string, required) — Display label shown to staff when entering this field.
        - minLength 1; maxLength 60
      - `placeholder` (`agenda.bookingRequirements.get.response.200.data.labels.name.placeholder`; string, required) — Example or hint displayed inside the input before staff enter a value.
        - maxLength 120
    - `notes` (`agenda.bookingRequirements.get.response.200.data.labels.notes`; object, required) — Organization-defined appointment notes field configuration.
      - default `{"label":"Observaciones","placeholder":"Ej. Debe traer la autorización. No cancela copago."}`
      - `label` (`agenda.bookingRequirements.get.response.200.data.labels.notes.label`; string, required) — Display label shown to staff when entering this field.
        - minLength 1; maxLength 60
      - `placeholder` (`agenda.bookingRequirements.get.response.200.data.labels.notes.placeholder`; string, required) — Example or hint displayed inside the input before staff enter a value.
        - maxLength 120
    - `phone` (`agenda.bookingRequirements.get.response.200.data.labels.phone`; object, required) — Organization-defined telephone field configuration.
      - default `{"label":"Teléfono","placeholder":"+57 300 000 0000"}`
      - `label` (`agenda.bookingRequirements.get.response.200.data.labels.phone.label`; string, required) — Display label shown to staff when entering this field.
        - minLength 1; maxLength 60
      - `placeholder` (`agenda.bookingRequirements.get.response.200.data.labels.phone.placeholder`; string, required) — Example or hint displayed inside the input before staff enter a value.
        - maxLength 120
  - `payerLabel` (`agenda.bookingRequirements.get.response.200.data.payerLabel`; string, required) — Organization-specific display name for the payer selector.
    - minLength 1; maxLength 40; default `"Entidad / EPS"`
  - `object` (`agenda.bookingRequirements.get.response.200.data.object`; string, required) — Stable resource discriminator identifying the response object kind.
  - `updatedAt` (`agenda.bookingRequirements.get.response.200.data.updatedAt`; string | null, required) — ISO 8601 instant of the latest persisted change; null when this configuration has never been saved.
  - `version` (`agenda.bookingRequirements.get.response.200.data.version`; number, required) — Persisted revision used to detect concurrent edits.
  - `payers` (`agenda.bookingRequirements.get.response.200.data.payers`; array<object>, required) — Active payer booking policies and attended sites admitted by the organization’s current intake modules.
    - `bookingPolicy` (`agenda.bookingRequirements.get.response.200.data.payers.bookingPolicy`; string, required) — Profile-declared rules for admitting and coordinating a booking.
      - one of `"open"`, `"staff_only"`
    - `name` (`agenda.bookingRequirements.get.response.200.data.payers.name`; string, required) — Display name of this catalog or configuration record.
    - `sites` (`agenda.bookingRequirements.get.response.200.data.payers.sites`; array<string>, required) — The sites (IPS, sedes) the clinic serves for this payer, as the clinic writes them. Empty: no restriction. With entries, a patient whose site is not one of them is not served under this payer.
    - `sitesNote` (`agenda.bookingRequirements.get.response.200.data.payers.sitesNote`; string | null, required) — One line about the sites, e.g. "Solo IPS en Barranquilla".
- `error` (`agenda.bookingRequirements.get.response.200.error`; null, required)
- `metadata` (`agenda.bookingRequirements.get.response.200.metadata`; object, required)
  - `requestId` (`agenda.bookingRequirements.get.response.200.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 400

- `INVALID_INPUT`: The request does not match the published schema.
- `INVALID_APPOINTMENT_INTAKE`: Correct the indicated patient or intake fields before booking.
- `INVALID_PATIENT_FIELDS`: Correct the indicated patient fields before saving.
- `DURATION_CHANGE_OFF`: This service does not allow changing appointment duration.
- `DURATION_NOT_ALLOWED`: Select a duration allowed by this service.
- `STUDY_LENGTH_NOT_OFFERED`: Select one of the study lengths this agenda offers.
- `INVALID_FILE_KIND`: Select a supported attachment kind.
- `INVALID_FILE_NAME`: Provide a valid attachment filename.
- `INVALID_ID_TOKEN`: Provide a valid identity token.
- `INVALID_JSON`: Send a valid JSON document.
- `INVALID_WINDOW`: Provide a positive time window within the supported range.
- `UNEXPECTED_QUERY_PARAMETERS`: Remove query parameters not declared by this operation.
- `INVALID_BODY`: The request body could not be read. Send valid uncompressed JSON.

#### Example

```json
{
  "error": {
    "code": "INVALID_INPUT"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.400.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 401

`UNAUTHORIZED`: A valid access token is required.

#### Example

```json
{
  "error": {
    "code": "UNAUTHORIZED"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.401.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 403

- `FORBIDDEN`: The token does not authorize this operation.
- `ID_TOKEN_MISMATCH`: The identity token does not match the authenticated user.
- `NOT_FILE_UPLOADER`: Only the uploader may delete this attachment.
- `NOT_NOTE_AUTHOR`: Only the author may edit or delete this note.
- `ORIGIN_NOT_ALLOWED`: This request origin is not allowed.

#### Example

```json
{
  "error": {
    "code": "FORBIDDEN"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.403.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 404

`NOT_FOUND`: The requested resource does not exist.

#### Example

```json
{
  "error": {
    "code": "NOT_FOUND"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.404.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 405

`HTTP_METHOD_NOT_ALLOWED`: The HTTP method is not supported for this resource.

#### Example

```json
{
  "error": {
    "code": "HTTP_METHOD_NOT_ALLOWED"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.405.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 409

- `PAYER_STAFF_ONLY`: This payer requires booking by the organization team. Add the patient to the waitlist for review.
- `APPOINTMENT_NOT_REMINDABLE`: Only an open future appointment with a patient email can receive a reminder.
- `APPOINTMENT_WITHOUT_PATIENT`: Link a patient to this appointment before performing this action.
- `ARBOL_CATALOG_TOO_LARGE`: The integration catalog exceeds the supported size. Narrow the catalog before retrying.
- `ARBOL_CONFIGURATION_REQUIRED`: Configure the organization integration before using it.
- `NOTIFICATIONS_NOT_SET_UP`: Patient emails need the notifications module turned on.
- `SAME_OFFERING`: An agenda cannot take its own appointments.
- `SAME_SERVICE`: A service cannot be merged into itself.
- `INVALID_HOLD_PAYLOAD`: The held slot is malformed.
- `HOLD_NOT_ACTIVE`: The hold is no longer active.
- `APPOINTMENT_CLOSED`: A cancelled appointment cannot be edited.
- `APPOINTMENT_VERSION_MISMATCH`: The appointment changed after it was loaded.
- `APPOINTMENT_NOT_MOVABLE`: A closed appointment cannot be moved.
- `SERVICE_CHANGED`: The new slot belongs to another service.
- `SCHEDULE_CHANGED`: The selected time no longer matches the current schedule.
- `INVALID_AVAILABILITY_WINDOW`: Availability windows must be positive and at most 31 days.
- `SERVICE_CAPACITY_EXCEEDED`: This service already has as many appointments as it can run at once at that time.
- `RESOURCE_CAPACITY_EXCEEDED`: The selected time is no longer available.
- `OVERBOOK_OUT_OF_RANGE`: An overbooked appointment must start between yesterday and the booking horizon.
- `OVERBOOK_UNAVAILABLE`: No active agenda can take this appointment.
- `STUDY_OVERBOOKING_NOT_ALLOWED`: This study has an explicit capacity limit and requires an available ordinary slot.
- `INVALID_SLOT_TOKEN`: Request a fresh available slot before booking.
- `BIRTH_DATE_REQUIRED`: This service has an age rule: the patient's date of birth is required.
- `AGE_NOT_ELIGIBLE`: The patient's age on that day is outside this service's age rule.
- `INTAKE_SETTINGS_VERSION_MISMATCH`: Intake settings changed; reload before saving.
- `PAYER_NAME_TAKEN`: Another payer already has that name.
- `PAYER_VERSION_MISMATCH`: The payer changed; reload before saving.
- `LOCATION_VERSION_MISMATCH`: The site changed after it was loaded.
- `PROFILE_VERSION_MISMATCH`: The profile changed after it was loaded.
- `PROVIDER_DISABLED`: Enable the provider integration before using it.
- `BINDING_VERSION_MISMATCH`: Connection changed or is synchronizing; refresh and retry.
- `RESOURCE_VERSION_MISMATCH`: The resource changed after it was loaded.
- `SCHEDULE_RULE_AGENDA_MISMATCH`: The schedule rule belongs to another agenda.
- `SCHEDULE_RULE_EXPECTED_VERSION_REQUIRED`: Expected version is required for an update.
- `SCHEDULE_RULE_VERSION_MISMATCH`: The schedule rule changed after it was loaded.
- `SCHEDULE_RULES_CHANGED`: The schedule changed after it was loaded.
- `SERVICE_VERSION_MISMATCH`: The service changed after it was loaded.
- `OFFERING_VERSION_MISMATCH`: The offering changed after it was loaded.
- `SAME_RESOURCE`: An agenda cannot take its own appointments.
- `TARGET_INACTIVE`: An archived agenda takes no appointments.
- `SLOT_REQUIRED`: A hold or slot token is required.
- `ARBOL_SETTINGS_VERSION_MISMATCH`: Arbol settings changed.
- `NOTIFICATION_SETTINGS_VERSION_MISMATCH`: Notification settings changed; reload before saving.
- `ORGANIZATION_VERSION_MISMATCH`: The organization changed; reload before saving.
- `PATIENT_DOCUMENT_TAKEN`: Another patient has that document.
- `PATIENT_VERSION_MISMATCH`: The patient changed after it was loaded.
- `DAILY_REPORT_TOO_LARGE`: Daily report exceeds the supported size; no partial report was generated.
- `REPORT_SETTINGS_VERSION_MISMATCH`: Report settings changed; reload before saving.
- `REPORT_NOTIFICATIONS_DISABLED`: Enable the notifications module before sending a daily agenda.
- `REPORT_RECIPIENTS_REQUIRED`: No eligible organization owner or additional delivery address is available for this agenda.
- `WAITLIST_ENTRY_VERSION_MISMATCH`: The waitlist entry changed; reload before saving.
- `REMOVAL_JOB_CONFLICT`: A removal is already active, or this idempotency key belongs to another decision.
- `FOLLOWUP_SETTINGS_VERSION_MISMATCH`: Follow-up email settings changed; reload before saving.
- `FOLLOWUP_DISABLED`: Turn this follow-up email on in the notification settings first.
- `FOLLOWUP_CONSENT_REQUIRED`: The patient has not consented to this follow-up email for their current address.
- `PATIENT_EMAIL_REQUIRED`: Record the patient's email before this action.
- `PATIENT_ARCHIVED`: Restore the patient before this action.
- `RECALL_ALREADY_ACTIVE`: The patient already has an active recall for this service.
- `RECALL_MONTH_PASSED`: The recall's month has already passed.
- `RECALL_VISIT_REQUIRED`: Enter the last visit: there is no attended appointment of this service for the patient.
- `RECALL_VISIT_IN_FUTURE`: The last visit must be a past date.
- `RECALL_VERSION_MISMATCH`: The recall changed after it was loaded.
- `SLOT_OFFER_NOT_ALLOWED`: Only an open waiting-list entry of a registered patient can receive a slot offer.
- `SLOT_OFFER_MISMATCH`: The slot belongs to another service or agenda than the entry asks for.
- `SLOT_OFFER_TOO_SOON`: The slot starts too soon to hold it for the patient; offer a later one.
- `SLOT_OFFER_ALREADY_OPEN`: This waiting-list entry already has an open slot offer.
- `SLOT_OFFER_CLOSED`: The slot offer is no longer open.

#### Example

```json
{
  "error": {
    "code": "PAYER_STAFF_ONLY"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.409.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 413

`REQUEST_TOO_LARGE`: The request exceeds the allowed size.

#### Example

```json
{
  "error": {
    "code": "REQUEST_TOO_LARGE"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.413.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 415

- `UNSUPPORTED_MEDIA_TYPE`: The request content type is not supported.
- `APPLICATION_JSON_REQUIRED`: Send the request as application/json.
- `FILE_CONTENT_MISMATCH`: The uploaded content does not match its declared file type.
- `UNSUPPORTED_CONTENT_ENCODING`: Send an uncompressed request body.
- `UNSUPPORTED_FILE_TYPE`: Select a supported attachment file type.

#### Example

```json
{
  "error": {
    "code": "UNSUPPORTED_MEDIA_TYPE"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.415.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 426

`UPGRADE_REQUIRED`: Open the live channel with a WebSocket upgrade.

#### Example

```json
{
  "error": {
    "code": "UPGRADE_REQUIRED"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.426.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 429

`RATE_LIMITED`: The request rate limit was exceeded. Try again later.

#### Example

```json
{
  "error": {
    "code": "RATE_LIMITED"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.429.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 500

`INTERNAL_ERROR`: The service could not complete the operation.

#### Example

```json
{
  "error": {
    "code": "INTERNAL_ERROR"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.500.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 502

`OUTCOME_UNKNOWN`: The operation may have been applied; check its result before repeating it.

#### Example

```json
{
  "error": {
    "code": "OUTCOME_UNKNOWN"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.502.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 503

- `UPSTREAM_UNAVAILABLE`: The upstream service could not complete the request.
- `ARBOL_RESPONSE_TOO_LARGE`: The integration response exceeds the supported size.
- `ARBOL_UNAVAILABLE`: The integration service is temporarily unavailable. Retry later.
- `REMOVAL_WORKFLOW_UNAVAILABLE`: Durable removal is unavailable here; use the bounded manual removal operations.
- `ARBOL_REFUSED`: The integration service rejected this request. Review its configuration.

#### Example

```json
{
  "error": {
    "code": "UPSTREAM_UNAVAILABLE"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.503.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`

### 504

`UPSTREAM_TIMEOUT`: The upstream service did not respond before its deadline.

#### Example

```json
{
  "error": {
    "code": "UPSTREAM_TIMEOUT"
  }
}
```

- `error` (`agenda.bookingRequirements.get.response.504.error`; object, required)
  - any of: `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`, `object`


Source: https://docs.getarbol.com/api/agenda/booking-requirements/get/index.md
