Skip to content

API reference

Errors

Failures use one JSON shape. The code is stable. The message is for a person.

{
  "error": {
    "code": "invalid_request",
    "message": "sessionId: must be printable ASCII without spaces"
  }
}

Responses send Cache-Control: no-store. Do not retry a 4xx as if it might succeed unchanged. A 402 means the account needs a plan or has used its included checks. A 409 session_closed on create means that sessionId is finished: use a new one. Repeating an open sessionId returns 200, not an error.

HTTPCodeWhen
400invalid_jsonThe body is not JSON.
400invalid_requestA field failed validation. message names the field.
400invalid_webhook_urlThe webhook URL is not public HTTPS on port 443, or it contains credentials.
400webhook_host_unresolvedThe webhook host did not resolve.
401unauthenticatedThe bearer token is missing, unknown, or revoked.
402trial_exhaustedThe free allowance is used up.
402allowance_exhaustedThis billing period’s included checks are used up.
404not_foundNo session exists for that sessionId on this account.
409session_closedCreate was called with a sessionId that has already finished.
409not_openCancel was called on a session that is already finished.
413too_largeThe JSON body is over 256 KB. Images and video are not sent to the API.
500internal_errorSomething failed on our side. Retry create with the same sessionId.

A 5xx or a network timeout on create is safe to retry with the same sessionId. If the first call succeeded, the retry returns the existing session.

What the guest can use

Passports and driving licences issued in the United Kingdom (GB), Ireland (IE), and the United States (US). A passport is the photo page only. A driving licence is the front and the back. The guest also holds that same document beside their face.