Manual number rental works for one-off accounts. At scale — QA farms, growth automation, reseller platforms — you need an API. This guide walks through the SMSVerifyo REST API and the four production concerns that break most integrations: idempotency, webhook reliability, cost control, and rate-limit hygiene.

API authentication

Generate an API key from Reseller → API Keys. The key is hashed at rest; you see the full value once. Send it as Authorization: Bearer sms_live_... on every request. Full reference: API docs.

The four-endpoint core

  1. GET /v1/services — list available services and countries.
  2. POST /v1/rentals — rent a number for a service/country.
  3. GET /v1/rentals/{id} — poll for the code (or set a webhook).
  4. POST /v1/rentals/{id}/cancel — release early for a full refund.

Idempotency

Pass Idempotency-Key on POST /v1/rentals to prevent duplicate charges on network retries. Any 5xx or network error can be retried safely with the same key for 24 hours.

Webhooks vs. polling

For volumes under 100 codes/hour, polling every 3 seconds is fine and simpler. Above that, register a webhook URL under Reseller → Webhooks. We POST { rental_id, code, received_at } with an HMAC signature — verify it before trusting the payload.

Cost control

  • Set a daily balance-alert threshold in the reseller dashboard.
  • Use max_price_usd on rental creation to hard-cap per-code cost.
  • Filter for real-mobile-carrier only when signing up on strict services — the marginal cost is worth the higher success rate.

Rate-limit hygiene

Our API returns 429 with a Retry-After header. Respect it. The default limit is 60 rental requests/minute per key; contact Support for higher limits.

Frequently asked questions

What is the SLA?

99.9% uptime on the API. Real-world code delivery depends on upstream carrier availability, not our infrastructure.

Can I white-label this into my own product?

Yes — reseller accounts get discounted per-code pricing. Talk to sales.

Is the API rate-limit per-key or per-account?

Per-key. Split high-volume workloads across multiple keys for horizontal scale.

What language SDKs do you support?

The API is plain REST — every language has a client. Official examples in the docs for Node, Python, PHP, Go.