Numbers
Temporary numbers
Short-term OTP sessions. Rent a number, wait for a code, then cancel, complete, or reuse depending on the kind.
Use case
One-time verification codes
Window
5–20 minutes, by kind
Refund
Cancel while WAITING
How it works
- 1. Rent with a catalog
codesuch ass1-5. - 2. Enter the phone on the service you are verifying.
- 3. Poll the rental (or wait for a webhook) until
otpCodeis set. - 4. Use the code. Need another? Call renew / Awake when the kind allows it.
- 5. If nothing arrives while
WAITING, cancel for a wallet refund.
Kinds
Premium temporary number. Free reuse within 20 minutes; paid renew while the phone day is active; after the phone day, submit a renew request.
Active 5–20 minutes. Receive codes continuously during the window. Paid renew after expiry if the number is still available.
15-minute window. Free Awake after each code while active. Paid renew until 30 minutes from start; after that, rent a new number. Supports reusing a phone you already hold.
US Non-VoIP. Active for the service TTL. Receive codes continuously. Paid renew after expiry if the number is still available.
15-minute window. Window ends on each code; Awake restarts the timer. Paid renew after expiry if the number is still available.
Active 10–20 minutes. Free Awake after each code while the window is still running. Cancel if no code arrives.
Status lifecycle
| Status | Meaning |
|---|---|
WAITING | Number is live; no OTP yet. You can cancel for a refund. |
RECEIVED | At least one OTP arrived. Poll for more codes until expiry. |
COMPLETED | You marked the rental done and released the number. |
CANCELLED | Cancelled while WAITING; wallet refunded. |
EXPIRED | The rental window ended. |
Reuse & renew
- S.2 / S.5 — free Awake after a code while the window is running. S.2 paid renew only until 30 minutes from start.
- PR — free reuse within 20 minutes; paid renew during the phone day; after the phone day, submit a renew request in the dashboard.
- S.1 / S.3 / S.4 — paid renew after expiry if the number is still available.
Always send Idempotency-Key on renew
Endpoints
Catalog: GET /api/v1/services. Full Try it lives in the API reference.
/api/v1/rentals?sync=1List temporary rentals
Active rentals (WAITING / RECEIVED). sync=0 skips SMS sync (faster).
Response
{
"count": 1,
"rentals": [{
"id": 1042,
"kind": "s1",
"serviceNo": 5,
"code": "s1-5",
"phone": "+12025551234",
"serviceName": "Google",
"status": "RECEIVED",
"codes": ["123456"],
"otpCode": "123456",
"secondsRemaining": 840,
"active": true
}]
}/api/v1/rentals/{id}?sync=1Get a temporary rental
Poll one rental — same shape as a list item. Works after expiry too. Syncs SMS while still active.
/api/v1/rentalsRent a temporary number
Charges the wallet. Send Idempotency-Key for safe retries. Optional max_price, areas, carrier (S.1: tmo | vz | att), country, phone/reuse_phone (S.2 reuse).
Request
{ "code": "s1-5", "country": "US" }Response
{
"rental": {
"id": 1042,
"kind": "s1",
"serviceNo": 5,
"code": "s1-5",
"phone": "+12025551234",
"serviceName": "Google",
"price": 0.12,
"status": "WAITING",
"expiresAt": "2026-05-29T12:00:00.000Z",
"durationMinutes": 20
}
}/api/v1/rentals/{id}/cancelCancel a temporary rental
Cancel a WAITING rental and refund the wallet. Fails if an OTP already arrived.
/api/v1/rentals/{id}/doneComplete a temporary rental
Mark the rental completed and release the number.
/api/v1/rentals/{id}/renewReuse or renew
S.2/S.5: free Awake after a code while the window is running; paid renew after it ends (S.2 only until 30 minutes from start). PR: free reuse within 20 minutes; paid renew during the phone day. Send Idempotency-Key.