API reference#
The Verification API is a JSON REST API for starting, reporting, and checking phone number
verifications. All endpoints use the /api/v1 base path and require an
Authorization header. See Authentication.
Base URLs#
Environment |
Base URL |
|---|---|
Production |
|
Sandbox |
|
Note
Use the sandbox environment to test your integration without charging your account or contacting real destinations. Use credentials created in the same environment as the selected base URL. Sandbox and production credentials are not interchangeable. See Choose an environment.
Endpoints#
Method |
Path |
Description |
|---|---|---|
|
Start a verification. |
|
|
Report the code the user submitted. |
|
|
Get the current status of a verification. |
|
|
Report the code for the latest verification associated with a phone number. |
|
|
Get the status of the latest verification for a phone number. |
Request and response format#
Send request bodies with Content-Type: application/json and request JSON responses with
Accept: application/json.
Successful endpoint responses return the verification under a top-level data key.
Unsuccessful HTTP responses return an errors array. See
Errors and status codes.
OpenAPI specification#
A machine-readable OpenAPI 3.0 description of the Verification API is available as a JSON file:
Import it into Postman, Insomnia, or an OpenAPI code generator, or point an AI assistant at it. See AI best practices for guidance on using the specification with AI tools.
The verification object#
The start, report, and status endpoints all return the same verification object under a
top-level data key.
Field |
Type |
Availability |
Description |
|---|---|---|---|
|
|
Always |
Verification identifier (UUID). |
|
|
Always |
Destination number normalized to E.164 without a leading |
|
|
Always |
The method used to deliver the verification challenge. Supported values are |
|
|
Always |
Quoted verification fee including VAT, represented as a decimal string, for example
|
|
|
Always |
The current state of the verification. Supported values are |
|
|
Always (nullable) |
Machine-readable reason for a failed, expired, or denied verification. The value is
|
|
|
Always (nullable) |
Fixed human-readable text for |
|
|
Always |
When the verification expires, in ISO 8601 format. |
|
|
SMS only |
Contains |
|
|
Phone call only |
Contains |
Each response includes at most one delivery-specific object, named after delivery_method.
Both sms.language and callout.language report the language the API selected,
which is not necessarily the first one requested. Compare the returned tag with the list you
sent to detect a fallback to en-US.