Catalog
The catalog exposes a clinic's reference data: the branches, appointment types, statuses, treatment definitions, and providers that the other resources refer to. It's the data you use to populate filters and resolve embedded ids to names. All endpoints require the catalog:read scope and return a bounded list (no cursor).
Cache it
Catalog data changes rarely. Fetch it once at startup (or on a slow interval) and cache it - it's the cheapest way to cut request volume and stay well under rate limits.
#Branches
GET /v1/catalog/branches
| Field | Type | Description |
|---|---|---|
id | string | Branch id. |
name | string | Branch name. |
phone | string | null | Contact phone. |
address | object | Address details. |
color | string | null | Display color. |
curl https://api.smile-app.co.il/v1/catalog/branches \
-H "Authorization: Bearer sk_live_..."
#Appointment types
GET /v1/catalog/appointments/types
| Field | Type | Description |
|---|---|---|
id | string | Type id. |
name | string | Type name (e.g. "Cleaning"). |
duration_minutes | integer | Default duration. |
color | string | null | Display color. |
#Appointment statuses
GET /v1/catalog/appointments/statuses
| Field | Type | Description |
|---|---|---|
id | string | Status id. |
name | string | Status name (e.g. "Confirmed"). |
color | string | Display color. |
enabled | boolean | Whether the status is in use. |
#Treatments
GET /v1/catalog/treatments
The menu of procedures the clinic offers. (For procedures actually performed on a patient, see Treatments.)
| Field | Type | Description |
|---|---|---|
id | string | Treatment id. |
name | string | Treatment name. |
code | string | null | Procedure code. |
price | number | null | Default price. |
color | string | null | Display color. |
category_id | string | null | Category grouping. |
#Providers
GET /v1/catalog/providers
The caregivers at the clinic (dentists, hygienists, etc.).
| Field | Type | Description |
|---|---|---|
id | string | Provider id. |
name | string | Provider name. |
type | string | Provider type. |
color | string | null | Display color. |
curl https://api.smile-app.co.il/v1/catalog/providers \
-H "Authorization: Bearer sk_live_..."
{
"data": [
{ "id": "12", "name": "Dr. Cohen", "type": "dentist", "color": "#4f46e5" },
{ "id": "18", "name": "Noa (Hygienist)", "type": "hygienist", "color": "#16a34a" }
]
}
#Billing accounts
GET /v1/catalog/billing/accounts
The billing accounts (receipt books) a payment can be recorded into. Pass an id as billing_account_id on POST /v1/patients/{id}/payments; it can be omitted when the clinic has exactly one.
| Field | Type | Description |
|---|---|---|
id | string | Billing account id. |
business_name | string | The business name printed on receipts. |
business_id | string | null | The registered business number printed on receipts. |
curl https://api.smile-app.co.il/v1/catalog/billing/accounts \
-H "Authorization: Bearer sk_live_..."
{
"data": [
{ "id": "1", "business_name": "Smile Dental Ltd", "business_id": "515123456" }
]
}
#Species
GET /v1/catalog/species
The clinic's animal kinds. Veterinary clinics only.
| Field | Type | Description |
|---|---|---|
id | string | Species id. |
name | string | Display name. |
#Breeds
GET /v1/catalog/breeds
The clinic's breeds, optionally narrowed to one species with ?species_id=. Veterinary clinics only.
| Field | Type | Description |
|---|---|---|
id | string | Breed id. |
name | string | Display name. |
species_id | string | null | The species this breed belongs to. |
Catalog ids are clinic-scoped
Each clinic's species and breed lists are built from its own data, so species 3 at one clinic has nothing to do with species 3 at another. An integration spanning several clinics must map them per clinic rather than hard-coding ids.
#Vaccines
GET /v1/catalog/vaccines · requires vaccines:read
The clinic's vaccine catalog. Veterinary clinics only.
| Field | Type | Description |
|---|---|---|
id | string | Vaccine id. |
name | string | Display name. |
code | string | null | The clinic's own code. |
species_id | string | null | The species this vaccine is for. |
interval_months | integer | null | Default months until the next dose. |
next_vaccine_id | string | null | The dose that follows this one in a protocol. |
price | number | null | |
batch_required | boolean | Whether the clinic requires a batch number at administration. |
#Measurements
GET /v1/catalog/measurements · requires measurements:read
The measurement types a clinic records — weight, temperature, pulse and so on. Veterinary clinics only.
| Field | Type | Description |
|---|---|---|
id | string | Measurement id. |
name | string | Display name. |
unit | string | null | Unit of measure. |
is_required | boolean | Whether the clinic requires it in every session. |