---
title: "Hold an open time and text the patient a link"
method: POST
path: "/api/public/dental-network/tools/hold_xona_booking_slot"
---

# Hold an open time and text the patient a link

`POST /api/public/dental-network/tools/hold_xona_booking_slot`

## Request

- Base URL: `https://book.xonark.com`
- URL: `https://book.xonark.com/api/public/dental-network/tools/hold_xona_booking_slot`
- Auth: none required

Hold one open time and text the patient a link to it. The page the link opens shows the time and the details above a Book this appointment button. When the patient presses it the appointment is booked, or, at a practice that confirms bookings itself, sent to the practice as a request.

## Request body

- object
  - `date` string, date, required: The chosen slot's date exactly as list_xona_booking_slots returned it
  - `date_of_birth` string, date, required: The patient's date of birth, as the patient gave it in this conversation
  - `first_name` string, required: The patient's first name, as the patient gave it in this conversation
  - `guardian_name` string: Required when the patient is under 16
  - `last_name` string, required: The patient's last name, as the patient gave it in this conversation
  - `note` string
  - `patient_phone` string, required: The patient's own Canadian or US mobile number, as the patient gave it in this conversation; the booking link is texted there
  - `practice_slug` string, required
  - `service_id` string, required
  - `slot_fingerprint` string, required

## Response `200`

Hold an open time and text the patient a link

- object
  - `action_id` string, required
  - `booking_steps` object[]
    - `patient_does` string
    - `patient_provides` string[]
    - `status` 'done' | 'waiting_for_patient' | 'not_started', required
    - `step` integer, required
    - `tool` string
    - `xona_sends` object
      - `channel` string, required
      - `contains` string
      - `link_expires_at` string, date-time
      - `to` string
  - `booking_url` string
  - `continue_url` string
  - `hold_expires_at` string, date-time
  - `link_expires_at` string, date-time
  - `next_step` string, required
  - `outcome` string
  - `practice` object, required
    - `name` string, required
    - `slug` string, required
  - `reason` string
  - `verification` string

## Other responses

- `400`: Invalid request or action state
- `403`: Public write is disabled, or not a member of the claiming account
- `404`: Dental resource not found
- `410`: Dental action expired
- `413`: Request body too large
- `429`: Rate limit exceeded
- `502`: Clinic booking provider is unavailable
- `503`: Gateway temporarily unavailable
- `504`: Clinic booking provider timed out

---

[API](https://skmtc.dev/xonark/apis/xona-dental-gateway-public-api.md) · [All operations](https://skmtc.dev/xonark/apis/xona-dental-gateway-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/xonark/apis/xona-dental-gateway-public-api/revisions/886252359184?raw)
