# Check if a phone number has a Threads account

> Check in real time whether a Threads account is associated with a phone number. Yes, no or unknown with a timestamp; unknowns are never charged.

Canonical: https://mobilevalidate.com/services/threads-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 Threads check indicates whether a Threads 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. No handle, name, photo or post is ever returned.

## What does the Threads check tell you?

It tells you whether the number is linked to a Threads account. Threads is Meta's text-based social app. It launched on 5 July 2023 (Meta announcement), and sign-up went through an existing Instagram account. For most people, the Threads account therefore shares its login details, including any phone number, with their Instagram account.

- `registered: true`: a Threads account is associated with the number.
- `registered: false`: a conclusive "no".
- `registered: null`: no conclusive answer (see `status` and `reason`). You are not charged.

Because of this Instagram link, Threads answers are strongly correlated with the [Instagram check](/services/instagram-number-check). They are not identical. Someone can have Instagram without ever opening Threads, and Threads rules on how accounts are created and linked have changed since launch.

## Who uses it, and why?

Threads is a younger network than Facebook or Instagram. Teams use the check mainly as an extra signal next to them.

- **Sign-up protection.** An account on a new app shows recent activity by the person behind the number, which a number bought yesterday for one sign-up usually won't have. See [OTP and sign-up fraud](/use-cases/otp-and-signup-fraud).
- **Consumer lead checks.** Brands whose audience is active on Meta apps can add Threads to a multi-check with Instagram and Facebook to see how much history a number has.
- **Data hygiene.** Along with other checks, it helps separate live, used numbers from dead entries in older lists you are allowed to process.

Threads also differs from other Meta apps in one technical way: Meta has started connecting it to the fediverse through the ActivityPub protocol. That affects how posts are shared. It does not affect what this check returns, which is only whether an account exists.

## What do you get back?

Each number gets one result under `checks["threads.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; `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 are priced separately. See [pricing](/pricing).

Repeat checks inside the freshness window are served free from your account's cache (`cached: true, billed: false`). Use `max_age: 0` to force a fresh check, which is billed.

## What are the limits?

The Threads check runs in real time (`POST /v1/lookup`, up to 100 identifiers) and in bulk jobs (`POST /v1/jobs`, up to 50,000 per job). It accepts numbers from 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.
- A daily cap per account applies (`GET /v1/limits`).
- Invalid, duplicate and suppressed numbers are reported per row and never checked.

## How do I use it responsibly?

Use the answer only to protect your service or to check data you have a lawful reason to hold. Don't research people, build profiles or run through lists of numbers to see who uses Threads. The [acceptable use policy](/legal/acceptable-use) forbids these uses and unsolicited messaging. People can object through the [opt-out form](/opt-out).

## 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": ["threads"]}'
```

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

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

## Frequently asked questions

### How is Threads related to Instagram?

Threads launched in July 2023 as a Meta app where people signed up through their Instagram account. Because of that link, Threads and Instagram answers for a number often match, but they are separate checks and can differ.

### Does the check return the Threads profile or posts?

No. It only indicates whether a Threads account is associated with the number. Handles, names, photos and posts are never returned.

### Should I request Threads if I already check Instagram?

Only if the Threads answer changes your decision. For most sign-up and lead checks the Instagram answer is enough. Threads adds a second signal on the same account family.

### Is Threads available in every country?

Threads launched outside the EU first and reached EU users in December 2023. Our check accepts numbers from any country, but how common Threads accounts are still varies by market.

### What happens if the check does not answer in time?

The result is unknown, with registered set to null and a reason such as UPSTREAM_TIMEOUT. Unknown results are not charged.

## Service code and modes

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

## Price (live)

- Realtime (POST /v1/lookup): $0.0002 per check ($0.20 per 1,000)
- Bulk (POST /v1/jobs): $0.00015 per check ($0.15 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._
