Limits and errors
Capability boundaries
Clinical resources require separately assigned scopes. Document and report operations manage metadata; they do not provide file upload, file download, clinical signing or delivery to a patient.
Availability is advisory and does not reserve a slot. Queries require a doctor, service and date; booking conflicts are checked when an appointment is created or changed. The appointment schema does not include serviceId or locationId.
Patient lookup and creation are separate operations, not an atomic upsert. Agree a matching policy before creating records automatically. Treat resource IDs as opaque. Consent fields do not grant marketing authorization.
Search filters use equality; no incremental change cursor or general date-range query language is defined. Use explicit UTC offsets in date-time writes. Status values and permitted transitions are resource-specific; confirm the assigned workflow before sending updates.
Request limits and errors
Read the assigned quotas from RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. For HTTP 429, respect the returned Retry-After when present and back off before retrying. Quotas for a partner are confirmed during onboarding.
List requests use limit and offset. The default page size is 50 and the maximum is 100. The response includes meta.pagination.
Check error.code and error.requestId. Typical statuses include 400 for invalid input, 401 for missing or invalid authentication, 403 for insufficient permission and 409 for a conflict. When retrying a supported create request, reuse its Idempotency-Key with the same payload.