# Check if a phone number has a Snapchat account

> Check in bulk whether a Snapchat account is associated with phone numbers you already hold. Yes, no or unknown per number; unknowns are free.

Canonical: https://mobilevalidate.com/services/snapchat-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 Snapchat check indicates whether a Snapchat account is associated with a phone number. It runs in bulk jobs only and answers `registered: true`, `false` or `null` (unknown) per number, with the time of the check. It never returns usernames, names, avatars or locations.

## What does the Snapchat check tell you?

It tells you whether the phone number is linked to a Snapchat account. Snapchat accounts are built around a username. People can add a phone number for login and recovery, and they choose whether others can find them by that number. The answer tells you whether a number is associated. It says nothing about how the account is used.

- `registered: true`: a Snapchat account is associated with the number.
- `registered: false`: a conclusive "no". Because of the username model and privacy options, this is weaker evidence than a `true`.
- `registered: null`: no conclusive answer. You are not charged.

## Who uses it, and why?

Businesses with a young consumer audience use the Snapchat check in bulk, together with [TikTok](/services/tiktok-number-check) and [Instagram](/services/instagram-number-check), to judge whether numbers in consented lists are real and used.

- **Lead-list hygiene** before a consented campaign. See [lead verification](/use-cases/lead-verification).
- **Batch review of new sign-ups**, to flag numbers with no platform footprint for a closer look.

Decisions during a live sign-up need an instant answer, and this check can't give one. Use a real-time service such as [Instagram](/services/instagram-number-check) for those.

## What do you get back?

Each number gets one result under `checks["snapchat.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` / `billed` | boolean | Served from cache; charged or not |
| `reason` | string or null | Why an answer is not conclusive |

## How is it billed?

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

## What are the limits?

- Bulk only: `POST /v1/jobs`, up to 50,000 numbers and e-mails per job, and at most 100,000 numbers × checks.
- Any country. National formats need `default_country`.
- Requests that look like sequential number ranges or generated e-mail lists are rejected.
- A daily cap per account applies (`GET /v1/limits`). Job data is kept for 30 days by default.

## How do I use it responsibly?

Snapchat's audience includes many young people. Be especially careful to check only numbers you have a lawful basis to process, and never use results to contact people who did not ask to hear from you. The [acceptable use policy](/legal/acceptable-use) forbids unsolicited messaging, profiling and working through number lists to find out who uses an app. Objections go through [/opt-out](/opt-out).

## Example request

See [test mode](/docs/test-mode) and [bulk jobs](/docs/bulk-jobs).

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

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": {
    "snapchat.registered": {
      "service": "snapchat.registered",
      "status": "completed",
      "registered": true,
      "attributes": null,
      "confidence": "high",
      "confidence_score": 0.99,
      "checked_at": "2026-09-25T14:25:30.824Z",
      "cached": false,
      "age_seconds": 0,
      "billed": false,
      "reason": null,
      "poll_after_ms": null
    }
  },
  "test": true
}
```

## Frequently asked questions

### Is the Snapchat check available in real time?

No, it runs in bulk jobs only (POST /v1/jobs). POST /v1/lookup refuses it with 403 service_disabled and points you to bulk jobs.

### Does the check return a Snapchat username?

No. It only indicates whether a Snapchat account is associated with the number. No username, name, Bitmoji, photo or location is returned.

### Can privacy settings affect the answer?

Snapchat is built around usernames, and people control whether others can find them by phone number. Settings like these may make an account harder to detect, so treat false as a weak signal.

### What do I pay for a job?

The bulk price per conclusive answer. Unknown, unsupported-country, invalid and duplicate rows are free. POST /v1/jobs/estimate shows the maximum cost before you start.

## Service code and modes

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

## Price (live)

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