BillOS v1
Console llms.txt OpenAPI
GET/businesses/{bid}/appointments

List appointments in a window

GET /businesses/{bid}/appointments

Requires the businesses scope.

Oldest first, each with its billing state and overlaps. from and to are required and at most 62 days apart (a year with partyId), except with unbilled=1, which lists the done visits waiting for a document and looks back 90 days when no window is sent.

Path parameters

NameTypeDescription
bidstringrequiredBusiness id, from POST /businesses.

Query parameters

NameTypeDescription
fromstring
tostring
partyIdstring
statusstringOne or several, comma-separated: scheduled, done, cancelled, no_show.
unbilledstringOne of: 1.

Response

200: { "ok": true, … }

FieldTypeDescription
okbooleanrequired
fromstring
tostring
appointmentsarray of Appointmentrequired

Errors: 400, 401, 403, 404, 409, 429. Every failure answers { "error", "reason", "hint", "param", "doc_url", "retryable", "request_id" }: branch on reason, and read hint for what to change (https://docs.billos.co.il/errors.md).

GET /businesses/{bid}/appointments
curl -X GET "$BASE/businesses/$BID/appointments?from=&to=&partyId=" \
  -H "X-Api-Key: $KEY"
const res = await fetch(`${BASE}/businesses/${BID}/appointments`, {
  method: 'GET',
  headers: {
    'X-Api-Key': KEY,
  },
})
const data = await res.json()
if (!data.ok) throw new Error(data.reason)
import requests
res = requests.get(
    f"{BASE}/businesses/{BID}/appointments",
    headers={"X-Api-Key": KEY},
)
data = res.json()
Set BASE to https://api.billos.co.il/v1 and KEY to your bk_live_… key, or a bk_test_… key to run it against the sandbox.
Manage your businesses, keys and webhooks in the BillOS Console.