reference.
Only
/extract calls the vision model, so only /extract is metered. The allowance is checked before any file is read.
The main path
What you pass from one call to the next:/assess takes the same body as /verify and runs the same verification first. If you want both answers, call /assess only: its verification key holds the full verdict.
Why send the entries back
/verify does not read files. It checks the documents[] entries you send, so it needs what /extract saw: the document type, the fields, the file dates and the step_key. Without the step_key the same document could pass the type check at /extract and fail it at /verify. The API puts the step_key on each entry for that reason.
If you edit an entry, you verify your edit, not the document.
The eID path
There is no callback from the provider. You poll, and Sahl sends thekyc.eid_completed webhook the first time a poll sees the end state. Details are in eID check. In this version eID is a Canadian-client feature, so the sample request uses country=CA; every other call on this page takes any country, for example MA.
Case life cycle
A case exists once per workspace, environment andreference. Each call with that reference updates it.
A re-verify never overwrites a status a person set: approved and refused stay.
Choosing the calls
The API has no idempotency key and no batch endpoint. Sending the same call twice reads the files twice and counts two reads, and files a second set of documents on the case. See Errors and retries.