# Check if a phone number has a Microsoft account

> Check in real time whether a personal Microsoft account is associated with a phone number. Yes, no or unknown per number; unknowns are free.

Canonical: https://mobilevalidate.com/services/microsoft-account-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 Microsoft account check indicates whether a personal Microsoft account is associated with a phone number. It runs in real time and in bulk jobs, for numbers from any country, and answers `registered: true`, `false` or `null` (unknown) with the time of the check. It never returns names, gamertags or e-mail addresses.

## What does the Microsoft account check tell you?

It tells you whether a phone number is linked to a Microsoft account. That is the personal account used for Windows sign-in, Outlook.com, OneDrive, Xbox and other Microsoft consumer services. Microsoft accepts a phone number as the sign-in name, and numbers are also added as security contacts to receive verification codes.

- `registered: true`: a Microsoft account is associated with the number.
- `registered: false`: a conclusive "no".
- `registered: null`: no conclusive answer. Not charged.

Microsoft runs two separate account systems. Personal Microsoft accounts are created by individuals. Work or school accounts are created and managed by organizations. This check is about the personal kind, so it tells you nothing about someone's employer or their company's systems.

## Who uses it, and why?

A single Microsoft account often covers a person's PC, e-mail, cloud storage and games console. Numbers linked to one have usually been used for sign-ins and verification codes for years.

- **Account security.** When a customer changes the recovery number on their account with you, a number linked to a Microsoft account is less likely to be temporary. See [account security](/use-cases/account-security).
- **Sign-up protection.** The real-time answer fits into a live sign-up next to a [carrier lookup](/services/carrier-lookup), with [Apple Account](/services/apple-id-number-check) as a second large-platform signal.
- **Data hygiene.** It helps you judge whether old numbers in consented customer records are still in use.

For e-mail addresses, use the [Outlook e-mail check](/services/outlook-email-check). It runs in bulk jobs only.

## What do you get back?

Each number gets one result under `checks["microsoft.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` / `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, 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). Cache hits are free, and `max_age: 0` forces a fresh, billed check.

## What are the limits?

- Real time (`POST /v1/lookup`, up to 100 identifiers) and bulk jobs (`POST /v1/jobs`, up to 50,000 per job), for numbers from every country.
- Up to 20 checks per request. 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`).

## How do I use it responsibly?

Use the answer to protect accounts and sign-ups, only for numbers you have a lawful basis to process. Don't build profiles or run through number lists to see who has an account. The [acceptable use policy](/legal/acceptable-use) forbids both, as well as unsolicited messaging. People can object at [/opt-out](/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": ["microsoft"]}'
```

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

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

## Frequently asked questions

### Does the check cover work or school accounts?

The check is about personal Microsoft accounts, the kind used for Outlook.com, Xbox, OneDrive and signing in to Windows. Work or school accounts are managed by each organization in a separate system, so don't read the answer as a statement about them.

### Can a Microsoft account use a phone number as its username?

Yes. Microsoft lets people sign in with a phone number as well as with an e-mail address. A number can also be added as a security contact for verification codes.

### Is there an Outlook e-mail check too?

Yes. The outlook.email service checks whether an Outlook address exists. It runs in bulk jobs only, while this phone check also works in real time.

### Does the result include the account's name or Xbox gamertag?

No. It only indicates whether a Microsoft account is associated with the number. No name, gamertag, e-mail address or device information is returned.

## Service code and modes

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

## Price (live)

- Realtime (POST /v1/lookup): $0.0005 per check ($0.50 per 1,000)
- Bulk (POST /v1/jobs): $0.0003 per check ($0.30 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._
