---
title: "Search Canadian dental practices"
method: GET
path: "/api/public/dental-network/search"
---

# Search Canadian dental practices

`GET /api/public/dental-network/search`

## Request

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

## Query parameters

- `q` string
- `province` string
- `locality` string
- `postal_code` string
- `limit` integer
- `service` string
- `language` string
- `open` 'saturday' | 'sunday' | 'weekend' | 'evening'
- `booking` 'online' | 'form' | 'xona_request' | 'call' | 'any'
- `coverage` 'cdcp'
- `order` 'route' | 'soonest'
- `page` integer

## Response `200`

Matching practices. A verified crawler receives full Practice objects; every other client receives PracticeRow objects (projection "row") and reads a practice's facts from the paced profile endpoint.

- object
  - `count` integer, required
  - `live_unread` integer: order=soonest: live clinics in the place on later pages, not read by this search
  - `next_step` string: order=soonest: how to read the live clinics this page did not (its not_read rows, later pages)
  - `projection` 'row': Present when results are PracticeRow objects.
  - `results` union[], required
    - union
      - Practice
      - PracticeRow
        - `actions` string[], required
        - `booking_url` string, uri: The page where the patient books this clinic (the action whose times the row shows); opening it starts the booking there.
        - `canonical_profile_url` string, uri, required
        - `earliest` object[]
          - `booking_url` string, uri: The page where the patient books this time.
          - `date` string, date
          - `need` 'cleaning' | 'exam' | 'emergency', required
          - `service_id` string, required
          - `service_name` string, required
          - `slot_fingerprint` string: holds a connected practice's time with hold_xona_booking_slot
          - `slot_id` string: books a clinic scheduler's time with choose_public_booking_time
          - `start_local` string, required
          - `starts_at` string, date-time, required
          - `time_zone` string, required
        - `id` string, required
        - `locality` string
        - `match` object: Present when the search carried constraints: the published facts that satisfied them.
          - `booking` string: the matching action kind
          - `language` string
          - `new_patients` string: always "not yet verified"
          - `open` object: day → published hours text
          - `services` string[]
          - `source_checked_at` string, date: day of the oldest fact the match rests on, so every matched fact is at least this fresh; absent when only a live booking route matched
        - `name` string, required
        - `province` string
        - `read` object: Present on a live row an order=soonest search read.
          - `note` string, required
          - `outcome` 'time' | 'none' | 'not_read', required
        - `services` object[]
          - `duration_minutes` integer
          - `name` string, required
          - `service_id` string, required
        - `slug` string, required
        - `when` object: Present on an order=soonest search: why the row sits where it does.
          - `hours_read` string, date: day the clinic's own site was read for its hours
          - `next_step` string: for live_schedule: the tools that read more real times and book one
          - `state` 'live_schedule' | 'open_now' | 'opens_today' | 'opens_later' | 'unknown', required
          - `text` string: the list card's line, for example "Open now until 5:00 pm"; opening hours, not appointment times
          - `time_zone` string: IANA zone the hours were read in

## Other responses

- `400`: Invalid request or action state
- `429`: Rate limit exceeded
- `503`: Gateway temporarily unavailable

---

[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)
