Technology · API
Your systems in. Clinical status out.
The Partner API connects Embed Care to whatever you already run — your app, your CRM, your storefront. Send a completed intake; we handle eligibility, routing, prescribing, and fulfillment, and push every status change back to you. REST + JSON, one owned record per patient.
POST /v1/visits
Authorization: Bearer ec_live_****
Idempotency-Key: 5f2c…
{
"patient": { "email": "…", "state": "TX" },
"condition": "weight-loss",
"intake_id": "intk_9f31"
}
→ 201 { "id": "vst_18d2",
"status": "in_review",
"sla_minutes": 60 }Tenant-scoped keys
Bearer auth with per-tenant keys — a key only ever sees its own patients. Row-level security is the default, not an option.
Idempotent writes
Every POST accepts an Idempotency-Key. Retries return the original result instead of a duplicate visit — safe against flaky networks.
Signed webhooks
Care status pushes to your systems as it changes — visit approved, prescription shipped, refill upcoming — each event signed so you can verify it came from us.
Bearer auth with a per-tenant key (Authorization: Bearer ec_live_…). Keys are tenant-scoped — a key only ever sees its own patients (row-level security). Rotate keys from Partner → Settings. All POSTs accept an Idempotency-Key header. Replaying a key returns the original result (HTTP 200) instead of creating a duplicate — safe to retry on network errors.
Endpoints
The surface, at a glance
A deliberately small API: send patients in, read status back, stay subscribed to everything in between.
- POST
/v1/visitsCreate a visit - GET
/v1/visits/{id}Retrieve a visit - GET
/v1/visitsList visits - POST
/v1/visits/{id}/messagesMessage the patient - POST
/v1/webhooksRegister a webhook
Webhooks
You never poll. Care status comes to you.
visit.createdA visit was accepted and is being routed.
visit.status_changedA visit moved status (in_review → prescribed/declined, etc.).
order.shippedThe pharmacy shipped the medication.
message.receivedThe patient replied in the portal.
The Partner API is rolling out with design partners — the contract above is the one we build against. If your integration needs something it doesn't cover, that's a conversation we want to have.