{"openapi":"3.1.0","info":{"title":"Embed Care Partner API","version":"2026-06-01","description":"Send patients into your program and receive status as care progresses. REST + JSON, key auth, idempotent writes, and signed webhooks. One owned record per patient across every surface."},"servers":[{"url":"https://api.embedcare.com/v1"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Per-tenant API key (ec_live_…)"}}},"security":[{"bearerAuth":[]}],"paths":{"/v1/visits":{"post":{"operationId":"create-visit","summary":"Create a visit","description":"Submit a completed intake. We check eligibility, route to an eligible clinician (internal first, external network fallback), and start the SLA clock.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Create a visit","content":{"application/json":{"example":{"id":"vis_8f2a9c1d","status":"received","condition":"weight-loss","routed_to":"internal","sla_due_minutes":30,"external_ref":"crm_44128","created_at":"2026-06-26T17:04:00Z"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["patient","condition","intake"],"properties":{"patient":{"type":"object","description":"name, dob, state (2-letter), email"},"condition":{"type":"string","description":"Catalog key, e.g. weight-loss, ed, hair, primary-care"},"intake":{"type":"object","description":"Answer map for the condition's intake; validated server-side"},"external_ref":{"type":"string","description":"Your ID for this patient — echoed back on webhooks"}}}}}}},"get":{"operationId":"list-visits","summary":"List visits","description":"Page through your tenant's visits, newest first. Filter by status or condition.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List visits","content":{"application/json":{"example":{"data":[{"id":"vis_8f2a9c1d","status":"prescribed","condition":"weight-loss"}],"next_cursor":"eyJvIjoyNX0"}}}}},"parameters":[{"name":"status","in":"query","required":false,"description":"received | in_review | prescribed | declined | shipped","schema":{"type":"string"}},{"name":"condition","in":"query","required":false,"description":"Catalog key","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1–100 (default 25)","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"Pagination cursor from the previous page","schema":{"type":"string"}}]}},"/v1/visits/{id}":{"get":{"operationId":"get-visit","summary":"Retrieve a visit","description":"Fetch a visit's current status, assigned clinician, and care plan once issued.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Retrieve a visit","content":{"application/json":{"example":{"id":"vis_8f2a9c1d","status":"prescribed","condition":"weight-loss","clinician":{"name":"Dr. Patel","credentials":["MD"]},"care_plan":{"medication":"Semaglutide 0.25mg","summary":"Titrate monthly; check-in in 4 weeks."},"updated_at":"2026-06-26T18:22:00Z"}}}}},"parameters":[{"name":"id","in":"path","required":true,"description":"Visit id (vis_…)","schema":{"type":"string"}}]}},"/v1/visits/{id}/messages":{"post":{"operationId":"message-visit","summary":"Message the patient","description":"Send a secure message tied to a visit. Appears in the patient portal and the unified comms timeline.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Message the patient","content":{"application/json":{"example":{"id":"msg_2b71","visit_id":"vis_8f2a9c1d","channel":"portal","delivered":true}}}}},"parameters":[{"name":"id","in":"path","required":true,"description":"Visit id","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["channel","body"],"properties":{"channel":{"type":"string","description":"sms | email | portal"},"body":{"type":"string","description":"Message text"}}}}}}}},"/v1/webhooks":{"post":{"operationId":"register-webhook","summary":"Register a webhook","description":"Subscribe an HTTPS endpoint to events. We sign every delivery; verify with your signing secret.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Register a webhook","content":{"application/json":{"example":{"id":"whk_19a2","url":"https://brand.co/webhooks/embed","events":["visit.status_changed"],"signing_secret":"whsec_…"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string","description":"Your HTTPS endpoint"},"events":{"type":"array","description":"Event names to subscribe (or [\"*\"])"}}}}}}}}},"webhooks":{"visit.created":{"post":{"summary":"A visit was accepted and is being routed.","requestBody":{"content":{"application/json":{"example":{"id":"vis_8f2a9c1d","status":"received","condition":"weight-loss","external_ref":"crm_44128"}}}},"responses":{"200":{"description":"Acknowledged"}}}},"visit.status_changed":{"post":{"summary":"A visit moved status (in_review → prescribed/declined, etc.).","requestBody":{"content":{"application/json":{"example":{"id":"vis_8f2a9c1d","status":"prescribed","previous":"in_review","clinician":"Dr. Patel"}}}},"responses":{"200":{"description":"Acknowledged"}}}},"order.shipped":{"post":{"summary":"The pharmacy shipped the medication.","requestBody":{"content":{"application/json":{"example":{"visit_id":"vis_8f2a9c1d","carrier":"DirectMeds","tracking":"DM123456789","eta":"2026-06-27"}}}},"responses":{"200":{"description":"Acknowledged"}}}},"message.received":{"post":{"summary":"The patient replied in the portal.","requestBody":{"content":{"application/json":{"example":{"visit_id":"vis_8f2a9c1d","channel":"portal","body":"Thanks — starting tonight."}}}},"responses":{"200":{"description":"Acknowledged"}}}}}}