# Services reference

> Reference of every MobileValidate check: service code, alias, input type, real-time or bulk-only, outputs and country coverage.

Canonical: https://mobilevalidate.com/docs/services · Last updated: 2026-09-25

This page lists every check you can put in `checks`, with its code, alias, input type, mode (real time and bulk, or bulk only), outputs and country coverage. Codes and aliases are interchangeable in requests, and responses always use the full code. `GET /v1/services` returns the live list for your key, with prices. The site's [services page](/services) may show a live version of this table.

## How do I read this table?

- **Input:** `phone` services run on `numbers`, `e-mail` services on `emails`.
- **Modes:** "real time + bulk" works on `POST /v1/lookup` and in jobs. "Bulk only" works in [bulk jobs](/docs/bulk-jobs) only.
- **Outputs:** `registered` means the answer is yes/no/unknown. Named attributes appear in `attributes` for conclusive answers.
- **Countries:** "all" means any country. Numbers outside a service's countries return `unsupported_country` and are not billed.
- Asking for `whatsapp.registered` and `whatsapp.business` together runs only `whatsapp.business`, because it answers both.

## Which phone services are there?

| Code | Alias | Modes | Outputs | Countries |
|---|---|---|---|---|
| `whatsapp.registered` | `whatsapp` | real time + bulk | `registered` | all |
| `whatsapp.business` | — | real time + bulk | `registered`, `business` | all |
| `telegram.registered` | `telegram` | real time + bulk | `registered` | all |
| `viber.registered` | `viber` | real time + bulk | `registered` | all |
| `signal.registered` | `signal` | bulk only | `registered` | all |
| `imessage.registered` | `imessage` | bulk only | `registered` | all |
| `rcs.registered` | `rcs` | bulk only | `registered`, `device_os` | all |
| `line.registered` | `line` | bulk only | `registered` | all |
| `zalo.registered` | `zalo` | real time + bulk | `registered` | all |
| `botim.registered` | `botim` | bulk only | `registered` | all |
| `max.registered` | `max` | bulk only | `registered` | all |
| `messenger.registered` | `messenger` | bulk only | `registered` | all |
| `facebook.registered` | `facebook` | real time + bulk | `registered` | all |
| `instagram.registered` | `instagram` | real time + bulk | `registered` | all |
| `threads.registered` | `threads` | real time + bulk | `registered` | all |
| `x.registered` | `x`, `twitter` | real time + bulk | `registered` | all |
| `tiktok.registered` | `tiktok` | bulk only | `registered` | all |
| `snapchat.registered` | `snapchat` | bulk only | `registered` | all |
| `linkedin.registered` | `linkedin` | bulk only | `registered` | US, IN |
| `vk.registered` | `vk` | real time + bulk | `registered` | RU |
| `apple.registered` | `apple` | real time + bulk | `registered` | all |
| `amazon.registered` | `amazon` | real time + bulk | `registered` | all |
| `microsoft.registered` | `microsoft` | real time + bulk | `registered` | all |
| `netflix.registered` | `netflix` | real time + bulk | `registered` | all |
| `network.carrier` (beta) | `carrier` | real time + bulk | `line_type`, `carrier`, `original_carrier`, `country` | all (coverage varies) |
| `network.carrier_us` | — | bulk only | `line_type`, `carrier` | US, CA |
| `number.spam` | `spam` | real time + bulk | `risk_level`, `risk_score`, `reason_regulator`, `reason_government`, `reason_community`, `reason_unassigned`, `voip_range`, `top_category`, `first_seen`, `last_seen`, `sources` | US, CA, DE |
| `number.hlr` (coming soon) | `hlr` | — | `status`, `ported`, `roaming`, `network`, `mcc_mnc`, `country` | — |

`number.hlr` (live network status) is not available yet. Requests for it return `403 service_disabled`. Access to `number.spam` is limited while it is in review. Ask us if you need it.

## Which e-mail services are there?

| Code | Alias | Modes | Outputs |
|---|---|---|---|
| `email.valid` | `email` | real time + bulk | `registered` (mailbox exists; major webmail providers, others → `UNSUPPORTED_PROVIDER`) |
| `gmail.email` | `gmail` | bulk only | `registered` |
| `outlook.email` | `outlook` | bulk only | `registered` |
| `yahoo.email` | `yahoo` | bulk only | `registered` |
| `yandex.email` | `yandex` | bulk only | `registered` |
| `mailru.email` | `mailru` | bulk only | `registered` |
| `apple.email` | `apple.email` | real time + bulk | `registered` |
| `amazon.email` | — | real time + bulk | `registered` |
| `facebook.email` | — | real time + bulk | `registered` |
| `instagram.email` | — | real time + bulk | `registered` |
| `netflix.email` | — | real time + bulk | `registered` |
| `spotify.email` | — | real time + bulk | `registered` |
| `linkedin.email` | — | bulk only | `registered` |
| `x.email` | — | bulk only | `registered` |

E-mail services have no country limits. See [e-mail checks](/docs/emails) for normalization and the anti-enumeration rules.

## What do the attribute values mean?

| Attribute | Values |
|---|---|
| `business` | `true` / `false`: WhatsApp Business account |
| `device_os` | `ios`, `android`, `unknown`: handset platform reported with RCS capability |
| `line_type` | `mobile`, `fixed_line`, `fixed_line_or_mobile`, `voip`, `toll_free`, `premium_rate`, `shared_cost`, `personal`, `pager`, `uan`, `voicemail`, `unknown` |
| `carrier` / `original_carrier` | Current carrier name / carrier the range was allocated to, when different |
| `risk_level` | `high`, `medium`, `low`, `no_reports` (`no_reports` does not mean safe) |
| `risk_score` | integer 0–100 |
| `top_category` | `debt_relief`, `impersonation`, `robocall`, `medical`, `home_services`, `warranty`, `sms_spam`, `dialer`, `fraud_hacking`, `other` |
| `first_seen` / `last_seen` | `YYYY-MM` |
| `sources` | integer 0–10: number of independent signal classes |

Each attribute's type (`string`, `boolean`, `enum`, `integer`), with enum values and integer bounds, is also returned by `GET /v1/services`. Enums may gain values, so treat unknown values as `unknown`.

## How do I get the live list?

```bash
curl https://api.mobilevalidate.com/v1/services -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY"
```

Each entry has `code`, `name`, `platform`, `family`, `input_type`, `result_kind`, `attributes`, `realtime`, `batch`, `modes`, `status`, `beta`, `countries` and `prices` (`realtime` and `batch`, as decimal strings per check). Without a key, you get the public catalog. Platform names are used only to describe which service a check refers to.

## Frequently asked questions

### Is this table always current?

It reflects the catalog on the date shown. GET /v1/services is authoritative at run time and shows exactly what your key can use, with prices.

### What does bulk only mean?

The service answers in bulk jobs (POST /v1/jobs) but not on the real-time endpoint, which refuses it with 403 service_disabled.
