# Check if a phone number is registered on Facebook Messenger

> Check in bulk whether a phone number is associated with a Facebook Messenger account. Yes, no or unknown per number; unknown answers are free.

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

![A phone with chat bubbles; one messaging-app check says registered, another is unknown.](https://mobilevalidate.com/images/messaging-app-registration-check.svg)

*Messaging-app checks answer registered, not registered or unknown, with the time we checked.*


The Messenger check tells you whether phone numbers are associated with a Facebook Messenger account. It runs in bulk jobs and answers `registered: true`, `false` or `null` (unknown) per number, with the time of the check. It works for numbers from any country and never returns names, photos or profile links.

## What does the Messenger check tell you?

It answers whether a Messenger account can be associated with the phone number. Messenger is Meta's chat app, built on Facebook accounts. Unlike WhatsApp, where the phone number is the account, a Messenger user is identified by the account itself. A phone number is linked only if the person added it, for example for login, account recovery or finding contacts.

- `registered: true`: a Messenger account is associated with the number.
- `registered: false`: a conclusive answer that no account can be associated with it.
- `registered: null`: no conclusive answer; not charged.

Because the number is optional and discoverability can be limited, `false` is common even for active users. Read the answer as "a Messenger account is linked to this number", not as a complete picture of the person's Meta usage.

## Who uses it, and why?

- **Account security and recovery flows.** Services that let users recover access by phone sometimes check whether a number is also linked to major consumer accounts, as one sign that it is a long-held personal number rather than a throwaway. See [account security](/use-cases/account-security).
- **Fraud screening.** A number with no link to any mainstream consumer account, including Messenger, [Facebook](/services/facebook-number-check) or [Instagram](/services/instagram-number-check), is a weak signal of a newly acquired or virtual number. Combine it with a [carrier lookup](/services/carrier-lookup).
- **Support-channel planning.** Businesses that answer customer questions on Messenger can see, in aggregate, how many of their customers are linked to the app before staffing that channel.

Messenger is not an outbound channel you can open with a phone number. On Meta's platform, businesses reply to people who contacted them first.

## What do you get back?

Each job row carries `checks["messenger.registered"]`; 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` / `billed` | boolean / integer / boolean | Cache and billing details |
| `reason` | string or null | Why the answer is not conclusive |

## How is it billed?

Per number, for conclusive answers only, at the bulk price. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). Use the free `POST /v1/jobs/estimate` to see the maximum cost first, and `max_cost` to cap the job. See [pricing](/pricing).

Numbers your account checked recently can be answered from its cache at no charge. `max_age: 0` forces fresh, billed checks.

## What are the limits?

Messenger runs in bulk jobs only. `POST /v1/lookup` answers `403 service_disabled` ("The check 'messenger.registered' is available in bulk jobs only (POST /v1/jobs).").

- Up to 50,000 numbers and e-mails per job, 20 checks per request, 100,000 number × check pairs per job.
- Numbers from every country are accepted.
- Requests that look like sequential number ranges or generated e-mail lists are rejected.
- A daily number cap applies per account. Follow the job with `GET /v1/jobs/{id}?wait=30` or a [webhook](/docs/webhooks).

## How do I use it responsibly?

Check only numbers you hold for a legitimate purpose, such as your own users or people reported to your fraud team. Never use the check to find a person's social media presence or to look someone up. It returns no profile, and our [acceptable use policy](/legal/acceptable-use) forbids stalking, profiling, unsolicited messaging and range scanning. People can object to checks via the [opt-out form](/opt-out).

## Example request

Test jobs complete at once. `+447700900001` answers registered, `…002` not registered and `…003` unknown. See [test mode](/docs/test-mode).

```bash
curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: messenger-demo-001" \
  -d '{"numbers": ["+447700900001", "+447700900002", "+447700900003"], "checks": ["messenger"]}'
# then: GET /v1/jobs/{id}?wait=30 and GET /v1/jobs/{id}/results
```

Job (excerpt, test mode):

```json
{
  "object": "job",
  "id": "job_0VWF4kOJtJr7IyMjsM9T",
  "status": "completed",
  "livemode": false,
  "checks": [
    "messenger.registered"
  ],
  "created_at": "2026-09-25T14:25:30.412Z",
  "completed_at": "2026-09-25T14:25:30.416Z",
  "progress": {
    "total": 3,
    "checks_total": 3,
    "done": 3,
    "conclusive": 2,
    "non_billable": 3
  },
  "retention_days": 30
}
```

First row from `GET /v1/jobs/{id}/results` (test mode):

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

## Frequently asked questions

### How is this different from the Facebook check?

Both relate to Meta accounts, but they answer separately: the Facebook check asks whether a Facebook account is associated with the number, this one whether a Messenger account is. The Facebook check also works in real time; Messenger is bulk only.

### Can my business message a person on Messenger after a positive result?

Not on that basis. Businesses can reply on Messenger when a person contacts their Page, within the time windows and message tags that Meta's platform rules allow. A registration result does not open a conversation.

### Why do many people not show up by phone number?

A phone number is optional on the underlying account, and people control who can find them by it. Accounts without a findable number answer not registered or unknown.

### Why is Messenger bulk only?

Messenger answers are gathered in batches, so the check runs in POST /v1/jobs. POST /v1/lookup refuses it with service_disabled.

### Are names or profile photos returned?

No. Only whether an account is associated with the number.

## Service code and modes

- Code: `messenger.registered` (input: phone number)
- Modes: bulk only · worldwide

## Price (live)

- Realtime: not available (bulk only)
- Bulk (POST /v1/jobs): $0.0005 per check ($0.50 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._
