Phone validation · Temporary phone number checker

Free tool

Disposable Phone Number Checker

Check if a signup's phone number is temporary or disposable before you send an SMS code. Trueguard monitors public receive-SMS sites itself and returns 180 days of history, so you can catch fake signups and SMS OTP abuse at the form. Free, no signup for your first checks.

What you get

Get 100 free checks a month

No credit card required.

In the browser5 / day
Free API key100 / month
DisposableLast 30 days
Previously disposable31 to 180 days

Check if a phone number is disposable.

Or try

Example: a number listed on a receive-SMS site

Example data. A real result for +1 408 634 3220.

Risky

+1 408 634 3220

This number is disposable.

Listed on a public SMS-receiving site in the last 30 days.

DisposableYes
Previously disposableNo
Line typeVoIP
VoIP typeNon-fixed VoIP
Carrier typeVirtual number provider (CPaaS)
  1. 1

    Listed in the last 30 days

    Trueguard saw this number on a public receive-SMS site within the last 30 days. risk.isDisposable is true, so risk.status is risky.

  2. 2

    Non-fixed VoIP from a virtual number provider

    Bandwidth holds the range and serves the number. Line type is VoIP, VoIP type is non-fixed and carrier type is CPaaS.

  3. 3

    Its codes are public

    A receive-SMS site shows every text the number gets on an open web page. A code sent to it proves nothing about who signed up.

Check for temporary numbers from your code

POST /v2/phone/validation returns risk.isDisposable, risk.previouslyDisposable and risk.status in the same response as line type and carrier. One number per request, median under 500 ms. 100 checks a month are free with no card. The Standard plan is $49.99 a month for 20,000 checks, then $0.0025 a check, so each signup check costs $0.0025.

curl -X POST https://api.trueguard.io/v2/phone/validation \ -H "X-API-KEY: $YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"phone":"+14159929960"}'

Currently disposable vs previously disposable

Trueguard keeps 180 days of sightings for each number and reports them in two fields.

FieldTrue whenChanges risk.status
risk.isDisposableListed on a public receive-SMS site in the last 30 daysYes, to risky
risk.previouslyDisposableListed 31 to 180 days ago, not in the last 30No
Both falseNot seen in 180 days, or the number is invalidNo

Previously disposable never changes the status, so a number last listed 60 days ago still comes back safe. The signup rule below still blocks it when the line is non-fixed VoIP, and steps it up on any other line.

A sighting counts when a trusted source lists the number, or when two unrelated sites list it.

Temporary, disposable and burner numbers: what Trueguard flags

Numbers on receive-SMS sites

Posted on public websites where anyone can read the texts. Trueguard flags them with risk.isDisposable and risk.previouslyDisposable.

Second-number and burner apps

These give one person a private number, so they do not show as disposable. Line type and carrier type describe them. The VoIP number checker shows both.

Prepaid SIM burners

A prepaid SIM is a mobile number. Nothing in the data marks it as prepaid, so it shows as mobile.

How to check if a phone number is temporary

1

Type the number

Start with + and the country code. A leading 00 is read as +.
2

Press Validate

The result appears under the box, with the API call for that number.
3

Read Disposable and Previously disposable

Disposable means listed in the last 30 days. Previously disposable means 31 to 180 days ago.

Where to run a disposable number check

At signup

Check the number when the form is submitted, before the account exists.

Before you send a code

A code sent to a public number can be read by anyone. Check first and skip the SMS for disposable numbers.

Account recovery

Refuse a disposable number as a recovery phone.

Free trials and promo codes

Flag trial signups that use numbers from receive-SMS sites.

Block, step up or allow at signup

Receive-SMS history works best next to the VoIP type. This is the same rule as block VoIP numbers at signup.

Signal combinationAction
line.type mobile, risk.status safeAllow
line.voipType fixedAllow. line.smsCapable is false, so verify by another channel such as email.
line.voipType nonFixed, no disposable historyStep up
line.voipType unknownStep up
Any line with risk.previouslyDisposable trueStep up
line.voipType nonFixed and risk.isDisposable trueBlock
line.voipType nonFixed and risk.previouslyDisposable trueBlock
Any line with risk.status risky (disposable or premium rate)Block
risk.status invalidReject and ask the user to re-enter

Read the block VoIP numbers at signup guide for the code, or should you block VoIP numbers for the reasoning.

What a disposable check can't tell you

Numbers never posted publicly

A private burner number has no sighting. Use line type and carrier type for those.

Sightings older than 180 days

Both fields are false for a number last seen more than 180 days ago.

Who owns the number

The lookup returns operator data, not a person. Trueguard does not do reverse phone lookup.

Whether someone answers

There is no HLR lookup and no contact with the network. Valid means the number belongs to a real range.

Questions about temporary phone numbers.

Anything missing? Contact support or read the documentation.

How do I check if a phone number is temporary?

Enter it above with + and the country code. Trueguard checks it against its own monitoring of public receive-SMS sites and returns two fields: risk.isDisposable for a listing in the last 30 days, and risk.previouslyDisposable for 31 to 180 days ago.

What is a disposable phone number?

A number published on a public receive-SMS site, where anyone can read the texts it gets. Anyone can use one to pass an SMS code check, so the code proves nothing about who signed up.

How do you detect a burner phone number?

It depends on the burner. Numbers from public receive-SMS sites show as disposable. Numbers from second-number apps are private, so line type and carrier type describe them, often as VoIP or a virtual number provider (CPaaS). A prepaid SIM shows as mobile, and nothing in the data marks it as prepaid.

Can you tell if a number is from a receive-SMS website?

Yes, when it was listed in the last 180 days. A sighting counts when a trusted source lists the number, or when two unrelated sites list it. Trueguard does not publish which numbers or sites it monitors.

Is a VoIP number the same as a disposable number?

No. VoIP is a line type. Disposable means the number was listed on a public receive-SMS site. VoIP alone never changes risk.status, and a disposable number makes it risky on any line type.

What does previously disposable mean?

Trueguard saw the number on a public receive-SMS site 31 to 180 days ago, and not in the last 30. It does not change risk.status, so the number can still show as safe. Step it up at signup, and block it when the line is also non-fixed VoIP.

Should I block all VoIP numbers at signup?

A blanket block also turns away people who use VoIP as their main number. Block disposable numbers and non-fixed VoIP with receive-SMS history, step up the rest of non-fixed VoIP, and allow fixed VoIP.

Is there an API to detect temporary phone numbers?

Yes. Trueguard's POST /v2/phone/validation returns risk.isDisposable and risk.previouslyDisposable with line type, carrier and SMS destination risk, with a median response under 500 ms. 5 checks a day in the browser with no account. A free API key gives 100 checks a month with no card. Above that, the Standard plan is $49.99 a month for 20,000 checks, then $0.0025 a check.

Check for disposable numbers from your backend.

100 free checks a month, no card required.

Get your free API key

No credit card required.

trueguard-logo© 2026 Trueguardinfo@trueguard.io