Create Appointment¶
Books an appointment.
Endpoint¶
Request Body¶
| Parameter | Type | Required | Description |
|---|---|---|---|
patient_id |
string | Yes | The patient. Correlate on this — it's a stable id, and there's no external-reference field. |
provider_id |
string | Yes | The treating provider. |
clinic_id |
string | Yes | The clinic this record belongs to. |
appointment_type_id |
string | Yes | The appointment type, from List Appointment Types. A single id, not a list. |
start_time |
string (date-time) | Yes | When the visit starts, as an ISO-8601 UTC instant. |
end_time |
string (date-time) | No | When the visit ends, as an ISO-8601 UTC instant. Computed from the appointment type's duration when omitted on create. |
spry_case_id |
string | No | The case's business key. |
payment_mode |
string | Yes | How the visit is paid for. Required on create; omitting it fails the booking with an unhelpful error. One of SELF_PAY, INSURANCE_PAY. |
notes |
string | No | |
recurrence |
object | No | Recurrence rule. null for a one-off. See Recurrence. |
Recurrence¶
| Parameter | Type | Required | Description |
|---|---|---|---|
frequency |
string | Yes | How often the pattern repeats. |
interval |
integer | No | Repeat every N periods of frequency. |
days_of_week |
array of string | No | |
end_date |
string (date) | No | YYYY-MM-DD. |
series_id |
string or null | No | Groups the appointments generated from one recurring booking. |
Request¶
curl --location '{base_url}/v2/appointments' \
--header 'Authorization: Bearer JWT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"patient_id": "63120",
"provider_id": "2094",
"clinic_id": "5831",
"appointment_type_id": "318",
"start_time": "2026-09-14T16:00:00Z",
"end_time": "2026-09-14T17:00:00Z",
"spry_case_id": "SPRY-63120-2",
"payment_mode": "INSURANCE_PAY",
"notes": null,
"recurrence": {
"frequency": "WEEKLY",
"interval": 1,
"days_of_week": [
"MONDAY",
"TUESDAY"
],
"end_date": "2026-12-31",
"series_id": null
}
}'
Response¶
Success Response¶
Code: 201 Created
{
"id": "418907",
"patient_id": "63120",
"provider_id": "2094",
"clinic_id": "5831",
"spry_case_id": "SPRY-63120-2",
"referring_therapist_id": null,
"appointment_type_id": "318",
"start_time": "2026-09-14T16:00:00Z",
"end_time": "2026-09-14T17:00:00Z",
"status": "CONFIRMED",
"payment_mode": "INSURANCE_PAY",
"telehealth_url": null,
"notes": null,
"source": "EXTERNAL_API",
"recurrence": {
"frequency": "WEEKLY",
"interval": 1,
"days_of_week": [
"MONDAY",
"TUESDAY"
],
"end_date": "2026-12-31",
"series_id": null
},
"cancellation": null,
"checked_in_at": null,
"checked_out_at": null,
"patient": {
"patient_id": "63120",
"first_name": "Morgan",
"middle_name": null,
"last_name": "Delgado",
"suffix": null,
"date_of_birth": "1991-07-23",
"gender": "MALE",
"email": "m.delgado@example.com",
"mobile": "+1-555-0155",
"address": {
"line1": "482 Willow Creek Rd",
"line2": null,
"city": "Fairview",
"state": "OR",
"postal_code": "97024",
"country": "US"
},
"preferred_language": "en",
"status": "CREATED",
"organisation_id": "7412",
"clinic_ids": [
"5831"
],
"provider_ids": [
"2094"
],
"referring_therapist_id": null,
"secondary_contact": null,
"photo_url": null,
"height": null,
"weight": null,
"tags": [
"HIGH_RISK",
"SPANISH_SPEAKING"
],
"created_at": "2026-08-27T14:30:00Z",
"updated_at": "2026-08-27T14:30:00Z"
},
"provider": {
"id": "418907",
"onboarding_provider_id": "d27a6b10-9f34-4e82-b5c1-7a03e8946fd2",
"user_id": "2094",
"first_name": "Morgan",
"middle_name": null,
"last_name": "Delgado",
"email": "m.delgado@example.com",
"mobile": "+1-555-0155",
"npi": "1740398215",
"license": "PT-30914",
"speciality": "PHYSICAL_THERAPY",
"sub_specialities": [
"PELVIC_FLOOR"
],
"qualifications": [
"DPT"
],
"photo_url": null,
"about": null,
"signature_url": null,
"status": "CONFIRMED",
"online_booking_enabled": true,
"clinics": [
{
"clinic_id": "5831",
"onboarding_clinic_id": "b41f7c92-5e08-4a13-8d6f-2c9147ab3e5d",
"status": "CONFIRMED",
"online_booking_enabled": true,
"hours": [
{
"days_of_week": [
"MONDAY",
"TUESDAY"
],
"start_time": "08:00",
"end_time": "17:00"
}
]
}
],
"home_health": {
"enabled": true,
"state_code": "OR",
"address": {
"line1": "482 Willow Creek Rd",
"line2": null,
"city": "Fairview",
"state": "OR",
"postal_code": "97024",
"country": "US"
},
"location": {
"lat": 45.5231,
"lng": -122.6765
},
"transport_mode": "CAR",
"max_drive_seconds": 1800,
"max_visits_per_week": 12,
"max_allowed_visits_per_slot": 1,
"target_hours_weekly": 18,
"online_booking": true,
"pet_comfort": true,
"stair_comfort": true,
"accepting_new_patients": true,
"schedules": [
{
"effective_start_date": "2026-09-01",
"effective_end_date": null,
"entries": [
{
"days_of_week": [
"MONDAY",
"TUESDAY"
],
"start_time": "08:00",
"end_time": "17:00",
"address": {
"line1": "482 Willow Creek Rd",
"line2": null,
"city": "Fairview",
"state": "OR",
"postal_code": "97024",
"country": "US"
},
"location": {
"lat": 45.5231,
"lng": -122.6765
}
}
]
}
],
"scheduling_overrides": {
"2026-09-17": {
"ranges": []
},
"2026-09-20": {
"ranges": [
{
"start_time": "10:00",
"end_time": "12:00"
}
]
}
}
},
"external_reference_id": "provider-4471",
"external_reference_metadata": {
"source_system": "example-hr",
"employee_id": "10442"
},
"patient_scoped": false,
"name_prefix": null,
"credential": "DPT",
"dob": "1991-07-23",
"gender": "MALE",
"ptan": null,
"sole_proprietor": false,
"taxonomies": [
{
"code": "97110",
"desc": null,
"group_code": null,
"group_desc": null,
"license": "PT-30914",
"primary": null,
"specialization": "PHYSICAL_THERAPY",
"state": "OR"
}
],
"primary_taxonomy_code": null,
"online_booking": [
{
"clinic_id": "5831",
"enabled": true
}
],
"schedule": [
{
"clinic_id": "5831",
"timings": [
{
"days_of_week": [
"MONDAY",
"TUESDAY"
],
"start_time": "08:00",
"end_time": "17:00"
}
]
}
],
"billing_profile_ids": [],
"billing_profiles": [
{
"billing_profile_id": "b7e4c1a2-6f3d-4e9b-9a51-2c8d0f7e3a14",
"display_name": null,
"effective_from": "2026-01-01",
"effective_to": null
}
],
"direct_access_permitted": null,
"referral_code": null,
"access_revoked": false,
"created_at": "2026-08-27T14:30:00Z",
"updated_at": "2026-08-27T14:30:00Z"
},
"clinic": {
"id": "418907",
"onboarding_clinic_id": "b41f7c92-5e08-4a13-8d6f-2c9147ab3e5d",
"organisation_id": "7412",
"name": "Example Therapy \u2014 Riverside",
"email": "m.delgado@example.com",
"phone": "+1-555-0143",
"fax": null,
"address": {
"line1": "482 Willow Creek Rd",
"line2": null,
"city": "Fairview",
"state": "OR",
"postal_code": "97024",
"country": "US"
},
"timezone": "America/Los_Angeles",
"npi": "1740398215",
"logo_url": "https://assets.example.com/logo.png",
"about": null,
"specialities": [
"PT",
"OT"
],
"hours": [
{
"days_of_week": [
"MONDAY",
"TUESDAY"
],
"start_time": "08:00",
"end_time": "17:00"
}
],
"online_booking_enabled": true,
"max_visits_per_slot": 3,
"status": "ONBOARDING",
"created_at": "2026-08-27T14:30:00Z",
"updated_at": "2026-08-27T14:30:00Z"
},
"coverage": {
"primary": {
"id": "418907",
"patient_id": "63120",
"rank": "PRIMARY",
"payer": {
"id": "418907",
"name": "Example Therapy \u2014 Riverside"
},
"member_id": "K631204418",
"group_number": "GRP-4471",
"group_name": null,
"plan": {
"name": "Example Therapy \u2014 Riverside",
"type": null
},
"coverage_type": "COMMERCIAL",
"subscriber": {
"relationship": "SELF",
"first_name": "Morgan",
"last_name": "Delgado",
"date_of_birth": "1991-07-23"
},
"effective_from": "2026-01-01",
"effective_to": null,
"status": "CONFIRMED",
"created_at": "2026-08-27T14:30:00Z",
"updated_at": "2026-08-27T14:30:00Z"
},
"secondary": {
"id": "418907",
"patient_id": "63120",
"rank": "PRIMARY",
"payer": {
"id": "418907",
"name": "Example Therapy \u2014 Riverside"
},
"member_id": "K631204418",
"group_number": "GRP-4471",
"group_name": null,
"plan": {
"name": "Example Therapy \u2014 Riverside",
"type": null
},
"coverage_type": "COMMERCIAL",
"subscriber": {
"relationship": "SELF",
"first_name": "Morgan",
"last_name": "Delgado",
"date_of_birth": "1991-07-23"
},
"effective_from": "2026-01-01",
"effective_to": null,
"status": "CONFIRMED",
"created_at": "2026-08-27T14:30:00Z",
"updated_at": "2026-08-27T14:30:00Z"
}
},
"created_at": "2026-08-27T14:30:00Z",
"updated_at": "2026-08-27T14:30:00Z"
}
The Location header carries the URL of the created resource.
Response Fields¶
| Field | Type | Description |
|---|---|---|
id |
string | The appointment id. |
patient_id |
string or null | The patient. Correlate on this — it's a stable id, and there's no external-reference field. |
provider_id |
string or null | The treating provider. |
clinic_id |
string or null | The clinic this record belongs to. |
spry_case_id |
string or null | The case's business key. |
referring_therapist_id |
string or null | The provider who referred the patient, as the visit kept it from its case when it was booked or last filed under another case. null when the visit has none, which includes every visit without a scheduling record, such as one created through this API. Absent when the lookup failed; the rest of the appointment is returned as usual. |
appointment_type_id |
string or null | The appointment type, from List Appointment Types. A single id, not a list. |
start_time |
string (date-time) | When the visit starts, as an ISO-8601 UTC instant. |
end_time |
string (date-time) or null | When the visit ends, as an ISO-8601 UTC instant. Computed from the appointment type's duration when omitted on create. |
status |
string or null | One of CONFIRMED, CANCELLED, SOAP_COMPLETED, PI_FILLED, PATIENT_CHECKIN, PATIENT_CHECKOUT, IN_PROCESS. |
payment_mode |
string or null | How the visit is paid for. Required on create; omitting it fails the booking with an unhelpful error. One of CASH, CARD, UPI, WALLET, SELF_PAY, INSURANCE_PAY, BILLING. |
telehealth_url |
string or null | Video visit link, when the appointment is virtual. |
notes |
string or null | |
source |
string or null | Where the record originated. |
recurrence |
object or null | Recurrence rule. null for a one-off. See Recurrence. |
cancellation |
object or null | Cancellation details. null unless the appointment was cancelled. See Cancellation. |
checked_in_at |
string (date-time) or null | Set by Check In. |
checked_out_at |
string (date-time) or null | Set by Check Out. |
patient |
object or null | See Patient. |
provider |
object or null | See Provider. |
clinic |
object or null | See Clinic. |
coverage |
object | See Coverage. |
created_at |
string (date-time) or null | |
updated_at |
string (date-time) or null |
Recurrence¶
| Field | Type | Description |
|---|---|---|
frequency |
string | How often the pattern repeats. |
interval |
integer | Repeat every N periods of frequency. |
days_of_week |
array of string | |
end_date |
string (date) | YYYY-MM-DD. |
series_id |
string or null | Groups the appointments generated from one recurring booking. |
Cancellation¶
| Field | Type | Description |
|---|---|---|
reason_key |
string or null | Cancellation reason. Free text, not an enum. |
reason_code |
string or null | Machine-readable cancellation reason code, matching a reason_key from Appointment Cancellation Reasons when the appointment was cancelled with one of those. |
comment |
string or null | |
cancelled_at |
string (date-time) or null | |
fee |
number or null | Cancellation fee applied, when any. |
Patient¶
| Field | Type | Description |
|---|---|---|
patient_id |
string | The patient. Correlate on this — it's a stable id, and there's no external-reference field. |
first_name |
string | |
middle_name |
string or null | |
last_name |
string | |
suffix |
string or null | |
date_of_birth |
string (date) or null | YYYY-MM-DD. |
gender |
string or null | Administrative gender, matching FHIR Patient.gender — used for demographics and claims, not a clinical assertion. One of MALE, FEMALE, OTHER, UNKNOWN. |
email |
string or null | |
mobile |
string or null | |
address |
object or null | See Address. |
preferred_language |
string or null | ISO 639-1 language code — one of en, es, fr, de, it, pt, ru, ar, hy, cy, zh, zh-Hans, zh-Hant, ja, ko, th, jv, hi, bn, gu, kn, ml, mr, or, pa, ta, te, ur. |
status |
string | One of CREATED, ACTIVE, INACTIVE, DISCHARGED. |
organisation_id |
string or null | The organisation this record belongs to. Derived from the access token on writes and never trusted from the body. |
clinic_ids |
array of string | Clinics this record is associated with. |
provider_ids |
array of string | Providers associated with this record. |
referring_therapist_id |
string or null | The provider who referred the patient. null for none. Read-only. |
secondary_contact |
string or null | |
photo_url |
string or null | A fetchable URL. It may be a time-limited signed URL, so fetch it rather than storing it. |
height |
string or null | |
weight |
string or null | |
tags |
array of string | Labels applied to the patient. [] when the patient has none — and also when the tags lookup fails, since a tags outage does not fail the whole patient read. Always [] on List Patients, which skips the per-patient tags lookup; read a patient by id for its tags. Read-only for now. |
created_at |
string (date-time) or null | |
updated_at |
string (date-time) or null |
Address¶
| Field | Type | Description |
|---|---|---|
line1 |
string or null | |
line2 |
string or null | |
city |
string or null | |
state |
string or null | |
postal_code |
string or null | |
country |
string or null |
Provider¶
| Field | Type | Description |
|---|---|---|
id |
string or null | The appointment id. |
onboarding_provider_id |
string or null | The provider's onboarding-record UUID. |
user_id |
string or null | The provider's user id. Same value as the provider id; both are returned rather than leaving that implicit. |
first_name |
string or null | |
middle_name |
string or null | |
last_name |
string or null | |
email |
string or null | |
mobile |
string or null | |
npi |
string or null | |
license |
string or null | |
speciality |
string or null | The record's primary speciality. |
sub_specialities |
array of string | The provider's sub-specialities, as codes from your organisation's own list, which Spry configures per organisation. A code that isn't on that list is refused, and so is the same code twice. Replaces the whole list on write; null clears it. |
qualifications |
array of string | |
photo_url |
string or null | A fetchable URL. It may be a time-limited signed URL, so fetch it rather than storing it. |
about |
string or null | |
signature_url |
string or null | A fetchable URL. Treat it as time-limited and fetch it rather than storing it. In environments where signing is unavailable the raw stored value is returned, which isn't fetchable. |
status |
string or null | |
online_booking_enabled |
boolean or null | Whether this record is bookable through online booking. |
clinics |
array of object | See Clinics. |
home_health |
object or null | Home-visit settings for this provider. null when the provider has no home-visit configuration. See Home Health. |
external_reference_id |
string or null | Your own identifier for this provider. Stored only — it has no effect on Spry behaviour. |
external_reference_metadata |
object or null | Your own reference data for this provider, as a JSON object. Stored only — Spry never reads it, and its keys come back exactly as sent. It must not contain patient data. Send ids as strings: integers above 2^53 lose precision. At most 16 KB serialized and 5 levels deep; keys may not contain . or start with $. On update, {"key": null} inside it removes that key and null clears the whole object. |
patient_scoped |
boolean | When true, restricts the provider to only their own assigned patients (HIPAA minimum-necessary). When false (default), the provider can access all patients in the organisation. |
name_prefix |
string or null | |
credential |
string or null | |
dob |
string (date) or null | YYYY-MM-DD. |
gender |
string or null | Administrative gender, matching FHIR Patient.gender — used for demographics and claims, not a clinical assertion. |
ptan |
string or null | Provider Transaction Access Number. |
sole_proprietor |
boolean or null | |
taxonomies |
array of object | See Taxonomies. |
primary_taxonomy_code |
string or null | NUCC provider taxonomy code. |
online_booking |
array of object | Whether this record is bookable through online booking. See Online Booking. |
schedule |
array of object | See Schedule. |
billing_profile_ids |
array of string | Billing profiles attached to this provider. On write it changes membership only and keeps the affiliation dates — prefer billing_profiles. |
billing_profiles |
array of object | The profiles in billing_profile_ids, in the same order, each with this provider's affiliation window. On write it replaces the whole list: the provider is attached to exactly the profiles listed, and a date left out or null is cleared. Sent together with billing_profile_ids, both must name the same profiles (422 otherwise). See Billing Profiles. |
direct_access_permitted |
boolean or null | |
referral_code |
string or null | |
access_revoked |
boolean | Whether the provider's onboarding access has been revoked. |
created_at |
string (date-time) or null | |
updated_at |
string (date-time) or null |
Clinics¶
| Field | Type | Description |
|---|---|---|
clinic_id |
string or null | The clinic this record belongs to. |
onboarding_clinic_id |
string or null | The clinic's onboarding-record UUID. Always present for clinics created through onboarding, and the only way to address one before it's published. |
status |
string or null | |
online_booking_enabled |
boolean or null | Whether this record is bookable through online booking. |
hours |
array of object | Working hours, as one entry per distinct daily pattern. See Hours. |
Hours¶
| Field | Type | Description |
|---|---|---|
days_of_week |
array of string | Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. |
start_time |
string | When the visit starts, as an ISO-8601 UTC instant. 24-hour HH:MM. |
end_time |
string | When the visit ends, as an ISO-8601 UTC instant. Computed from the appointment type's duration when omitted on create. 24-hour HH:MM. |
Home Health¶
| Field | Type | Description |
|---|---|---|
enabled |
boolean | |
state_code |
string or null | Two-letter state the provider is licensed to visit in. |
address |
object or null | See Address. |
location |
object or null | Geographic point the visit window is anchored to. See Location. |
transport_mode |
string or null | How the provider travels between visits. One of CAR, BIKE, WALK, TRANSIT. |
max_drive_seconds |
integer or null | Longest drive the provider will accept between consecutive visits, in seconds: 1500 (25 minutes) to 14400 (4 hours). Defaults to 1800. |
max_visits_per_week |
integer or null | Cap on home visits per week, 1 to 100. Defaults to 2. |
max_allowed_visits_per_slot |
integer or null | Home visits per schedule slot. Always 1; ignored on write. |
target_hours_weekly |
integer or null | Target hours of home visits per week, derived from max_visits_per_week: ×1.4 under 10 visits, ×1.5 for 10–19, ×1.6 from 20, rounded up to a whole hour. Ignored on write. |
online_booking |
boolean or null | Whether this record is bookable through online booking. |
pet_comfort |
boolean | Whether the provider will visit homes with pets. Always true; ignored on write. |
stair_comfort |
boolean | Whether the provider will visit homes requiring stairs. Always true; ignored on write. |
accepting_new_patients |
boolean or null | Whether this provider is accepting new home-health patients. Defaults to true. |
schedules |
array of object | Independent home-visit availability periods, each with its own weekly entries[]. Periods must not overlap, and at most one may be open-ended. See Schedules. |
scheduling_overrides |
object | Per-date exceptions to the weekly schedule, keyed YYYY-MM-DD. A key's presence is what marks a day off from no override — empty ranges (absent entirely on read) means no visits that day, and a populated ranges[], each a {start_time, end_time} window with an optional address/location to anchor it away from the provider's home base, replaces the weekly pattern for that date. Every date must fall inside one of schedules[]'s periods, and past dates are rejected. On write, an explicit null clears a key and restores the weekly pattern; an omitted key is left alone. |
Location¶
| Field | Type | Description |
|---|---|---|
lat |
number | Latitude, decimal degrees. |
lng |
number | Longitude, decimal degrees. |
Schedules¶
| Field | Type | Description |
|---|---|---|
effective_start_date |
string (date) | When this period takes effect. YYYY-MM-DD. |
effective_end_date |
string (date) or null | When this period stops applying. null for open-ended — periods must not overlap, and at most one may be open-ended. YYYY-MM-DD. |
entries |
array of object | See Entries. |
Entries¶
| Field | Type | Description |
|---|---|---|
days_of_week |
array of string | Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. |
start_time |
string | When the visit starts, as an ISO-8601 UTC instant. 24-hour HH:MM. |
end_time |
string | When the visit ends, as an ISO-8601 UTC instant. Computed from the appointment type's duration when omitted on create. 24-hour HH:MM. |
address |
object | See Address. |
location |
object | Geographic point the visit window is anchored to. See Location. |
Taxonomies¶
| Field | Type | Description |
|---|---|---|
code |
string | |
desc |
string or null | |
group_code |
string or null | |
group_desc |
string or null | |
license |
string or null | |
primary |
boolean or null | |
specialization |
string or null | |
state |
string or null |
Online Booking¶
| Field | Type | Description |
|---|---|---|
clinic_id |
string | The clinic this record belongs to. |
enabled |
boolean |
Schedule¶
| Field | Type | Description |
|---|---|---|
clinic_id |
string | The clinic this record belongs to. |
timings |
array of object | See Timings. |
Timings¶
| Field | Type | Description |
|---|---|---|
days_of_week |
array of string | Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. |
start_time |
string | When the visit starts, as an ISO-8601 UTC instant. 24-hour HH:MM. |
end_time |
string | When the visit ends, as an ISO-8601 UTC instant. Computed from the appointment type's duration when omitted on create. 24-hour HH:MM. |
Billing Profiles¶
| Field | Type | Description |
|---|---|---|
billing_profile_id |
string | The billing profile this record belongs to. |
display_name |
string or null | Read-only; null when the id matches no profile. |
effective_from |
string (date) or null | YYYY-MM-DD. |
effective_to |
string (date) or null | YYYY-MM-DD. |
Clinic¶
| Field | Type | Description |
|---|---|---|
id |
string or null | The appointment id. |
onboarding_clinic_id |
string or null | The clinic's onboarding-record UUID. Always present for clinics created through onboarding, and the only way to address one before it's published. |
organisation_id |
string or null | The organisation this record belongs to. Derived from the access token on writes and never trusted from the body. |
name |
string | |
email |
string or null | |
phone |
string or null | |
fax |
string or null | |
address |
object or null | See Address. |
timezone |
string or null | IANA timezone name. |
npi |
string or null | |
logo_url |
string or null | |
about |
string or null | |
specialities |
array of string | |
hours |
array of object | Working hours, as one entry per distinct daily pattern. See Hours. |
online_booking_enabled |
boolean | Whether this record is bookable through online booking. |
max_visits_per_slot |
integer or null | |
status |
string | One of ONBOARDING, ACTIVE, INACTIVE. |
created_at |
string (date-time) or null | |
updated_at |
string (date-time) or null |
Coverage¶
| Field | Type | Description |
|---|---|---|
primary |
object or null | See Primary. |
secondary |
object or null | See Secondary. |
Primary¶
| Field | Type | Description |
|---|---|---|
id |
string | The appointment id. |
patient_id |
string | The patient. Correlate on this — it's a stable id, and there's no external-reference field. |
rank |
string or null | The patient's general coordination-of-benefits order. Separate from a case's coverage pointers, which say which plans bill that episode — they legitimately differ. null when the card is unallocated. One of PRIMARY, SECONDARY, TERTIARY. |
payer |
object | The insurance payer, as a registry reference. See Payer. |
member_id |
string or null | The member's id on the plan. |
group_number |
string or null | |
group_name |
string or null | |
plan |
object | The plan on this coverage. See Plan. |
coverage_type |
string or null | How this plan is billed. One of COMMERCIAL, MEDICARE, MEDICAID, WORKERS_COMP, MVC, SELF_PAY. |
subscriber |
object or null | The plan's subscriber, when it is not the patient. See Subscriber. |
effective_from |
string (date) or null | YYYY-MM-DD. |
effective_to |
string (date) or null | YYYY-MM-DD. |
status |
string | |
created_at |
string (date-time) or null | |
updated_at |
string (date-time) or null |
Payer¶
| Field | Type | Description |
|---|---|---|
id |
string or null | The appointment id. |
name |
string or null |
Plan¶
| Field | Type | Description |
|---|---|---|
name |
string or null | |
type |
string or null |
Subscriber¶
| Field | Type | Description |
|---|---|---|
relationship |
string | The subscriber's relationship to the patient. One of SELF, SPOUSE, CHILD, OTHER. |
first_name |
string or null | |
last_name |
string or null | |
date_of_birth |
string (date) or null | YYYY-MM-DD. |
Secondary¶
| Field | Type | Description |
|---|---|---|
id |
string | The appointment id. |
patient_id |
string | The patient. Correlate on this — it's a stable id, and there's no external-reference field. |
rank |
string or null | The patient's general coordination-of-benefits order. Separate from a case's coverage pointers, which say which plans bill that episode — they legitimately differ. null when the card is unallocated. One of PRIMARY, SECONDARY, TERTIARY. |
payer |
object | The insurance payer, as a registry reference. See Payer. |
member_id |
string or null | The member's id on the plan. |
group_number |
string or null | |
group_name |
string or null | |
plan |
object | The plan on this coverage. See Plan. |
coverage_type |
string or null | How this plan is billed. One of COMMERCIAL, MEDICARE, MEDICAID, WORKERS_COMP, MVC, SELF_PAY. |
subscriber |
object or null | The plan's subscriber, when it is not the patient. See Subscriber. |
effective_from |
string (date) or null | YYYY-MM-DD. |
effective_to |
string (date) or null | YYYY-MM-DD. |
status |
string | |
created_at |
string (date-time) or null | |
updated_at |
string (date-time) or null |
Error Response¶
Code: 400 Bad Request
{
"code": "bad_request",
"message": "Validation failed",
"errors": [
{
"field": "patient_id",
"message": "must be a string"
}
]
}
Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.
| Status | code |
Meaning |
|---|---|---|
400 Bad Request |
bad_request |
The request body or parameters failed validation. errors[] names the offending fields. |
401 Unauthorized |
unauthorized |
The access token is missing, malformed or expired. |
403 Forbidden |
forbidden |
The request references a resource outside the token's organisation or clinic scope. |
404 Not Found |
not_found |
No such resource, or it's outside your scope. |
429 Too Many Requests |
rate_limited |
Rate limit exceeded. Back off and retry. |
500 Internal Server Error |
internal_error |
Unexpected server error. |
502 Bad Gateway |
upstream_error |
Upstream service failed or timed out. |