One resource, three stages
There are no capability-specific endpoints. Everything you build starts with the same call,POST /task/create, and the only lever that changes what Synthpop does
is the task_type you pass. Intake, coverage, and engagement are not separate
products with separate APIs; they are different task_type values flowing through
the same create → process → read loop.
Task types are provisioned for your organization during onboarding. There is
no discovery endpoint — the concrete values available to you come from your
Synthpop contact. Passing an unprovisioned type returns
400 "Task type 'X' not in list of tasks for your organization: [...]."Following one patient through
1
Intake — turn documents into structured data
A packet lands: a multi-page fax, a scanned order, an insurance card, a
clinical note. You upload it as-is. Synthpop classifies each document, extracts
the clinical and demographic detail, and returns it as structured
medical records on the Task — no
templates, no manual keying.This is the mainline capability. See
Referral & order intake.
2
Coverage — decide whether the documentation holds up
With the records in hand, Synthpop evaluates the submission against the
clinical criteria and the patient’s payer policy. The outcome is expressed as
Results: a per-code verdict (approved or not), the
specific issues that stand in the way, and a plain-English conclusion you can
show a human.Coverage is evaluated within a validation Task — its results appear in the
same response, not behind a separate call. See
Coverage & authorization.
3
Engagement — move the patient forward
When something is missing or a patient needs to be reached, engagement runs as
its own Task (a voice
task_type, for enabled organizations). The voice
agent places outbound calls and handles inbound ones, working the
follow-up end to end. Same Task model, same TaskDetails shape as every other
capability — a separate Task, tied to the patient’s other work by your
external_id.See Patient engagement.Why it reads as one flow
Because every capability speaks the same Task model, what you learn once applies everywhere — and you tie a patient’s Tasks together withexternal_id:
- One response shape. Every Task returns a
TaskDetailsobject. Learn its Data Items and Results once and you can read intake, coverage, and engagement the same way. - One asynchronous model. Every Task is created immediately with
status: "pending"and processed in the background. You observe progress the same way everywhere — pollingGET /task/getor receiving a callback. See Async results. - One correlation key. Attach your own
external_idon create and thread it through every Task for a patient to tie Synthpop’s work back to the case in your system.
A journey is one or more Tasks — you stitch them together, not Synthpop.
Intake and coverage share a validation Task; engagement is a separate voice
Task; a superseding submission is another Task again. There is no parent/child
field on a Task — correlate a patient’s Tasks yourself with
external_id and
GET /task/list.Where to go next
Tasks
The core resource and its status lifecycle.
Data Items
Inputs, outputs, and extracted medical records.
Results
Verdicts, issues, and conclusions.
Quickstart
From an API key to a validated Task.

