ContactFollowUp API
A RESTful HTTP API for everything in your practice — patients, deals, appointments, secure messages, payments. JSON in, JSON out.
Authenticate
Issue a service-account token and send it as a Bearer header.
Read →
Make your first request
List the contacts in your account with one curl command.
Read →
Use webhooks
Receive inbox and EHR events with HMAC-signed payloads.
Read →
Read the OpenAPI spec
Generate clients or wire up your own tooling. Version 1.0.0.
Open file →
Quickstart
Every request goes to https://app.contactfollowup.com/api and authenticates with a bearer token. Tokens are issued from the in-app service accounts settings and have the same role-based scope as a user.
curl https://app.contactfollowup.com/api/contacts \
-H "Authorization: Bearer hns_xxxxxxx.yyyyyyyyyyyyyyyy"What you get
- REST + JSON. Predictable URLs, JSON bodies, conventional status codes.
- Bearer auth. Long-lived service-account tokens with role-scoped capabilities.
- RBAC scopes. Capability checks on every endpoint — contacts.read, deals.write, audit.read.
- Webhooks. HMAC-signed delivery for inbound mail, EHR sync, and lifecycle events.
- Rate limits. Per-token and per-account, returned in standard response headers.
- Audit log. Every create / update / delete writes an immutable audit row you can query.
- OpenAPI 3.1. Machine-readable spec covers the most-used endpoints — generate clients with it.
- HIPAA-aware. PHI columns are encrypted at rest; APIs surface fields per the same rules as the UI.
Conventions at a glance
| Topic | Convention |
|---|---|
| Base URL | https://app.contactfollowup.com/api |
| Auth | Header Authorization: Bearer hns_… |
| Content type | application/json; charset=utf-8 |
| IDs | cuid-style strings; never assume length |
| Timestamps | ISO 8601 UTC strings — e.g. 2026-05-18T14:00:00Z |
| Money | Cents as integers in amountCents fields. Always. |
| Errors | JSON with { "error": "…", "issues"?: […] } |
| Pagination | Cursor where available, limit/offset elsewhere |
Support
Found a bug or a gap? Open a thread from your account or write us at support@contactfollowup.com. PRs against the OpenAPI spec are welcome.