Phone validation · Temporary phone number checker
Free tool
Disposable Phone Number Checker
What you get
Get 100 free checks a monthNo credit card required.
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.
- 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
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
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.
| Field | True when | Changes risk.status |
|---|---|---|
risk.isDisposable | Listed on a public receive-SMS site in the last 30 days | Yes, to risky |
risk.previouslyDisposable | Listed 31 to 180 days ago, not in the last 30 | No |
| Both false | Not seen in 180 days, or the number is invalid | No |
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
Second-number and burner apps
Prepaid SIM burners
How to check if a phone number is temporary
Type the number
Press Validate
Read Disposable and Previously disposable
Where to run a disposable number check
At signup
Before you send a code
Account recovery
Free trials and promo codes
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 combination | Action |
|---|---|
line.type mobile, risk.status safe | Allow |
line.voipType fixed | Allow. line.smsCapable is false, so verify by another channel such as email. |
line.voipType nonFixed, no disposable history | Step up |
line.voipType unknown | Step up |
Any line with risk.previouslyDisposable true | Step up |
line.voipType nonFixed and risk.isDisposable true | Block |
line.voipType nonFixed and risk.previouslyDisposable true | Block |
Any line with risk.status risky (disposable or premium rate) | Block |
risk.status invalid | Reject 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
Sightings older than 180 days
Who owns the number
Whether someone answers
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 keyNo credit card required.

