BulkPhone input

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.

Last updated

checks: ["snapchat.registered"]
A phone number checked against a grid of generic account tiles, each marked registered, not registered or unknown.A phone number checked against a grid of generic account tiles, each marked registered, not registered or unknown.

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 and Instagram, to judge whether numbers in consented lists are real and used.

  • Lead-list hygiene before a consented campaign. See 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 for those.

What do you get back?

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

FieldTypeMeaning
registeredboolean or nulltrue account associated, false none, 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 / billedbooleanServed from cache; charged or not
reasonstring or nullWhy 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, 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 forbids unsolicited messaging, profiling and working through number lists to find out who uses an app. Objections go through /opt-out.

Example request

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":["snapchat"]}'

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": {
    "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
}

Try it now

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":["snapchat.registered"]}'

Real test-mode result for this check

checks["snapchat.registered"]
{
  "service": "snapchat.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["snapchat.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

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.

Add Snapchat number check to your stack

Request access to MobileValidate. Start in test mode, go live when you are ready.