BulkPhone input

Check if a phone number is registered on Viber

Find out whether a phone number has a Viber account before you send a code or notification. Bulk jobs; unknown answers are free.

$0.00015 per check in bulk jobs ($0.15 per 1,000; bulk only). Unknowns are free.

Start free

Last updated

The Viber check answers whether a phone number has a Viber account. It returns registered: true, false or null (unknown) with the time of the check. It runs in bulk jobs, for numbers from any country (real-time requests are paused for now). Nothing is sent to the number, and no name, photo or online status is returned.

What does the Viber check tell you?

It tells you whether a Viber account is associated with the number. Viber identifies users by their phone number: you install the app on a phone, confirm the number, and your contacts see you under that number. There is no username layer on top, so the number is the account.

  • registered: true: a Viber account exists for the number.
  • registered: false: a conclusive answer that there is no account.
  • registered: null: no conclusive answer; status and reason explain why. It is not charged.

Viber launched in 2010 and has been owned by the Japanese company Rakuten since 2014 (Rakuten press release, February 2014). Accounts can outlive the phone they were created on, and numbers get recycled by carriers, so read registered together with checked_at, and keep max_age short where freshness matters.

Who uses it, and why?

Viber's footprint is regional. In several countries of Eastern Europe, the Balkans, the Middle East and Southeast Asia it is one of the most-used messengers. Elsewhere it plays a smaller part.

  • Cheaper delivery of expected messages. Viber offers paid business messaging with a branded sender, which many companies in Viber-heavy markets use for transactional messages and codes, falling back to SMS when the person has no account. Checking first keeps undeliverable Viber attempts, and the delay they cause, out of the flow. See SMS cost reduction.
  • Channel order per market. Teams operating across countries check WhatsApp, Telegram and Viber in one request and choose the channel the customer opted into and actually has.
  • Deliverability signal. A Viber account shows the number passed a phone-based activation at some point. Together with a carrier lookup, this helps separate live mobile numbers from typos and landlines.

What do you get back?

One result per number in checks["viber.registered"]; no extra attributes.

FieldTypeMeaning
registeredboolean or nulltrue account exists, false no account, null unknown
statusenumcompleted, pending, unknown, unsupported_country or failed
confidence / confidence_scoreenum / 0–1How sure the answer is
checked_attimestampWhen the answer was obtained
cached / age_secondsboolean / integerCache details
billedbooleanWhether the check was charged
reasonstring or nullWhy the answer is not conclusive

How is it billed?

Per number, only for conclusive answers. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). You pay the bulk price, and POST /v1/jobs/estimate shows the maximum cost before you start. See pricing.

Within the freshness window a repeat check can be answered from your account's cache, free of charge (cached: true, billed: false). Use max_age: 0 for a fresh, billed answer and max_cost to cap a request.

What are the limits?

The Viber check runs in bulk jobs (POST /v1/jobs, up to 50,000 numbers and e-mails). Real-time requests (POST /v1/lookup) are paused while our real-time route is unreliable; they return 403 service_disabled with a pointer to bulk jobs. All countries are accepted.

  • Up to 20 checks per request, and numbers × checks up to 2,000 per lookup or 100,000 per job.
  • Requests that look like sequential number ranges or generated e-mail lists are rejected (suspected_enumeration).
  • Each account has a daily number cap (GET /v1/limits).
  • Numbers written without a country code need default_country to be read correctly.

How do I use it responsibly?

Use the check to decide how to reach customers who asked to hear from you, not to find new people to message. Viber's business messaging requires approved senders and opted-in recipients, and our acceptable use policy forbids unsolicited bulk messaging and scanning number ranges. Keep a lawful basis for every list you check. People whose numbers were checked can object via the opt-out form.

Example request

Create a job with test numbers, then read its results. Test keys are free and never reach a real network; +447700900001 answers "registered". See test mode and bulk jobs.

curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"numbers":["+447700900001","+447700900002","+447700900003"],"checks":["viber"]}'

Runs as pasted with the public sandbox key, which answers the test values only. In the SDKs, omit the key to use MOBILEVALIDATE_API_KEY.

Result row (excerpt, test mode: the first item of data from GET /v1/jobs/{id}/results):

JSON
{
  "kind": "phone",
  "input": "+44770*****01",
  "e164": "+447700900001",
  "country": "GB",
  "number_status": "valid",
  "checks": {
    "viber.registered": {
      "service": "viber.registered",
      "status": "completed",
      "registered": true,
      "attributes": null,
      "confidence": "high",
      "confidence_score": 0.99,
      "checked_at": "2026-09-25T14:25:29.589Z",
      "cached": false,
      "age_seconds": 0,
      "billed": false,
      "reason": null,
      "poll_after_ms": null
    }
  },
  "test": true
}

Try it now

checks: ["viber.registered"] · Bulk-only service: create a job via POST /v1/jobs, then read GET /v1/jobs/{id}/results. Every example runs as pasted: it uses the public sandbox key, which answers the test values for free. In the SDKs, omit the key to use MOBILEVALIDATE_API_KEY.

curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"numbers":["+447700900001"],"checks":["viber.registered"]}'

Real test-mode result for this check

checks["viber.registered"]
{
  "service": "viber.registered",
  "status": "completed",
  "registered": true,
  "attributes": null,
  "confidence": "high",
  "confidence_score": 0.99,
  "checked_at": "2026-09-25T14:25:28.979Z",
  "cached": false,
  "age_seconds": 0,
  "billed": false,
  "reason": null,
  "poll_after_ms": null
}

What you get

Fields of checks["viber.registered"], generated from the public service catalog.

FieldTypeMeaning
registeredboolean | nulltrue = found, false = not found, null = unknown (not charged).
statusenumcompleted, pending, unknown, unsupported_country or failed.
checked_attimestampWhen the answer was obtained.

Frequently asked questions

In which countries is the Viber check most useful?

The check works for numbers from any country. It is most useful where Viber is a leading messenger, which includes several countries in Eastern Europe, the Balkans, the Middle East and Southeast Asia.

Does a Viber account mean the number is a mobile number?

Usually. Viber is registered on a phone with the number activated by a code, so an account is a good sign the number was used on a smartphone. It is not proof of the current owner.

Can I use the result to send Viber business messages?

Only to people who agreed to receive them. Viber business messaging has its own rules and approval process; our check only tells you whether the number has an account.

What makes a Viber answer unknown?

Mostly a check that did not complete in time. Unknown answers have registered set to null and are never charged.

Is the Viber name or photo returned?

No. Only whether an account is associated with the number. Names, photos and online status are never returned.

All articles

Add Viber number check to your stack

Create a free MobileValidate account: approved automatically, usually within 10–15 minutes. Viber number check: $0.00015 per check in bulk jobs ($0.15 per 1,000; bulk only).

Free to start: check 20 phone numbers and 10 e-mail addresses for real on your account, plus an unlimited test mode. You pay only for conclusive answers, from $20.