Skip to content
Skip to content

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.

https://api.embedcare.com/v1/visitsPOST
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.created

A visit was accepted and is being routed.

visit.status_changed

A visit moved status (in_review → prescribed/declined, etc.).

order.shipped

The pharmacy shipped the medication.

message.received

The 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.

Bring your stack. We'll meet it.