Skip to main content
GET
Get a phone verification
Retrieve everything Prelude recorded for a single phone verification: the outcome, the device, network and anti-fraud context it was created in, the timeline of every message attempt and code check, and the anti-fraud signals you forwarded. Use it to investigate a verification that behaved unexpectedly (a code that never arrived, a check that was refused, a request the anti-fraud system blocked) without opening the dashboard.
lifecycle and signals are both optional: a verification can resolve with its top-level fields alone.
While a verification can still be completed, Prelude withholds its code: the code is masked inside an attempt’s content, and a check’s value is absent entirely. Both show the real code once the verification can no longer be completed, so polling this endpoint is never a way to read a code that is still in play.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

The verification identifier.

Example:

"vrf_01jc0t6fwwfgfsq1md24mhyztj"

Response

OK

A verification and everything Prelude recorded about it.

id
string
required

The verification identifier.

Example:

"vrf_01jc0t6fwwfgfsq1md24mhyztj"

phone_number
string<phone_number>
required

The E.164 phone number the verification targeted.

Example:

"+33612345678"

status
enum<string>
required

The outcome of the verification.

  • converted - The end user submitted a valid code.
  • not_converted - The verification expired without a valid code.
  • pending_check - A code was delivered and Prelude is still waiting for a check.
  • sent - A code was sent and the verification window is still open.
  • challenged - The verification was restricted to non-SMS and non-voice channels.
  • suspected_fraud - The anti-fraud system blocked the verification.
  • in_blocklist - The phone number is on the configured block list.
  • invalid_line - The phone number is not a valid line type.
  • invalid_number - The phone number is not a valid number.
  • rate_limited - The verification was refused by a rate limit.
  • expired_signals - The SDK signals were collected too long before the request.
  • shadowed - The anti-fraud system flagged the verification without blocking it.
Available options:
converted,
not_converted,
pending_check,
sent,
challenged,
suspected_fraud,
in_blocklist,
invalid_line,
invalid_number,
rate_limited,
expired_signals,
shadowed
created_at
string<date-time>
required
expires_at
string<date-time>
required
device_platform
enum<string>

Platform of the end-user device, when known.

Available options:
android,
ios,
ipados,
tvos,
web
device_model
string

Model of the end-user device, when known.

Example:

"iPhone15,2"

app_version
string

Version of your application, when known.

ip_address
string

IP address the verification was created from.

phone_number_region
string

ISO 3166-1 alpha-2 region of the phone number.

Example:

"FR"

ip_address_region
string

ISO 3166-1 alpha-2 region of the caller's IP address.

Example:

"FR"

ip_distance_meters
integer

Distance between the phone number region and the IP location.

carrier
object

The end user's mobile network.

block_reasons
enum<string>[]

Why the anti-fraud system blocked the verification. Empty unless it did.

  • behavioral_pattern - The phone number past behavior during verification flows exhibits suspicious patterns.
  • device_attribute - The end-user device reported attributes associated with fraud or emulation.
  • fraud_database - The phone number appears in a fraud database.
  • location_discrepancy - The phone number region and the observed location disagree.
  • missing_signals - The verification expected Prelude SDK signals and none arrived.
  • network_fingerprint - The network fingerprint matches known fraudulent traffic.
  • poor_conversion_history - The phone number rarely completes the verifications it starts.
  • prefix_concentration - The phone number is part of a range known to be associated with suspicious activity patterns.
  • repeated_number - The phone number was used far more often than normal traffic would explain.
  • suspected_request_tampering - The SDK signals were altered or expired between collection and use.
  • suspicious_ip_address - The originating IP address is associated with suspicious activity.
  • temporary_phone_number - The phone number is known to be a temporary or disposable number.
Available options:
behavioral_pattern,
device_attribute,
fraud_database,
location_discrepancy,
missing_signals,
network_fingerprint,
poor_conversion_history,
prefix_concentration,
repeated_number,
suspected_request_tampering,
suspicious_ip_address,
temporary_phone_number
phone_number_condition
enum<string>

Whether the phone number was allow-listed, block-listed, or sandboxed at verification time.

Available options:
allow_listed,
block_listed,
sandboxed
phone_number_current_condition
enum<string>

Whether the phone number is currently allow-listed, block-listed, or sandboxed.

Available options:
allow_listed,
block_listed,
sandboxed
signals_hash_status
enum<string>

Whether the SDK signals integrity check passed.

Available options:
valid,
invalid
correlation_id
string

The correlation identifier you supplied when creating the verification.

template_id
string

The template used for this verification.

lifecycle
object

Chronological timeline of the verification: creation, message attempts with delivery events, code checks and signals reception. Omitted when Prelude holds no timeline for the verification.

signals
object

The anti-fraud signals you forwarded when creating the verification.