Developer API
Build dashboards, exports, and custom integrations on top of your clinic data. REST over HTTPS, bearer-token auth, JSON responses. Every response is scoped to your clinic by the API key — there is no cross-clinic access.
Base URL
https://www.dentospire.com
Auth
Authorization: Bearer dk_…
Spec
/api/v1/openapi
· OpenAPI 3.1
Getting started:
Sign in and visit Settings → Developer API
to create a key. Pick the scopes you need (minimum privilege), copy the
dk_… token once — we hash it and never show it again — and pass it
as a bearer header on every request.
Endpoint summary
| Method | Path | Required scope | Description |
|---|---|---|---|
| GET | /api/v1/patients | patients:read | List patients with pagination, filters by clinic. |
| GET | /api/v1/appointments | appointments:read | List appointments by date range / status / doctor. |
| GET | /api/v1/treatments | treatments:read | List treatments per patient with surface-level codes. |
| GET | /api/v1/invoices | invoices:read | GST-compliant invoice records, payment status, HSN codes. |
| GET | /api/v1/analytics/summary | analytics:read | Daily/monthly clinic KPIs (revenue, no-show rate, conversions). |
All endpoints are scoped per clinic by the bearer token. Rate-limit: 60 req/min/key. Errors follow RFC 7807 (problem+json).
7 granular scopes
patients:readRead patient records.
appointments:readRead appointment data.
treatments:readRead treatment history.
invoices:readRead invoices & payments.
analytics:readRead clinic KPIs.
webhooks:writeSubscribe to events.
files:readDownload X-rays / docs.
Quick example
curl https://www.dentospire.com/api/v1/patients?limit=20 \
-H "Authorization: Bearer dk_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Accept: application/json"
Full interactive docs (request/response schemas, try-it-now console) are at /api/v1/openapi.