SmileCloudDocs

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

FieldTypeDescription
idstringBranch id.
namestringBranch name.
phonestring | nullContact phone.
addressobjectAddress details.
colorstring | nullDisplay color.
bash
curl https://api.smile-app.co.il/v1/catalog/branches \
  -H "Authorization: Bearer sk_live_..."

#Appointment types

GET /v1/catalog/appointments/types

FieldTypeDescription
idstringType id.
namestringType name (e.g. "Cleaning").
duration_minutesintegerDefault duration.
colorstring | nullDisplay color.

#Appointment statuses

GET /v1/catalog/appointments/statuses

FieldTypeDescription
idstringStatus id.
namestringStatus name (e.g. "Confirmed").
colorstringDisplay color.
enabledbooleanWhether 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.)

FieldTypeDescription
idstringTreatment id.
namestringTreatment name.
codestring | nullProcedure code.
pricenumber | nullDefault price.
colorstring | nullDisplay color.
category_idstring | nullCategory grouping.

#Providers

GET /v1/catalog/providers

The caregivers at the clinic (dentists, hygienists, etc.).

FieldTypeDescription
idstringProvider id.
namestringProvider name.
typestringProvider type.
colorstring | nullDisplay color.
bash
curl https://api.smile-app.co.il/v1/catalog/providers \
  -H "Authorization: Bearer sk_live_..."
json
{
  "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.

FieldTypeDescription
idstringBilling account id.
business_namestringThe business name printed on receipts.
business_idstring | nullThe registered business number printed on receipts.
bash
curl https://api.smile-app.co.il/v1/catalog/billing/accounts \
  -H "Authorization: Bearer sk_live_..."
json
{
  "data": [
    { "id": "1", "business_name": "Smile Dental Ltd", "business_id": "515123456" }
  ]
}

#Species

GET /v1/catalog/species

The clinic's animal kinds. Veterinary clinics only.

FieldTypeDescription
idstringSpecies id.
namestringDisplay name.

#Breeds

GET /v1/catalog/breeds

The clinic's breeds, optionally narrowed to one species with ?species_id=. Veterinary clinics only.

FieldTypeDescription
idstringBreed id.
namestringDisplay name.
species_idstring | nullThe 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.

FieldTypeDescription
idstringVaccine id.
namestringDisplay name.
codestring | nullThe clinic's own code.
species_idstring | nullThe species this vaccine is for.
interval_monthsinteger | nullDefault months until the next dose.
next_vaccine_idstring | nullThe dose that follows this one in a protocol.
pricenumber | null
batch_requiredbooleanWhether 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.

FieldTypeDescription
idstringMeasurement id.
namestringDisplay name.
unitstring | nullUnit of measure.
is_requiredbooleanWhether the clinic requires it in every session.