RealtimeBulkE-mail input

Check if an e-mail address has an Instagram account

Find out in real time whether an e-mail address is associated with an Instagram account. Yes, no or unknown; no usernames or profiles; unknowns free.

Last updated

checks: ["instagram.email"]
An e-mail envelope routed to mail servers found in DNS; two mailboxes are confirmed and one answer is unknown.An e-mail envelope routed to mail servers found in DNS; two mailboxes are confirmed and one answer is unknown.

The Instagram e-mail check answers whether an e-mail address is associated with an Instagram account. It runs in real time and in bulk jobs, and returns registered: true, false or null (unknown), with the time we checked. Nothing is sent to the address, and no username, photo or profile is returned.

What does the Instagram e-mail check tell you?

It tells you whether Instagram has an account that uses this e-mail address. Instagram accounts can be registered with an e-mail address or a mobile number. For numbers, use the Instagram number check. Instagram is owned by Meta but keeps its own accounts. Linking an Instagram account to a Facebook account in Meta's Accounts Center does not merge them, so the Facebook e-mail check can give a different answer for the same address.

  • registered: true: an Instagram account is associated with the address.
  • registered: false: a conclusive "no account".
  • registered: null: no conclusive answer, with status and reason explaining why. Not charged.

Who uses it, and why?

  • Creator and community platforms. Services whose users are active on Instagram use a "yes" as one signal that a new sign-up is a real person rather than a script. See OTP and sign-up fraud.
  • Lead verification. Combined with the mailbox check, it helps separate real consumer leads from invented addresses. See lead verification.

What do you get back?

FieldTypeMeaning
email, email_statusstring, enumNormalized address; valid, invalid_email, duplicate or suppressed
checks["instagram.email"].registeredboolean or nulltrue account exists, false none, null unknown
…status, …reasonenum, stringOutcome, and why an answer is not conclusive
…confidence, …checked_atenum, timestampHow sure the answer is, and when it was obtained
…cached, …billedbooleanCache hit, and whether it was charged

How is it billed?

You pay per address with a conclusive answer. Real-time and bulk have separate prices, shown on pricing. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). Cache hits inside the freshness window are free.

What are the limits?

The check runs in real time (POST /v1/lookup, up to 100 numbers and e-mails) and in bulk jobs (POST /v1/jobs, up to 50,000). Use the code instagram.email. The alias instagram means the phone-number check. A request can hold up to 20 checks. Requests that look like sequential number ranges or generated e-mail lists are rejected: 20 or more addresses in one request on one domain that differ only by digits or separators, or, with live keys, 50 or more of one such pattern per account per UTC day.

How do I use it responsibly?

Use the check on addresses your users gave you, for fraud prevention and data quality. We never read mailboxes or send e-mail to the address, and the answer is only yes, no or unknown. Don't use it to look up someone's social media presence or to build audiences for unsolicited messages. The acceptable use policy forbids both. People can object through the opt-out form.

Example request

curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"emails":["[email protected]"],"checks":["instagram.email"]}'

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.

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

JSON
{
  "kind": "email",
  "input": "[email protected]",
  "email": "[email protected]",
  "email_status": "valid",
  "e164": null,
  "country": null,
  "checks": {
    "instagram.email": {
      "service": "instagram.email",
      "status": "completed",
      "registered": true,
      "attributes": null,
      "confidence": "high",
      "confidence_score": 0.99,
      "checked_at": "2026-09-25T14:25:32.298Z",
      "cached": false,
      "age_seconds": 0,
      "billed": false,
      "reason": null,
      "poll_after_ms": null
    }
  },
  "test": true
}

Try it now

Realtime lookup via POST /v1/lookup. 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/lookup \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"emails":["[email protected]"],"checks":["instagram.email"]}'

Real test-mode result for this check

checks["instagram.email"]
{
  "service": "instagram.email",
  "status": "completed",
  "registered": true,
  "attributes": null,
  "confidence": "high",
  "confidence_score": 0.99,
  "checked_at": "2026-09-25T14:25:29.021Z",
  "cached": false,
  "age_seconds": 0,
  "billed": false,
  "reason": null,
  "poll_after_ms": null
}

What you get

Fields of checks["instagram.email"], 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

Does the check return the Instagram username or profile?

No. It only answers whether an Instagram account is associated with the address: yes, no or unknown. No username, photo or profile is returned.

Is this the same as the Facebook check?

No. Instagram accounts are separate from Facebook accounts, even when they are linked in Meta's Accounts Center. Use both checks if you need both answers.

Does the person find out?

No. Nothing is sent to the address and nothing happens on the account.

What does an unknown answer cost?

Nothing. Inconclusive answers are never charged.

Add Instagram account check by e-mail to your stack

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