Skip to content
Developers

API Documentation

Order numbers, read codes and manage rentals from your own code. The API uses the same balance and prices as your dashboard, for every product.

  • REST and JSON over HTTPS
  • Bearer API key
  • Callbacks with retries
  • 100 requests a minute
  • Same prices as your dashboard

Getting started

Everything you need before your first request: the address, authentication, the response format and the errors you may see.

Base URL

https://textverification.io/api/v1/users

Authentication

Send your API key as a Bearer token: Authorization: Bearer YOUR_API_KEY. Generate a key in your account settings, and keep it on your server: anyone with it can spend your balance.

Requests and responses

Send request bodies as JSON (form fields work too). Every response is JSON with statusCode, success, message and data; prices are in US dollars, as strings with two decimals.

Quick start

Order a Pinpoint number and read its code. Every other product works the same way.

cURL
curl -X POST "https://textverification.io/api/v1/users/request-s2-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"1fe58df2"}'
Node.js
const API = "https://textverification.io/api/v1/users";
const headers = {
  Authorization: `Bearer ${process.env.API_KEY}`,
  "Content-Type": "application/json",
};

// 1. Order a number
const order = await fetch(`${API}/request-s2-service`, {
  method: "POST",
  headers,
  body: JSON.stringify({ serviceId: "1fe58df2" }),
}).then((res) => res.json());

// 2. Read the order (or set a callback URL instead of polling)
const { data } = await fetch(
  `${API}/number-details-s2?orderId=${order.data.orderId}`,
  { headers }
).then((res) => res.json());
Python
import os, requests

API = "https://textverification.io/api/v1/users"
headers = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

# 1. Order a number
order = requests.post(f"{API}/request-s2-service",
                      json={"serviceId": "1fe58df2"}, headers=headers).json()

# 2. Read the order (or set a callback URL instead of polling)
details = requests.get(f"{API}/number-details-s2",
                       params={"orderId": order["data"]["orderId"]},
                       headers=headers).json()
print(details["data"]["status"], details["data"]["pin"])

Errors

StatusDescription
400The request is invalid, or your balance doesn't cover the order.
401The API key is missing, invalid or inactive.
403Not allowed right now, for example too many open orders or a restricted account.
404The order or service doesn't exist, or isn't yours.
409The order can't change now (already completed or cancelled), or its price just changed.
422An option is invalid, such as an unknown area code or rental length.
429Too many requests: slow down and try again shortly.
503The product is unavailable right now. Try again later or use another product.

Prefer callbacks to polling: they reach your server the moment a code arrives. If you do poll an order, wait a few seconds between requests.

Rate limits

Each IP address can make up to 100 requests a minute, and each API key up to 600 a minute across all addresses. Every response carries RateLimit-Remaining and RateLimit-Reset headers. A request over the limit gets a 429 with a Retry-After header saying how many seconds to wait. Callbacks keep you well under it.

Keep your integration secure

  • Keep your API key on your server: never in a mobile app, in browser code or in a public repository.
  • If a key may have leaked, generate a new one in your account settings. The old key stops working at once.
  • Callback URLs must use HTTPS. Add a hard-to-guess token to the path, and check that each orderId belongs to an order you placed before acting on it.
  • Your key spends your balance: check it with the balance endpoint and top up before large batches.

Check your balance

Returns your account balance in US dollars.

GET/balance
Example request
curl "https://textverification.io/api/v1/users/balance" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": "120.50",
  "message": "Request Successful!",
  "success": true
}

Prime

US numbers with a choice of state, and premium requests for services that are out of stock.

List services and prices

Lists Prime's services with your price for each, after your discount.

GET/server1-pricing
Example request
curl "https://textverification.io/api/v1/users/server1-pricing" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "2264119e",
      "serviceName": "WhatsApp",
      "price": "1.30"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Price a service with options

Returns your price for one service with the options you'd order with.

GET/server1-price
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
areaCodestringNoA 3-digit US area code such as "212", to get a number from it. It takes priority over state and may add to the price.
requestPremiumnumberNoA premium for services that are out of stock: the order waits as pending and wins a number when one is available.
Example request
curl "https://textverification.io/api/v1/users/server1-price?serviceId=2264119e&areaCode=212&requestPremium=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "serviceId": "2264119e",
    "serviceName": "WhatsApp",
    "areaCode": "212",
    "requestPremium": 20,
    "price": "1.56"
  },
  "message": "Request Successful!",
  "success": true
}

List US states

Lists the US states you can ask for.

GET/us-states
Example request
curl "https://textverification.io/api/v1/users/us-states" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "CA": "CA",
    "FL": "FL",
    "NY": "NY",
    "TX": "TX"
  },
  "message": "Request Successful!",
  "success": true
}

Order a number

Orders one Prime number for a service and charges your balance.

POST/request-s1-service
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
statestringNoA US state code such as "NY", to get a number from that state.
areaCodestringNoA 3-digit US area code such as "212", to get a number from it. It takes priority over state and may add to the price.
requestPremiumnumberNoA premium for services that are out of stock: the order waits as pending and wins a number when one is available.

With a premium, an out-of-stock order waits as pending; you get an s1_win_premium_request callback when it wins a number.

Example request
curl -X POST "https://textverification.io/api/v1/users/request-s1-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"2264119e","state":"NY"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "55655059",
    "number": "12125550101",
    "serviceName": "WhatsApp",
    "status": "reserved",
    "state": "NY",
    "areaCode": "",
    "requestPremium": 0,
    "price": "1.30",
    "expiredIn": 900
  },
  "message": "Request Successful!",
  "success": true
}

Get an order

Returns an order with its status and, once it has arrived, the code.

GET/number-details-s1
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/number-details-s1?orderId=55655059" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "55655059",
    "number": "12125550101",
    "serviceName": "WhatsApp",
    "country": "United States",
    "state": "NY",
    "areaCode": "",
    "price": "1.30",
    "createdAt": "2026-10-09 12:44:00",
    "status": "completed",
    "message": "Your code is 482910",
    "pin": "482910"
  },
  "message": "Request Successful!",
  "success": true
}

Reuse a number

Orders the same number again for another code, where the service allows it.

POST/reuse-s1-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reuse-s1-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"55655059"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "55655059",
    "number": "12125550101",
    "serviceName": "WhatsApp",
    "country": "United States",
    "state": "NY",
    "areaCode": "",
    "price": "1.30",
    "status": "reserved",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a number

Cancels a number that hasn't received a code yet and refunds it to your balance.

POST/reject-s1-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reject-s1-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"55655059"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Pinpoint

US numbers with the area codes and carriers you choose, and the code by SMS or, where offered, by voice call.

List services and prices

Lists Pinpoint's services with your price for each, after your discount.

GET/server2-pricing
Example request
curl "https://textverification.io/api/v1/users/server2-pricing" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "1fe58df2",
      "serviceName": "google"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Price a service with options

Returns your price for one service with the options you'd order with.

GET/server2-price
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
areasstringNoArea codes to choose from, separated by commas (up to 10), e.g. "212,646". They add to the price.
carrierstringNoCarriers to choose from, separated by commas: tmo (T-Mobile), vz (Verizon), att (AT&T). They add to the price.
capabilitystringNo"sms" (the default), or "voice" to get the code by a call where voice calls are offered.
Example request
curl "https://textverification.io/api/v1/users/server2-price?serviceId=1fe58df2&areas=212%2C646&carrier=vz" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "serviceName": "google",
    "price": "1.53",
    "capability": "sms",
    "areaCode": true,
    "carrier": true
  },
  "message": "Request Successful!",
  "success": true
}

List area codes

Lists the US area codes you can ask for, with their states.

GET/server2-area-codes
Example request
curl "https://textverification.io/api/v1/users/server2-area-codes" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "areaCode": "212",
      "state": "New York"
    },
    {
      "areaCode": "503",
      "state": "Oregon"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Order a number

Orders one Pinpoint number for a service and charges your balance.

POST/request-s2-service
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
areasstringNoArea codes to choose from, separated by commas (up to 10), e.g. "212,646". They add to the price.
carrierstringNoCarriers to choose from, separated by commas: tmo (T-Mobile), vz (Verizon), att (AT&T). They add to the price.
capabilitystringNo"sms" (the default), or "voice" to get the code by a call where voice calls are offered.

Voice orders (capability "voice") are answered with Twilio's Voice SDK and the token from the voice token endpoint. The order completes when the call arrives, and its details list the call.

Example request
curl -X POST "https://textverification.io/api/v1/users/request-s2-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"1fe58df2","areas":"212,646","carrier":"vz,att"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "lr_01K7ABC",
    "number": "12125550102",
    "serviceName": "google",
    "status": "reserved",
    "areas": "212,646",
    "carrier": "vz,att",
    "capability": "sms",
    "price": "1.53",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Get an order

Returns an order with its status and, once it has arrived, the code.

GET/number-details-s2
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/number-details-s2?orderId=lr_01K7ABC" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "lr_01K7ABC",
    "number": "12125550102",
    "serviceName": "google",
    "country": "United States",
    "areas": "212,646",
    "carrier": "vz,att",
    "capability": "sms",
    "price": "1.53",
    "createdAt": "2026-10-09 12:44:00",
    "status": "completed",
    "message": "Your code is 482910",
    "pin": "482910"
  },
  "message": "Request Successful!",
  "success": true
}

Reuse a number

Orders the same number again for another code, where the service allows it.

POST/reuse-s2-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reuse-s2-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"lr_01K7ABC"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "lr_01K7ABC",
    "number": "12125550102",
    "serviceName": "google",
    "country": "United States",
    "areas": "212,646",
    "carrier": "vz,att",
    "capability": "sms",
    "price": "1.53",
    "status": "reserved",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a number

Cancels a number that hasn't received a code yet and refunds it to your balance.

POST/reject-s2-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reject-s2-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"lr_01K7ABC"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Get a voice call token

Returns a short-lived token for taking a voice order's call with Twilio's Voice SDK.

GET/s2-voice-token
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s2-voice-token?orderId=lr_01K7ABC" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "lr_01K7ABC",
    "token": "eyJhbGciOi…",
    "expiresIn": 540
  },
  "message": "Request Successful!",
  "success": true
}

Download a call recording

Returns the recording of a voice order's call, when one was kept.

GET/s2-voice-recording
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
callIdstringYesThe call's ID, from the order's calls.
Example request
curl "https://textverification.io/api/v1/users/s2-voice-recording?orderId=lr_01K7ABC&callId=call_8f2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
(audio file)

Flex

Several area codes and a carrier in one order, in the US and other countries on offer.

List services and prices

Lists Flex's services with your price for each, after your discount.

GET/server3-pricing
ParameterTypeRequiredDescription
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/server3-pricing" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "9a1c55e0",
      "serviceName": "Telegram",
      "price": "0.40"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List countries

Lists the countries Flex sells numbers in, with their codes.

GET/server3-countries
Example request
curl "https://textverification.io/api/v1/users/server3-countries" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "code": "us",
      "name": "United States"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Order a number

Orders one Flex number for a service and charges your balance.

POST/request-s3-service
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
areasstringNoArea codes, separated by commas (up to 10). They add to the price.
carrierstringNo"att" or "tmo". It adds to the price.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl -X POST "https://textverification.io/api/v1/users/request-s3-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"9a1c55e0","areas":"212,646","carrier":"tmo"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "48211973",
    "number": "16465550103",
    "serviceName": "Telegram",
    "country": "United States",
    "status": "reserved",
    "areas": "212,646",
    "carrier": "tmo",
    "price": "0.58",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Get an order

Returns an order with its status and, once it has arrived, the code.

GET/number-details-s3
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/number-details-s3?orderId=48211973" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "48211973",
    "number": "16465550103",
    "serviceName": "Telegram",
    "country": "United States",
    "price": "0.58",
    "createdAt": "2026-10-09 12:44:00",
    "status": "completed",
    "message": "Your code is 482910",
    "pin": "482910"
  },
  "message": "Request Successful!",
  "success": true
}

Reuse a number

Orders the same number again for another code, where the service allows it.

POST/reuse-s3-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reuse-s3-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"48211973"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "48211973",
    "number": "16465550103",
    "serviceName": "Telegram",
    "country": "United States",
    "price": "0.58",
    "status": "reserved",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a number

Cancels a number that hasn't received a code yet and refunds it to your balance.

POST/reject-s3-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reject-s3-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"48211973"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Global

Numbers from many countries: list the countries, then order for a service in one of them.

List services and prices

Lists Global's services with your price for each, after your discount.

GET/server4-pricing
ParameterTypeRequiredDescription
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/server4-pricing?country=gb" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "c41e7a02",
      "serviceName": "WhatsApp",
      "price": "0.35"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List countries

Lists the countries Global sells numbers in, with their codes.

GET/server4-countries
Example request
curl "https://textverification.io/api/v1/users/server4-countries" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "code": "us",
      "name": "United States"
    },
    {
      "code": "gb",
      "name": "United Kingdom"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Get verification and carrier options

Returns whether a service can be verified by FlashCall + SMS in a country, and the carriers numbers can come from, with the price of each choice.

GET/server4-options
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/server4-options?serviceId=c41e7a02&country=us" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "price": "2.70",
    "call": {
      "price": "3.00"
    },
    "carriers": {
      "surcharge": 20,
      "operators": [
        {
          "code": "at_t",
          "name": "AT&T"
        },
        {
          "code": "tmobile",
          "name": "T-Mobile"
        },
        {
          "code": "verizon",
          "name": "Verizon"
        }
      ],
      "price": "3.24",
      "callPrice": "3.60"
    }
  },
  "message": "Request Successful!",
  "success": true
}

Order a number

Orders one Global number for a service and charges your balance.

POST/request-s4-service
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
verificationstringNo"call" for FlashCall + SMS: the service calls the number and the calling number is the code. "sms" by default.
operatorstringNoA carrier's code from the options endpoint, to get a number from that carrier only. It adds the carrier surcharge. Any carrier by default.
Example request
curl -X POST "https://textverification.io/api/v1/users/request-s4-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"c41e7a02","country":"us","operator":"tmobile"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "3311842",
    "number": "12125550142",
    "serviceName": "WhatsApp",
    "country": "United States",
    "status": "reserved",
    "price": "3.24",
    "expiredIn": 1200,
    "carrier": "T-Mobile"
  },
  "message": "Request Successful!",
  "success": true
}

Get an order

Returns an order with its status and, once it has arrived, the code.

GET/number-details-s4
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/number-details-s4?orderId=3311842" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "3311842",
    "number": "12125550142",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "3.24",
    "createdAt": "2026-10-09 12:44:00",
    "status": "completed",
    "message": "Your code is 482910",
    "pin": "482910"
  },
  "message": "Request Successful!",
  "success": true
}

Reuse a number

Orders the same number again for another code, where the service allows it.

POST/reuse-s4-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reuse-s4-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"3311842"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "3311842",
    "number": "12125550142",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "3.24",
    "status": "reserved",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a number

Cancels a number that hasn't received a code yet and refunds it to your balance.

POST/reject-s4-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reject-s4-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"3311842"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Smart

Low-cost numbers from many countries, with area codes, priority and up to 5 numbers per request.

List services and prices

Lists Smart's services with your price for each, after your discount.

GET/server5-pricing
ParameterTypeRequiredDescription
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/server5-pricing" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "7d0f3b11",
      "serviceName": "Telegram",
      "price": "0.12"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List countries

Lists the countries Smart sells numbers in, with their codes.

GET/server5-countries
Example request
curl "https://textverification.io/api/v1/users/server5-countries" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "code": "us",
      "name": "United States"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Get order options

Returns the area codes available for a service in a country, and what they add to the price.

GET/server5-options
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/server5-options?serviceId=7d0f3b11&country=us" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "price": "0.12",
    "successRate": 61,
    "bestSuccess": {
      "price": "0.15",
      "successRate": 84
    },
    "areaCodes": {
      "surcharge": 20,
      "lines": [
        {
          "price": "0.17",
          "successRate": 84,
          "codes": [
            "212",
            "646"
          ]
        }
      ]
    }
  },
  "message": "Request Successful!",
  "success": true
}

Order a number

Orders one Smart number for a service and charges your balance.

POST/request-s5-service
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
areaCodesstring[]NoArea codes to get, or to avoid with excludeAreaCodes: a list or comma-separated, up to 10. They add to the price.
excludeAreaCodesbooleanNotrue to avoid the area codes instead of getting one of them.
prioritystringNo"price" (the default) for the lowest price, or "success" for the line most likely to deliver your code.
quantitynumberNoHow many numbers to order at once, 1 to 5. Each becomes its own order.
phoneNumberstringNoA particular number you had before, digits with the country code, if it's free again.

With a quantity above 1, the response lists every order placed; if fewer could be ordered, it says how many and why.

Example request
curl -X POST "https://textverification.io/api/v1/users/request-s5-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"7d0f3b11","areaCodes":["212"],"priority":"success"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "AB12CD34",
    "number": "12125550105",
    "serviceName": "Telegram",
    "country": "United States",
    "status": "reserved",
    "price": "0.14",
    "expiredIn": 1200
  },
  "message": "Request Successful!",
  "success": true
}

Get an order

Returns an order with its status and, once it has arrived, the code.

GET/number-details-s5
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/number-details-s5?orderId=AB12CD34" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "AB12CD34",
    "number": "12125550105",
    "serviceName": "Telegram",
    "country": "United States",
    "price": "0.14",
    "createdAt": "2026-10-09 12:44:00",
    "status": "completed",
    "message": "Your code is 482910",
    "pin": "482910"
  },
  "message": "Request Successful!",
  "success": true
}

Reuse a number

Orders the same number again for another code, where the service allows it.

POST/reuse-s5-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reuse-s5-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"AB12CD34"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "AB12CD34",
    "number": "12125550105",
    "serviceName": "Telegram",
    "country": "United States",
    "price": "0.14",
    "status": "reserved",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a number

Cancels a number that hasn't received a code yet and refunds it to your balance.

POST/reject-s5-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reject-s5-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"AB12CD34"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Plus

Numbers from many countries, each service on several lines: order the cheapest, pick a line, or cap what you pay.

List services and prices

Lists Plus's services with your price for each, after your discount.

GET/server6-pricing
ParameterTypeRequiredDescription
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/server6-pricing?country=us" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "5b2c9e41",
      "serviceName": "WhatsApp",
      "price": "0.68"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List countries

Lists the countries Plus sells numbers in, with their codes.

GET/server6-countries
Example request
curl "https://textverification.io/api/v1/users/server6-countries" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "code": "us",
      "name": "United States"
    },
    {
      "code": "gb",
      "name": "United Kingdom"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List lines and prices

Lists the lines a service is sold through in a country, cheapest first, with your price for each and its success rate once known.

GET/server6-options
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/server6-options?serviceId=5b2c9e41&country=us" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "price": "0.68",
    "lines": [
      {
        "lineId": "a91f03c2",
        "price": "0.68",
        "successRate": 92
      },
      {
        "lineId": "4e7d2b10",
        "price": "0.68",
        "successRate": null
      },
      {
        "lineId": "c03b5f77",
        "price": "1.08",
        "successRate": 97
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Order a number

Orders one Plus number for a service and charges your balance.

POST/request-s6-service
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
lineIdstringNoA line from the lines list. Leave it out for the cheapest line.
maxPricenumberNoThe most you'll pay, in US dollars. A higher price is refused; without lineId, any line up to it may be used.

Without lineId, the cheapest line is used, and another line at the same price if it has no numbers. If a line doesn't deliver codes for a service, reject the number and order from another lineId.

Example request
curl -X POST "https://textverification.io/api/v1/users/request-s6-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"5b2c9e41","country":"us","maxPrice":0.7}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "230698",
    "number": "15551230456",
    "serviceName": "WhatsApp",
    "country": "United States",
    "status": "reserved",
    "price": "0.68",
    "expiredIn": 1200,
    "lineId": "a91f03c2"
  },
  "message": "Request Successful!",
  "success": true
}

Get an order

Returns an order with its status and, once it has arrived, the code.

GET/number-details-s6
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/number-details-s6?orderId=230698" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "230698",
    "number": "15551230456",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "0.68",
    "lineId": "a91f03c2",
    "createdAt": "2026-10-09 12:44:00",
    "status": "completed",
    "message": "Your code is 482910",
    "pin": "482910"
  },
  "message": "Request Successful!",
  "success": true
}

Reuse a number

Orders the same number again for another code, where the service allows it.

POST/reuse-s6-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reuse-s6-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"230698"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "230698",
    "number": "15551230456",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "0.68",
    "lineId": "a91f03c2",
    "status": "reserved",
    "expiredIn": 600
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a number

Cancels a number that hasn't received a code yet and refunds it to your balance.

POST/reject-s6-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reject-s6-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"230698"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Express

US numbers for a quick code: order for a service, then get the code from the order's details or a callback within the number's 5 minutes.

List services and prices

Lists Express's services with your price for each, after your discount.

GET/server7-pricing
Example request
curl "https://textverification.io/api/v1/users/server7-pricing" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "3e7a91c0",
      "serviceName": "WhatsApp",
      "price": "0.75",
      "multiplePrice": "1.13",
      "smsModes": [
        "single",
        "multiple"
      ]
    },
    {
      "serviceId": "8b2c40d1",
      "serviceName": "Telegram",
      "price": "0.50",
      "multiplePrice": null,
      "smsModes": [
        "single"
      ]
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Order a number

Orders one Express number for a service and charges your balance.

POST/request-s7-service
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
smsModestringNo"multiple" for every SMS sent to the number while it's active (5 minutes), each delivered as it arrives, at the service's multiplePrice. Only for services whose smsModes include "multiple". By default "single", or "multiple" for a service sold only that way.

An Express number is active for 5 minutes. If no code arrives in that time, the order is cancelled and refunded automatically. Express numbers can't be reused. With smsMode "multiple", the number keeps receiving codes for its 5 minutes: each new code sends another s7_otp_received callback, and the order's details list every code, the latest as pin.

Example request
curl -X POST "https://textverification.io/api/v1/users/request-s7-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"3e7a91c0","smsMode":"multiple"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9f2c41ab07d3e815",
    "number": "12125550142",
    "serviceName": "WhatsApp",
    "country": "United States",
    "status": "reserved",
    "price": "1.13",
    "expiredIn": 300,
    "smsMode": "multiple"
  },
  "message": "Request Successful!",
  "success": true
}

Get an order

Returns an order with its status and, once it has arrived, the code.

GET/number-details-s7
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/number-details-s7?orderId=9f2c41ab07d3e815" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9f2c41ab07d3e815",
    "number": "12125550142",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "1.13",
    "smsMode": "multiple",
    "codes": [
      {
        "code": "318204",
        "message": "Your code is 318204",
        "receivedAt": "2026-10-09 12:44:00"
      },
      {
        "code": "482910",
        "message": "Your code is 482910",
        "receivedAt": "2026-10-09 12:44:00"
      }
    ],
    "createdAt": "2026-10-09 12:44:00",
    "status": "completed",
    "message": "Your code is 482910",
    "pin": "482910"
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a number

Cancels a number that hasn't received a code yet and refunds it to your balance.

POST/reject-s7-service
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/reject-s7-service" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"9f2c41ab07d3e815"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Pinpoint Rental

Keep a US number for one service from 1 day to a year, with renewals and auto-renew.

List rental services and prices

Lists Pinpoint Rental's services with your price for each rental length.

GET/rental-services
Example request
curl "https://textverification.io/api/v1/users/rental-services" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "rg5e1d20",
      "serviceName": "whatsapp"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Price a rental

Returns your price for each rental length of one service, with or without area codes.

GET/rental-prices
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
areasstringNoArea codes, separated by commas (up to 10). They add to the price.

Not every service offers every length: this endpoint returns the lengths a service can be rented for.

Example request
curl "https://textverification.io/api/v1/users/rental-prices?serviceId=rg5e1d20" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "label": "oneDay",
      "days": 1,
      "price": "2.85"
    },
    {
      "label": "thirtyDay",
      "days": 30,
      "price": "7.20"
    },
    {
      "label": "oneYear",
      "days": 365,
      "price": "72.00"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Rent a number

Rents a Pinpoint Rental number for a service and charges your balance for the whole period.

POST/request-rental
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
durationstringYesThe rental length: oneDay, threeDay, sevenDay, fourteenDay, thirtyDay, ninetyDay or oneYear.
areasstringNoArea codes, separated by commas (up to 10). They add to the price.
autoRenewbooleanNotrue to renew the rental from your balance a few hours before it ends.
Example request
curl -X POST "https://textverification.io/api/v1/users/request-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"rg5e1d20","duration":"thirtyDay","autoRenew":true}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "7.20",
    "status": "reserved",
    "canRefund": true,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "thirtyDay",
    "duration": 30,
    "renewals": 0
  },
  "message": "Request Successful!",
  "success": true
}

Read a rental's messages

Returns the messages a rental has received, newest first.

GET/rental-messages
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
page / limitnumberNoPage number, and page size (up to 100).
Example request
curl "https://textverification.io/api/v1/users/rental-messages?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "messages": [
      {
        "id": "66f0a1",
        "orderId": "6702f1c4e2",
        "number": "12125550104",
        "service": "WhatsApp",
        "sender": "WhatsApp",
        "message": "Your WhatsApp code: 551-204",
        "pin": "551204",
        "timestamp": "2026-10-09 12:44:00"
      }
    ],
    "pagination": {
      "total": 1,
      "page": 1,
      "limit": 10,
      "totalPages": 1
    }
  },
  "message": "Request Successful!",
  "success": true
}

Get renewal prices

Lists the lengths a running rental can be renewed for, with your price for each.

GET/rental-renew-options
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/rental-renew-options?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "whatsapp",
    "periods": [
      {
        "period": "thirtyDay",
        "days": 30,
        "price": "7.20"
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Renew a rental

Extends a running rental and charges your balance. Without a period, it renews for its own length.

POST/renew-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
periodstringNoThe length to renew for (same values as duration). Leave it out to renew for the rental's own length.
Example request
curl -X POST "https://textverification.io/api/v1/users/renew-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2","period":"thirtyDay"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "14.40",
    "status": "reserved",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "thirtyDay",
    "duration": 30,
    "renewals": 1
  },
  "message": "Request Successful!",
  "success": true
}

Turn auto-renew on or off

Sets whether a running rental is renewed from your balance a few hours before it ends.

POST/rental-auto-renew
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
enabledbooleanYestrue to turn auto-renew on, false to turn it off.
Example request
curl -X POST "https://textverification.io/api/v1/users/rental-auto-renew" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2","enabled":false}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "autoRenew": false
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a rental

Cancels a rental that can still be refunded (before its first message) and refunds it to your balance.

POST/release-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/release-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Flex Rental

Keep a US number for 1 to 30 days, with auto-renew and reactivation of expired numbers.

List rental services and prices

Lists Flex Rental's services with your price for each rental length.

GET/s3-rental-services
ParameterTypeRequiredDescription
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/s3-rental-services" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "1f3aa214",
      "serviceName": "Amazon",
      "prices": [
        {
          "period": "1d",
          "days": 1,
          "price": "2.88"
        },
        {
          "period": "30d",
          "days": 30,
          "price": "5.76"
        }
      ]
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List countries

Lists the countries Flex Rental sells numbers in, with their codes.

GET/s3-rental-countries
Example request
curl "https://textverification.io/api/v1/users/s3-rental-countries" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "code": "us",
      "name": "United States"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Rent a number

Rents a Flex Rental number for a service and charges your balance for the whole period.

POST/request-s3-rental
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
periodstringYesThe rental length, from the services list, such as "7d".
areasstringNoArea codes, separated by commas (up to 10). They add to the price.
autoRenewbooleanNotrue to renew the rental from your balance a few hours before it ends.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl -X POST "https://textverification.io/api/v1/users/request-s3-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"1f3aa214","period":"7d","autoRenew":true}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "3.20",
    "status": "reserved",
    "canRefund": true,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "7d",
    "duration": 7,
    "renewPrice": "3.20"
  },
  "message": "Request Successful!",
  "success": true
}

Get a rental

Returns a rental with its status, end date and renewal settings.

GET/s3-rental-details
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s3-rental-details?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "3.20",
    "status": "active",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "7d",
    "duration": 7
  },
  "message": "Request Successful!",
  "success": true
}

Read a rental's messages

Returns the messages a rental has received, newest first.

GET/s3-rental-messages
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
page / limitnumberNoPage number, and page size (up to 100).
Example request
curl "https://textverification.io/api/v1/users/s3-rental-messages?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "messages": [
      {
        "id": "66f0a1",
        "orderId": "6702f1c4e2",
        "number": "12125550104",
        "service": "WhatsApp",
        "sender": "WhatsApp",
        "message": "Your WhatsApp code: 551-204",
        "pin": "551204",
        "timestamp": "2026-10-09 12:44:00"
      }
    ],
    "pagination": {
      "total": 1,
      "page": 1,
      "limit": 10,
      "totalPages": 1
    }
  },
  "message": "Request Successful!",
  "success": true
}

Renew a rental

Extends a running rental and charges your balance. Without a period, it renews for its own length.

POST/renew-s3-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/renew-s3-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "6.40",
    "status": "reserved",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "7d",
    "duration": 7
  },
  "message": "Request Successful!",
  "success": true
}

Turn auto-renew on or off

Sets whether a running rental is renewed from your balance a few hours before it ends.

POST/s3-rental-auto-renew
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
enabledbooleanYestrue to turn auto-renew on, false to turn it off.
Example request
curl -X POST "https://textverification.io/api/v1/users/s3-rental-auto-renew" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2","enabled":true}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "autoRenew": true
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a rental

Cancels a rental that can still be refunded (before its first message) and refunds it to your balance.

POST/cancel-s3-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/cancel-s3-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Get reactivation prices

Lists the lengths an expired rental's number can be reactivated for, with your price for each.

GET/s3-rental-retake-options
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s3-rental-retake-options?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "Amazon",
    "periods": [
      {
        "period": "7d",
        "days": 7,
        "price": "4.80"
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Reactivate an expired number

Rents an expired rental's number again for the same service, while it's still free.

POST/retake-s3-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
periodstringYesThe rental length, from the services list, such as "7d".
autoRenewbooleanNotrue to renew the rental from your balance a few hours before it ends.
Example request
curl -X POST "https://textverification.io/api/v1/users/retake-s3-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2","period":"7d"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f9a811",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "4.80",
    "status": "reserved",
    "canRefund": true,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "7d",
    "duration": 7
  },
  "message": "Request Successful!",
  "success": true
}

Global Rental

Rent numbers in many countries, renew them for any length on offer, or let them auto-renew.

List rental services and prices

Lists Global Rental's services with your price for each rental length.

GET/s4-rental-services
ParameterTypeRequiredDescription
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/s4-rental-services" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "serviceId": "c41e7a02",
      "serviceName": "WhatsApp",
      "prices": [
        {
          "period": "1d",
          "days": 1,
          "price": "0.90"
        },
        {
          "period": "30d",
          "days": 30,
          "price": "9.60"
        }
      ]
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List countries

Lists the countries Global Rental sells numbers in, with their codes.

GET/s4-rental-countries
Example request
curl "https://textverification.io/api/v1/users/s4-rental-countries" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "code": "us",
      "name": "United States"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

Rent a number

Rents a Global Rental number for a service and charges your balance for the whole period.

POST/request-s4-rental
ParameterTypeRequiredDescription
serviceIdstringYesThe service's ID, from the services list.
periodstringYesThe rental length, from the services list, such as "7d".
autoRenewbooleanNotrue to renew the rental from your balance a few hours before it ends.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl -X POST "https://textverification.io/api/v1/users/request-s4-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"c41e7a02","period":"30d","country":"us"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "9.60",
    "status": "reserved",
    "canRefund": true,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "30d",
    "duration": 30
  },
  "message": "Request Successful!",
  "success": true
}

Get a rental

Returns a rental with its status, end date and renewal settings.

GET/s4-rental-details
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s4-rental-details?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "9.60",
    "status": "active",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "30d",
    "duration": 30
  },
  "message": "Request Successful!",
  "success": true
}

Read a rental's messages

Returns the messages a rental has received, newest first.

GET/s4-rental-messages
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
page / limitnumberNoPage number, and page size (up to 100).
Example request
curl "https://textverification.io/api/v1/users/s4-rental-messages?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "messages": [
      {
        "id": "66f0a1",
        "orderId": "6702f1c4e2",
        "number": "12125550104",
        "service": "WhatsApp",
        "sender": "WhatsApp",
        "message": "Your WhatsApp code: 551-204",
        "pin": "551204",
        "timestamp": "2026-10-09 12:44:00"
      }
    ],
    "pagination": {
      "total": 1,
      "page": 1,
      "limit": 10,
      "totalPages": 1
    }
  },
  "message": "Request Successful!",
  "success": true
}

Get renewal prices

Lists the lengths a running rental can be renewed for, with your price for each.

GET/s4-rental-renew-options
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s4-rental-renew-options?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "periods": [
      {
        "period": "30d",
        "days": 30,
        "price": "9.60"
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Renew a rental

Extends a running rental and charges your balance. Without a period, it renews for its own length.

POST/renew-s4-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
periodstringNoThe length to renew for, from the renewal prices. Leave it out to renew for the rental's own length.
Example request
curl -X POST "https://textverification.io/api/v1/users/renew-s4-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2","period":"30d"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "19.20",
    "status": "reserved",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "30d",
    "duration": 30
  },
  "message": "Request Successful!",
  "success": true
}

Turn auto-renew on or off

Sets whether a running rental is renewed from your balance a few hours before it ends.

POST/s4-rental-auto-renew
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
enabledbooleanYestrue to turn auto-renew on, false to turn it off.
Example request
curl -X POST "https://textverification.io/api/v1/users/s4-rental-auto-renew" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2","enabled":true}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "autoRenew": true
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a rental

Cancels a rental that can still be refunded (before its first message) and refunds it to your balance.

POST/cancel-s4-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/cancel-s4-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Get reactivation prices

Lists the lengths an expired rental's number can be reactivated for, with your price for each.

GET/s4-rental-retake-options
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s4-rental-retake-options?orderId=6702f1c4e2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f1c4e2",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "periods": [
      {
        "period": "30d",
        "days": 30,
        "price": "9.60"
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Reactivate an expired number

Rents an expired rental's number again for the same service, while it's still free.

POST/retake-s4-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
periodstringYesThe rental length, from the services list, such as "7d".
autoRenewbooleanNotrue to renew the rental from your balance a few hours before it ends.
Example request
curl -X POST "https://textverification.io/api/v1/users/retake-s4-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"6702f1c4e2","period":"30d"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "6702f9a811",
    "number": "12125550104",
    "serviceName": "WhatsApp",
    "country": "United States",
    "price": "9.60",
    "status": "reserved",
    "canRefund": true,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "period": "30d",
    "duration": 30
  },
  "message": "Request Successful!",
  "success": true
}

Plus Rental

Rent a number of a country by the month to receive every service's messages, renew it, or let it auto-renew.

List countries

Lists the countries Plus Rental sells numbers in, with their codes.

GET/s6-rental-countries
Example request
curl "https://textverification.io/api/v1/users/s6-rental-countries" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": [
    {
      "code": "ca",
      "name": "Canada"
    },
    {
      "code": "us",
      "name": "United States"
    }
  ],
  "message": "Request Successful!",
  "success": true
}

List rental lengths and prices

Lists the lengths Plus Rental numbers rent for in a country, with your price for each.

GET/s6-rental-plans
ParameterTypeRequiredDescription
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).
Example request
curl "https://textverification.io/api/v1/users/s6-rental-plans?country=us" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "country": {
      "code": "us",
      "name": "United States"
    },
    "plans": [
      {
        "period": "1m",
        "months": 1,
        "days": 30,
        "price": "7.50"
      },
      {
        "period": "3m",
        "months": 3,
        "days": 90,
        "price": "21.00"
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Rent a number

Rents a Plus Rental number for a service and charges your balance for the whole period.

POST/request-s6-rental
ParameterTypeRequiredDescription
periodstringYesThe rental length in months, from the lengths list: "1m", "2m", "3m", "6m" or "12m".
autoRenewbooleanNotrue to renew the rental from your balance a few hours before it ends.
countrystringNoA country code from the countries list. Leave it out for the US (or the first country on sale).

A Plus Rental number isn't tied to one service: it receives every service's messages. It can be cancelled for a refund within 20 minutes of renting, before its first message.

Example request
curl -X POST "https://textverification.io/api/v1/users/request-s6-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"period":"1m","country":"us","autoRenew":true}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9c41e2b7",
    "number": "15143080170",
    "serviceName": "Any service",
    "anyService": true,
    "country": "United States",
    "period": "1m",
    "months": 1,
    "duration": 30,
    "price": "7.50",
    "status": "reserved",
    "canRefund": true,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "remainingTime": 2591940
  },
  "message": "Request Successful!",
  "success": true
}

Get a rental

Returns a rental with its status, end date and renewal settings.

GET/s6-rental-details
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s6-rental-details?orderId=9c41e2b7" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9c41e2b7",
    "number": "15143080170",
    "serviceName": "Any service",
    "anyService": true,
    "country": "United States",
    "period": "1m",
    "months": 1,
    "duration": 30,
    "price": "7.50",
    "status": "active",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "remainingTime": 2591940
  },
  "message": "Request Successful!",
  "success": true
}

Read a rental's messages

Returns the messages a rental has received, newest first.

GET/s6-rental-messages
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
page / limitnumberNoPage number, and page size (up to 100).
Example request
curl "https://textverification.io/api/v1/users/s6-rental-messages?orderId=9c41e2b7" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "messages": [
      {
        "id": "66f0a1",
        "orderId": "9c41e2b7",
        "number": "15143080170",
        "service": "Any service",
        "sender": "",
        "message": "Your WhatsApp code: 551-204",
        "pin": "551204",
        "timestamp": "2026-10-09 12:44:00"
      }
    ],
    "pagination": {
      "total": 1,
      "page": 1,
      "limit": 10,
      "totalPages": 1
    }
  },
  "message": "Request Successful!",
  "success": true
}

Get renewal prices

Lists the lengths a running rental can be renewed for, with your price for each.

GET/s6-rental-renew-options
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s6-rental-renew-options?orderId=9c41e2b7" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9c41e2b7",
    "number": "15143080170",
    "serviceName": "Any service",
    "anyService": true,
    "periods": [
      {
        "period": "1m",
        "months": 1,
        "days": 30,
        "price": "7.50"
      },
      {
        "period": "3m",
        "months": 3,
        "days": 90,
        "price": "21.00"
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Renew a rental

Extends a running rental and charges your balance. Without a period, it renews for its own length.

POST/renew-s6-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
periodstringNoThe length to renew for, from the renewal prices, such as "1m". Leave it out to renew for the rental's own length.
Example request
curl -X POST "https://textverification.io/api/v1/users/renew-s6-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"9c41e2b7","period":"3m"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9c41e2b7",
    "number": "15143080170",
    "serviceName": "Any service",
    "anyService": true,
    "country": "United States",
    "period": "1m",
    "months": 1,
    "duration": 30,
    "price": "28.50",
    "status": "reserved",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2027-02-09 12:44:00",
    "remainingTime": 2591940
  },
  "message": "Request Successful!",
  "success": true
}

Turn auto-renew on or off

Sets whether a running rental is renewed from your balance a few hours before it ends.

POST/s6-rental-auto-renew
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
enabledbooleanYestrue to turn auto-renew on, false to turn it off.
Example request
curl -X POST "https://textverification.io/api/v1/users/s6-rental-auto-renew" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"9c41e2b7","enabled":true}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9c41e2b7",
    "autoRenew": true
  },
  "message": "Request Successful!",
  "success": true
}

Cancel a rental

Cancels a rental that can still be refunded (before its first message) and refunds it to your balance.

POST/cancel-s6-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl -X POST "https://textverification.io/api/v1/users/cancel-s6-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"9c41e2b7"}'
Example response
{
  "statusCode": 200,
  "data": null,
  "message": "Request Successful!",
  "success": true
}

Get reactivation prices

Lists the lengths an expired rental's number can be reactivated for, with your price for each.

GET/s6-rental-retake-options
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
Example request
curl "https://textverification.io/api/v1/users/s6-rental-retake-options?orderId=9c41e2b7" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9c41e2b7",
    "number": "15143080170",
    "serviceName": "Any service",
    "anyService": true,
    "periods": [
      {
        "period": "1m",
        "months": 1,
        "days": 30,
        "price": "7.50"
      }
    ]
  },
  "message": "Request Successful!",
  "success": true
}

Reactivate an expired number

Rents an expired rental's number again for the same service, while it's still free.

POST/retake-s6-rental
ParameterTypeRequiredDescription
orderIdstringYesThe order's ID, as returned when you ordered.
periodstringYesThe rental length in months, from the lengths list: "1m", "2m", "3m", "6m" or "12m".
autoRenewbooleanNotrue to renew the rental from your balance a few hours before it ends.

Reactivating renews the same rental, with the same orderId and number. It's possible for a few days after the rental ends.

Example request
curl -X POST "https://textverification.io/api/v1/users/retake-s6-rental" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"9c41e2b7","period":"1m"}'
Example response
{
  "statusCode": 200,
  "data": {
    "orderId": "9c41e2b7",
    "number": "15143080170",
    "serviceName": "Any service",
    "anyService": true,
    "country": "United States",
    "period": "1m",
    "months": 1,
    "duration": 30,
    "price": "15.00",
    "status": "reserved",
    "canRefund": false,
    "autoRenew": true,
    "purchased": "2026-10-09 12:44:00",
    "expires": "2026-11-08 12:44:00",
    "remainingTime": 2591940
  },
  "message": "Request Successful!",
  "success": true
}

Callbacks

Set a callback URL in your account settings. Each time a code or a rental message arrives, we send it to that URL in an HTTP POST request whose JSON body holds event and data.

  • Answer with a 2xx status within 5 seconds to confirm you received it.
  • If your server doesn't answer in time or returns another status, we try again after 2 seconds, then 4 seconds: 3 attempts in all.
  • The same event can arrive more than once: use orderId to ignore repeats.

Events

EventSent when
s1_otp_receivedOne of your Prime numbers receives its code.
s1_win_premium_requestA Prime premium request wins a number.
s2_otp_receivedOne of your Pinpoint numbers receives its code.
s3_otp_receivedOne of your Flex numbers receives its code.
s4_otp_receivedOne of your Global numbers receives its code.
s5_otp_receivedOne of your Smart numbers receives its code.
s6_otp_receivedOne of your Plus numbers receives its code.
s7_otp_receivedOne of your Express numbers receives its code.
rental_otp_receivedA Pinpoint Rental number receives a message.
s3_rental_otp_receivedA Flex Rental number receives a message.
s4_rental_otp_receivedA Global Rental number receives a message.
s6_rental_otp_receivedA Plus Rental number receives a message.

Payload

data.orderId
The order the code belongs to.
data.timestamp
When we received it (UTC).
data.number
The phone number that received it.
data.service
The service the number was ordered for.
data.message
The full message.
data.otp
The code found in the message.
Example callback
{
  "event": "s2_otp_received",
  "data": {
    "orderId": "lr_01K7ABC",
    "timestamp": "2026-10-09 12:44:00",
    "number": "12125550102",
    "service": "google",
    "message": "G-482910 is your Google verification code.",
    "otp": "482910"
  }
}

Stuck on an integration? Contact our team.