# Check if a Russian phone number has a VK account

> Check in real time whether a VK account is associated with a Russian (+7) mobile number. Yes, no or unknown; other countries are never charged.

Canonical: https://mobilevalidate.com/services/vk-number-check · Last updated: 2026-09-25

![A phone number checked against a grid of generic account tiles, each marked registered, not registered or unknown.](https://mobilevalidate.com/images/account-presence-check.svg)

*Account checks say whether an account exists. They never say whose it is.*


The VK check indicates whether a VK account is associated with a Russian phone number. It runs in real time and in bulk jobs, and answers `registered: true`, `false` or `null` (unknown) with the time of the check. Numbers outside Russia return `unsupported_country` and are not charged. No profile data is ever returned.

## What does the VK check tell you?

It tells you whether a Russian mobile number is linked to an account on VK, the Russian social network run by VK Company. VK uses the phone number as the main sign-in identifier through VK ID, a single account used across several of the company's services. A number with an associated account has usually been confirmed with a code on VK.

- `registered: true`: a VK account is associated with the number.
- `registered: false`: a conclusive "no".
- `registered: null`: no conclusive answer. Not charged.
- `status: unsupported_country`: the number is not Russian. Not charged.

Here the phone number is how people sign in, not an optional extra added for recovery. That makes a `true` answer on VK more informative than on platforms where most people register with an e-mail address.

## Who uses it, and why?

The VK check suits businesses that serve customers in Russia and need a quick signal on a Russian number.

- **Sign-up and OTP protection.** In a live sign-up, a number with a VK account is more likely to be a person's everyday mobile number than a number bought for a single registration. See [OTP and sign-up fraud](/use-cases/otp-and-signup-fraud).
- **Channel choice for expected messages.** Combine with [Telegram](/services/telegram-number-check) and [MAX](/services/max-number-check) to see which messengers a consenting customer is likely to use.
- **Lead verification** for Russian consumer leads.

For e-mail addresses on the same market, see the [Mail.ru](/services/mailru-email-check) and [Yandex](/services/yandex-email-check) e-mail checks.

## What do you get back?

Each number gets one result under `checks["vk.registered"]`, with no extra attributes.

| Field | Type | Meaning |
|---|---|---|
| `registered` | boolean or null | `true` account associated, `false` none, `null` unknown |
| `status` | enum | `completed`, `pending`, `unknown`, `unsupported_country` or `failed` |
| `confidence` / `confidence_score` | enum / 0–1 | How sure the answer is |
| `checked_at` | timestamp | When the answer was obtained |
| `cached` / `age_seconds` | boolean / integer | Served from your account's cache, and its age |
| `billed` | boolean | Whether this check was charged |
| `reason` | string or null | Why an answer is not conclusive, e.g. `UNSUPPORTED_COUNTRY` |

## How is it billed?

You pay per number checked, and only for conclusive answers. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). Real-time and bulk checks are priced separately. See [pricing](/pricing). Cache hits inside the freshness window are free, and `max_age: 0` forces a fresh, billed check.

## What are the limits?

- Real time (`POST /v1/lookup`, up to 100 identifiers) and bulk jobs (`POST /v1/jobs`, up to 50,000 per job).
- Russia only. The +7 country code is shared with Kazakhstan, so numbers are checked against the Russian numbering plan, not just the prefix.
- Up to 20 checks per request. Numbers × checks is capped at 2,000 per lookup and 100,000 per job.
- Requests that look like sequential number ranges or generated e-mail lists are rejected.
- A daily cap per account applies (`GET /v1/limits`).

## How do I use it responsibly?

Check only numbers you have a lawful basis to process under the laws that apply to you and to the people concerned. Use results for fraud prevention and for choosing a channel for messages people expect. Don't use them for profiling or unsolicited contact, which our [acceptable use policy](/legal/acceptable-use) forbids. People can object at [/opt-out](/opt-out).

## Example request

With a test key, `+447700900001` answers "registered" (test numbers bypass the country limit). See [test mode](/docs/test-mode).

```bash
curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+447700900001"], "checks": ["vk"]}'
```

Response (excerpt, test mode: the first item of `results`):

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

## Frequently asked questions

### Which numbers does the VK check accept?

Russian numbers only. Numbers from other countries, including other +7 numbers that are not Russian, come back as unsupported_country and are not charged.

### Why is the phone number a strong signal on VK?

VK signs people in with a phone number through its VK ID account, so an associated account usually means the number was verified with a code on VK. Treat it as a signal, not as identity proof.

### Is the answer instant?

Usually. The VK check is available in real time on POST /v1/lookup and waits up to 10 seconds by default. Slower answers come back as pending.

### Does the check return the VK profile?

No. It only indicates whether a VK account is associated with the number. Names, photos, profile pages and friends are never returned.

### Can I test it without a Russian number?

Yes. With a test key the documented test numbers (+44 7700 900xxx) work for every service, including VK.

## Service code and modes

- Code: `vk.registered` (input: phone number)
- Modes: realtime and bulk · countries: RU

## Price (live)

- Realtime (POST /v1/lookup): $0.0015 per check ($1.50 per 1,000)
- Bulk (POST /v1/jobs): $0.0008 per check ($0.80 per 1,000)
- You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate).

## Response fields (from the public catalog)

| Field | Type | Meaning |
|---|---|---|
| registered | boolean or null | true = found, false = not found, null = unknown (not charged) |
| status | enum | completed, pending, unknown, unsupported_country, failed |
| checked_at | timestamp | When the answer was obtained |

_Platform and brand names are used only to describe which service a check refers to. MobileValidate is not affiliated with, endorsed by or sponsored by any of these companies; all trademarks belong to their owners._
