Automating +998 verification codes for Uzbek launches and QA

Calling code +998OTP Gateway from $0.20 per codeDedicated numbers: US & Canada onlyAPI id: uz
Quick answer

OTP Route can deliver Uzbekistan (+998) SMS verification codes to your systems: order a one-time number from the OTP Gateway, then collect the code through a signed webhook, REST polling or the dashboard. Pricing starts from $0.20 per code, the live figure for each service comes from the API, and anything that doesn't arrive within 20 minutes is refunded to your wallet.

How does a +998 activation move from request to code?

Start by creating a Bearer key in the Developer console. Keys carry the prefix or_live_, every call goes to https://otproute.com/api/v1, and you may keep up to 10 keys, which is handy for splitting nightly builds from manual QA.

Your client first reads GET /api/v1/countries, where Uzbekistan is listed as uz, and GET /api/v1/services for the service id. Next it asks GET /api/v1/prices?country=uz&service=<id> what the pair costs right now and whether numbers are available. If the answer suits the test, it sends POST /api/v1/activations with a body such as {"service": "instagram", "country": "uz"} and receives an activation id together with a +998 number.

The test then enters that number in your own sign-up or login screen. From here the code reaches you either as a webhook event or through GET /api/v1/activations/{id}. A test that aborts should call POST /api/v1/activations/{id}/cancel so the reservation is released. Checking GET /api/v1/balance at the top of a run avoids half-finished suites. The API reference documents every request in this SMS verification API.

What does a reliable webhook receiver for Uzbek codes need?

Three things: authentication, replay protection and idempotency.

  • Authentication. Each delivery includes X-OTPRoute-Signature in the form t=<unix>,v1=<hex>. Build the string <t>.<raw body>, sign it with HMAC-SHA256 and the endpoint secret, and compare against v1 in constant time.
  • Replay protection. Reject any request whose t value is older than a short tolerance you choose.
  • Idempotency. Store the activation id when an event is processed and acknowledge duplicates without acting on them again.

Subscribe to activation.sms_received for the happy path and to activation.expired and activation.cancelled so your test runner can close out failures. You can register up to 5 endpoints per account, for example one per environment. Polling remains a valid fallback; the cap of 300 requests per minute covers several concurrent activations checked every few seconds. A fuller pattern is in webhook-based OTP capture.

Why do teams add Uzbekistan to their OTP routing plan?

Uzbekistan is the most populous country in Central Asia, and companies expanding across the region often need a +998 number for testing before a local partner is in place. Typical reasons include a product launch aimed at Uzbek users, a QA pass on Uzbek and Russian translations, and regional operations teams who verify vendor or marketplace accounts tied to the market.

Telegram is one of the most widely used messaging apps in the country, so flows that link a Telegram account, or rely on it for support, deserve a dedicated test. Planning several markets at once? The country routing guide explains how to choose routes per test case.

How should +998 numbers be parsed, stored and read?

A full Uzbek number is +998 followed by nine digits, and the first two of those usually identify the operator or area. Domestic dialing habits have changed over the years, so people may enter the number with extra leading digits or without the country code. Normalise everything to +998 plus nine digits before saving, and keep display formatting such as +998 90 123 45 67 purely cosmetic.

Uzbek is the official language. It is officially written in the Latin alphabet, though Cyrillic remains common, and Russian is widely understood. Verification texts can therefore arrive in Uzbek in either script, in Russian, or in English. Write your extractor to look for the digit run instead of a keyword, and test it against all three languages.

Which apps can receive Uzbekistan SMS OTP through the gateway?

More than 1,800 services are available on the Uzbekistan route. The live snapshot features Telegram, WhatsApp, Instagram, Google (Gmail & YouTube), TikTok, Facebook, Microsoft & Outlook, Amazon, Discord, Snapchat, Signal, Viber, ChatGPT (OpenAI), Claude and WeChat.

Coverage is not fixed. A service that is open in the morning may be unavailable later, so let the prices endpoint decide at runtime rather than assuming a result from yesterday's run.

Can I order an Uzbekistan verification number without the API?

The dashboard mirrors the API for anyone who prefers clicking:

  1. Sign up with an email address and the 6-digit code you receive, or use Google sign-in. Enable TOTP for the account.
  2. Fund the wallet.
  3. Select Uzbekistan and the service; the price appears before you commit.
  4. Use the +998 number in the app you are checking.
  5. Read the code on the activation screen when it comes in.

What if the Uzbek code doesn't arrive in time?

A +998 activation stays live for 20 minutes, and the charge applies only once a code is actually received. Should it expire, or should you cancel, the wallet gets the full amount back without a support ticket.

If codes are missing, work through this list:

  • Wait out the window; delivery speed varies by service and route.
  • Try again later, or pick another service route when the test permits.
  • Check whether the service turns away virtual numbers, which some do. That is the reason the refund rule exists.
  • Pace your retries instead of firing new orders back to back, and record activation ids for later review.

Are long-term +998 lines and sandbox billing available?

There is no self-serve long-term number for Uzbekistan. OTP Route sells Dedicated Numbers only in the United States and Canada, from $1.95/month, with inbound SMS, outbound SMS and browser calling. For a lasting Uzbek line, email [email protected]; whether one can be arranged depends on local rules and is not certain.

Payments use a single prepaid USD wallet, pay as you go, with no subscription. Top up by card or USDT/USDC and expect a PDF invoice by email for each top-up. Development accounts can request sandbox mode, which simulates numbers and codes so CI can run without touching wallet funds.

Keep usage legitimate: test and operate your own products, respect every service's terms, and follow OTP Route's Acceptable Use Policy.

Frequently asked questions

Can I verify my app's Uzbek sign-up flow from outside Uzbekistan?

Yes. A +998 number from the OTP Gateway receives the code wherever your team sits, and you read it in the dashboard or through the API.

Which country id does the Uzbekistan OTP API use?

Use uz in the prices query and in the body of POST /api/v1/activations.

What does a +998 number for testing cost?

From $0.20 per code. Each service has its own live price, returned by GET /api/v1/prices and displayed before you confirm an order.

Will Uzbek OTP messages be in Latin or Cyrillic script?

Either is possible, and some services send Russian or English instead. Match the numeric code rather than the text around it.

Do I get charged if an Uzbek code never arrives?

No. An Uzbek activation that expires empty after 20 minutes, or one you cancel, is refunded to the wallet in full without any request.

Can I keep an Uzbekistan number for repeat logins?

Not through self-serve. One-time numbers handle a single code; accounts that must log in again are better on a US or Canada Dedicated Number, or you can email support to ask about Uzbekistan.

Service names are trademarks of their respective owners. OTP Route is not affiliated with them. Use numbers lawfully, follow each service's terms and our Acceptable Use Policy.

Route your first OTP in minutes

Create a free account, top up your USD wallet and order a number from the dashboard or the API. No monthly fee.