# Check if a phone number has an Instagram account

> Check in real time whether an Instagram account is associated with a phone number. Useful for sign-up and lead checks. Yes, no or unknown.

Canonical: https://mobilevalidate.com/services/instagram-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 Instagram check indicates whether an Instagram account is associated with a phone number. It answers `registered: true`, `false` or `null` (unknown) with the time of the check. It works in real time and in bulk jobs, for numbers from any country. It never returns usernames, names, photos or any profile content.

## What does the Instagram check tell you?

It tells you whether the number is linked to an Instagram account. Instagram lets people sign up with either a mobile number or an e-mail address. A number can also be added later for login, account recovery or two-factor codes. A `true` answer means an account is associated with the number today.

- `registered: true`: an Instagram account is associated with the number.
- `registered: false`: a conclusive "no". This is common for people who use Instagram with an e-mail address only.
- `registered: null`: no conclusive answer (`status`, `reason`). You are not charged.

Instagram is one of the few services here with both a phone check and an [e-mail check](/services/instagram-email-check). If your sign-up form collects both, you can check each identifier with the matching service in a single request.

## Who uses it, and why?

The Instagram check is mostly a fraud-prevention and lead-quality signal for consumer businesses.

- **Sign-up protection.** Accounts on large consumer apps build up over years. A number with an associated Instagram account is less likely to have been bought minutes ago for a single sign-up. Pair the check with a [carrier lookup](/services/carrier-lookup) to see the line type. See [OTP and sign-up fraud](/use-cases/otp-and-signup-fraud).
- **Lead verification.** For consumer brands whose customers are active on Instagram, an associated account supports the case that a submitted number is real and in use.
- **Account-security reviews.** When a customer changes a recovery number, a number with no footprint on any consumer platform can be flagged for a second look.

Instagram shares an owner with Facebook, Threads and Messenger, and people can link these accounts in Meta's Accounts Center. The Threads link is especially close: at its July 2023 launch, Threads profiles were created from existing Instagram accounts. Request [Threads](/services/threads-number-check) in the same call when you need both answers.

## What do you get back?

Each number gets one result under `checks["instagram.registered"]`. The service has 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; `null` when not conclusive |
| `checked_at` | timestamp | When the answer was obtained |
| `cached` / `age_seconds` | boolean / integer | Served from your account's cache, and its age |
| `billed` | boolean | Whether this check was charged |
| `reason` | string or null | Why an answer is not conclusive |

## How is it billed?

You pay per number checked, and only for conclusive answers. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). Real-time and bulk checks have separate prices. See [pricing](/pricing).

Repeat checks inside the freshness window can come from your account's cache for free (`cached: true, billed: false`). `max_age: 0` forces a fresh, billed check. `max_cost` caps the most a request may cost.

## What are the limits?

The check runs in real time (`POST /v1/lookup`, up to 100 numbers and e-mails per request) and in bulk jobs (`POST /v1/jobs`, up to 50,000 per job). It covers every country.

- A request can hold up to 20 checks. Numbers × checks is capped at 2,000 per lookup and 100,000 per job.
- Requests that look like sequential number ranges or generated e-mail lists are rejected (`suspected_enumeration`).
- Your account's daily cap and what is left of it are shown by `GET /v1/limits`.
- Invalid, duplicate and suppressed numbers are reported per row and never checked.

Timeouts return `unknown` with `reason: UPSTREAM_TIMEOUT`. Slow answers return `pending` first.

## How do I use it responsibly?

Only check numbers you have a lawful reason to process, and use the answer to protect your service or clean data you already hold. Don't use it to build profiles, research individuals or test lists of numbers to see who uses Instagram. Our [acceptable use policy](/legal/acceptable-use) forbids all of these, as well as unsolicited messaging. People can object at [/opt-out](/opt-out), and suppressed numbers are skipped without charge.

## Example request

With a test key, `+447700900001` answers "registered". See [test mode](/docs/test-mode).

```bash
curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+447700900001"], "checks": ["instagram"]}'
```

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

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

## Frequently asked questions

### Do I get the Instagram username or profile?

No. The check only indicates whether an Instagram account is associated with the number. Usernames, names, photos, followers and posts are never returned.

### Why do Instagram and Threads answers often match?

Threads launched in July 2023 with sign-up through an existing Instagram account, so many numbers linked to Instagram also sit behind a Threads profile. They are still separate checks and can differ.

### Can I check an e-mail address instead of a number?

Yes. Use the separate Instagram-by-e-mail check (instagram.email) with the emails field. It answers the same yes, no or unknown question for an address.

### Does a missing Instagram account mean the number is fake?

No. Many people never use Instagram, and many who do signed up with an e-mail address. Treat false as neutral unless other signals point the same way.

### Is the check free in test mode?

Yes. Test keys never reach a real network and are never billed. +447700900001 answers registered, +447700900002 not registered and +447700900003 unknown.

## Service code and modes

- Code: `instagram.registered` (input: phone number)
- Modes: realtime and bulk · worldwide

## Price (live)

- Realtime (POST /v1/lookup): $0.00008 per check ($0.08 per 1,000)
- Bulk (POST /v1/jobs): $0.00005 per check ($0.05 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._
