Calls & numbers
Asked to dial a code?
Coverage: Recognises the standard mobile network codes (3GPP TS 22.030) that work with almost every carrier in the world: forwarding, barring, call waiting, showing or hiding your number and the IMEI. Also some carrier-specific codes where an official source documents them: *401* in India (Department of Telecommunications advisory) and Verizon’s *72 and *73 in the United States. Other carrier codes are shown as a carrier service.
Open toolOn this page
Purpose
Type the code you’ve been asked to dial (such as **21*…# or *401*…) to find out whether it forwards your calls to someone else, how to undo it and why it’s a scam.
Requirements
Anyone can read these guides, no account needed. Some tools require Pro, as indicated in each guide.
If someone calling from “your carrier”, “the courier” or “WhatsApp support” asks you to dial a code with stars and hashes, type it here first. Many of those codes forward your calls to the caller, who then receives your voice verification codes.
How to use it
The code you’re asked to dial
Check
Read the available fields alongside their limitations. An empty result does not prove safety or identify a person.
Synthetic example
Invented example, not a real lookup. Do not call or open its links.
**21*+44 1632 960123#Interpret the result
Call forwarding: This code changes where your calls go.
Call barring: This code blocks incoming or outgoing calls on your line.
Call waiting: This code turns call waiting on or off, or checks it.
Show or hide your number: This code decides whether the person you call sees your number.
Show your phone’s IMEI: This code shows your phone’s serial number (IMEI) on screen. It changes nothing, but don’t read it out to strangers.
Change the call barring password: This code changes the password that protects call barring on your line.
USSD banking: This code opens a banking or payment menu from your carrier. If someone walks you through that menu, they can make you send money.
A carrier service: It’s a service code of your carrier, for example to check your balance. Every carrier has its own: check its website or app.
It’s a phone number, not a code: It has no stars or hashes: it’s an ordinary number.
We don’t recognise this code: It doesn’t match any standard code. Don’t dial it if a stranger gave it to you.
Limitations
Checked in your browser: the code is never sent or stored.
To see whether any forwarding is on, dial *#21# and press call.
Troubleshooting
Type the code exactly as you were given it, with its * and #.
The code is too long: type 64 characters at most.
Use with the API
Needs an API key and credits. Each completed call costs 1 credit, even when there is no data. An active Pro account includes 20 credits per UTC calendar month, shared by every API route and spent first; unused monthly credits do not roll over. Credits bought on your account page work without Pro and never expire.
Errors are never charged: 401 invalid_api_key (missing or invalid key), 403 pro_required (no Pro credits and no purchased credits), 422 invalid input, 429 quota_exceeded (no credits left), rate_limit_exceeded or ai_busy (the AI of sms-check is at capacity), 503 tool_warming (the data is still being prepared) or tool or provider unavailable. After a 429 or 503, retry once the seconds in the Retry-After header have passed.
What a code someone asks you to dial does: call forwarding (and where to), barring, call waiting, caller ID or a carrier service, with its risk and the code that undoes it. Barring passwords are masked.
Send the JSON body to the tool's own route, or to POST /v2/tools with the tool field added. Both routes return the same result.
POST https://api.nocall.io/v2/dial-code
POST https://api.nocall.io/v2/tools {"tool":"dial-code","code":"**21*+34600000000#","country":"ES"}Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| code | string (1–64) | Yes | The code as you were asked to dial it, with its * and #, up to 64 characters. |
| country | string (enum, 56) | No (default: "ES") | Two-letter country code of the edition; it enables that country’s carrier codes (IN: *401*, *99#; US: Verizon *72, *71, *73, *67, *82). |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/dial-code' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"code":"**21*+34600000000#","country":"ES"}'import json
import os
import urllib.request
import uuid
api_key = os.environ.get('NOCALL_API_KEY')
if not api_key:
raise SystemExit('Set NOCALL_API_KEY')
request = urllib.request.Request(
'https://api.nocall.io/v2/dial-code',
method='POST',
data=json.dumps({'code': '**21*+34600000000#', 'country': 'ES'}).encode(),
headers={
'Authorization': 'Bearer ' + api_key,
'Content-Type': 'application/json',
'Idempotency-Key': str(uuid.uuid4()),
},
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
print(result['data']['result'], result['meta']['unitsCharged'])import { randomUUID } from 'node:crypto';
const requestId = randomUUID();
const apiKey = process.env.NOCALL_API_KEY;
if (!apiKey) throw new Error('Set NOCALL_API_KEY');
const response = await fetch('https://api.nocall.io/v2/dial-code', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ code: '**21*+34600000000#', country: 'ES' }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.code ?? 'request_failed');
console.log(result.data.result, result.meta.unitsCharged);Example response (200)
This is the documented example from the API reference. Lookups use a fictional number, and aggregates and AI answers show the shape of the result, not live data.
{
"data": {
"tool": "dial-code",
"result": {
"code": "**21*+34600000000#",
"kind": "call_forwarding",
"action": "register",
"service": "unconditional",
"forwardsTo": "+34600000000",
"calls": null,
"risk": "high",
"undo": "##002#",
"operator": null
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}Result fields (data.result)
| Field | Type | Description |
|---|---|---|
| code | string | The code as read: separators removed and barring passwords masked as ••••. |
| kind | string (enum, 10) | What the code is: call_forwarding, call_barring, call_waiting, caller_id, imei, password, mobile_banking, ussd_service, phone_number or unknown. |
| action | "activate" | "deactivate" | "check" | "register" | "erase" | "hide_id_this_call" | "show_id_this_call" | "show" | null | What it does to the service: activate, deactivate, check, register, erase, hide_id_this_call, show_id_this_call or show; null when it does not apply. |
| service | string (enum, 18) | null | The service the code changes (for example forwarding of all calls or barring of outgoing calls), or null. |
| forwardsTo | string | null | Where a forwarding code sends your calls, or null. |
| calls | string | null | The number a per-call code or a plain number dials, or null. |
| risk | "high" | "medium" | "low" | "none" | high (call forwarding to a number: the scam), medium, low or none. |
| undo | string | null | The code that undoes it, such as ##002# for any forwarding, or null. |
| operator | "IN" | "US" | null | Country of a carrier-specific code (IN or US), or null. |
Frequently asked questions
What is the call forwarding scam?
Someone pretending to be your carrier, a courier or tech support asks you to dial a code such as **21*number#. That code forwards your calls to the scammer: when WhatsApp or your bank calls you with a verification code, the call goes to them.
How do I know if call forwarding is on?
Dial *#21# and press call: your phone tells you whether calls are forwarded and to which number. To cancel all forwarding, dial ##002#.
Can my carrier ask me to dial a code?
Your carrier publishes its codes on its website or app, but it won’t call you to ask you to forward your calls to another number. If in doubt, hang up and call its customer service number yourself.
