For resellers and developers

Resell OTP numbers under your own brand

A REST API for single-use SMS verification numbers, from $0.52 per activation — wallet-funded, refundable and webhook-driven, on top of the same real-carrier numbers sold on the site.

One API for every one-off verification code

Instant provisioning

A number is issued the moment your request is charged — no queue, no manual approval step.

One wallet for both products

The same balance funds permanent numbers and OTP activations, so there's nothing extra to set up.

Full refund on cancel

Cancel a waiting activation before it catches an SMS and the price returns to the wallet automatically.

One key, every endpoint

The API key you already generated for the Numbers API works here too — nothing new to provision.

Signed webhooks

Register a URL once and receive a signed otp.completed event instead of polling for a status change.

Rate-limited responses

Every response carries your remaining quota, so a busy integration can back off cleanly.

From order to verified code

  1. 1

    Check the catalog

    GET the OTP catalog for the service and country you need — the response returns only your own resale price.

  2. 2

    Buy the activation

    POST to create it, charged from your wallet balance instantly.

  3. 3

    Wait for the code

    Poll GET /otp-numbers/{id} or, better, let your registered webhook tell you the moment it lands.

  4. 4

    Resend or cancel

    Request a resend if the upstream route supports it, or cancel for a full refund if you no longer need it.

Order an OTP number in one request

curl https://vnumbr.com/api/v1/otp-numbers \
  -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: otp-8f21" \
  -H "Content-Type: application/json" \
  -d '{"service":"whatsapp","countryCode":"US"}'

The Idempotency-Key header means a retried request returns the original activation instead of buying a second one.

A complete OTP order lifecycle

MethodPathWhat it does
GET/api/v1/otp-catalogList OTP services, countries and your resale price for each
POST/api/v1/otp-numbersBuy a single-use OTP number, charged from your balance
GET/api/v1/otp-numbersList your OTP activations, with status
GET/api/v1/otp-numbers/{id}Get one activation's live status and SMS code
POST/api/v1/otp-numbers/{id}/resendRequest an SMS resend, where the upstream route supports it
POST/api/v1/otp-numbers/{id}/cancelCancel a waiting activation for a full refund

Full request and response fields are documented in your dashboard's developer section once you have a key.

Who builds on the OTP verification API

AI agents and chatbots

Give an automated workflow its own number to complete a signup or verification step without a human in the loop.

SaaS onboarding flows

Verify a user's phone during your own signup without running a carrier relationship yourself.

QA and testing teams

Spin up disposable numbers for automated test suites that need a real SMS code on demand.

Resale and marketplace platforms

Wrap the catalog in your own pricing and UI — every response already excludes the underlying cost.

Reliable enough to bill your own customers on

A 15-minute window

Every activation shows a consistent 15-minute countdown to your customer, regardless of which upstream route fulfilled it.

Real carrier numbers

Sourced the same way as VNumbr's permanent numbers — genuine mobile allocations, not a shared VoIP pool.

Transparent refunds

Refund rules are fixed and documented, not case-by-case, so your own support team can explain them with confidence.

Idempotent by design

Every purchase accepts an Idempotency-Key, so a network retry from your side never double-charges a customer.

Predictable limits

Rate-limit headers on every response mean you can build back-off logic instead of guessing at a ceiling.

Revocable keys

Rotate or revoke an API key instantly from your dashboard if one is ever compromised.

Frequently asked questions

How is this different from the main Numbers API?

The same API key and wallet work for both. The Numbers API provisions permanent numbers billed monthly or yearly; this one buys single-use OTP numbers billed per activation. Use whichever endpoints fit the order.

Can I resell this under my own brand?

Yes. Every response is scoped to your account and returns only your resale price — your own customers never see VNumbr or the upstream cost.

What happens if the code never arrives?

Cancel the activation with the cancel endpoint before it expires and the full price is refunded to your wallet. Letting it run out instead of cancelling does not refund — that is what covers the cost when a code genuinely never comes.

Is resending a code always possible?

No. Resend depends on the upstream route for that specific activation. Where it isn't supported, the endpoint returns a clear error instead of pretending to resend.

Do I need a separate key for OTP numbers?

No, one API key covers your whole account — permanent numbers, OTP numbers and webhooks.

What are the rate limits?

Every response carries rate-limit headers so you can see your remaining quota and back off before you hit it.

Can I get notified instead of polling?

Yes. Register a webhook URL and VNumbr posts a signed otp.completed event the moment a code arrives, instead of you polling the status endpoint.

Start reselling OTP numbers today.

Create a free account, generate a key, and your first activation can be live in minutes.

Create an account