On this page

Directories

Operators

API · Pro

Coverage: Areas come from the official numbering plan of each edition’s country. Spain lists a province for every landline range; many other countries list their area codes and cities. Mobile numbers have no area in any country, and a few countries do not publish a plan we can read yet: there we only show the type of line.

Open tool
On this page

Purpose

Open the directory for your edition, choose a category and open an entry to read its data. Counts describe data available in NoCall, not every call in the country. Missing data does not prove a number is safe.

Requirements

Anyone can read these guides, no account needed. Some tools require Pro, as indicated in each guide.

How to use it

  1. Select the country edition, open the category or row you need and review the available details.

  2. Filter by operator or prefix

  3. Operators

Synthetic example

Note

Invented example, not a real lookup. Do not call or open its links.

Synthetic example
+44 1632 960123

Interpret the result

Indicative information from published numbering plans. It describes the type of number, never the person or company behind it.

Only reviewed or public technical facts are shown. Private identities and protection signals stay hidden.

Limitations

Warning

Formats and supported calling codes only. They do not prove a number’s location, owner or active status. Some codes are shared.

Troubleshooting

Try a different brand, legal name, or three-digit prefix.

Try again in a few minutes or look up a number directly.

Use with the API

Warning

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.

Note

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.

Spanish operators with their prefixes, number type and spam count, plus special prefixes. ES only.

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.

Endpoint
POST https://api.nocall.io/v2/operator-directory
POST https://api.nocall.io/v2/tools  {"tool":"operator-directory","country":"ES","operator":"Movistar"}

Parameters

NameTypeRequiredDescription
country"ES"No (default: "ES")Country of the data. Only ES is supported.
operatorstring (1–60)NoOnly this operator, by name.
bash
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/operator-directory' \
  --header "Authorization: Bearer $NOCALL_API_KEY" \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $REQUEST_ID" \
  --data '{"country":"ES","operator":"Movistar"}'

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.

JSON
{
  "data": {
    "tool": "operator-directory",
    "result": {
      "operators": [
        {
          "name": "Movistar",
          "prefixes": [
            "609",
            "619"
          ],
          "numberType": "mobile",
          "spamCount": 0
        }
      ],
      "specialPrefixes": [
        {
          "prefix": "400",
          "name": "Llamadas comerciales",
          "type": "commercial",
          "cost": "no_callback",
          "risk": "medium"
        },
        {
          "prefix": "800",
          "name": "Llamada gratuita",
          "type": "toll_free",
          "cost": "free",
          "risk": "low"
        },
        {
          "prefix": "900",
          "name": "Llamada gratuita",
          "type": "toll_free",
          "cost": "free",
          "risk": "low"
        },
        {
          "prefix": "901",
          "name": "Coste compartido",
          "type": "premium",
          "cost": "shared",
          "risk": "medium"
        },
        {
          "prefix": "902",
          "name": "Coste extra",
          "type": "premium",
          "cost": "expensive",
          "risk": "high"
        },
        {
          "prefix": "903",
          "name": "Teléfono premium",
          "type": "premium",
          "cost": "very_expensive",
          "risk": "critical"
        },
        {
          "prefix": "905",
          "name": "Televoto",
          "type": "premium",
          "cost": "very_expensive",
          "risk": "critical"
        },
        {
          "prefix": "906",
          "name": "Teléfono premium",
          "type": "premium",
          "cost": "very_expensive",
          "risk": "critical"
        },
        {
          "prefix": "907",
          "name": "VoIP España",
          "type": "premium",
          "cost": "expensive",
          "risk": "high"
        },
        {
          "prefix": "908",
          "name": "VoIP España",
          "type": "premium",
          "cost": "expensive",
          "risk": "high"
        },
        {
          "prefix": "909",
          "name": "VoIP España",
          "type": "premium",
          "cost": "expensive",
          "risk": "high"
        },
        {
          "prefix": "803",
          "name": "Servicios para adultos",
          "type": "premium",
          "cost": "very_expensive",
          "risk": "critical"
        },
        {
          "prefix": "806",
          "name": "Entretenimiento",
          "type": "premium",
          "cost": "very_expensive",
          "risk": "high"
        },
        {
          "prefix": "807",
          "name": "Servicios profesionales",
          "type": "premium",
          "cost": "very_expensive",
          "risk": "high"
        },
        {
          "prefix": "704",
          "name": "Número personal",
          "type": "premium",
          "cost": "expensive",
          "risk": "medium"
        }
      ]
    }
  },
  "meta": {
    "requestId": "req_example",
    "unitsCharged": 1,
    "usage": {
      "periodStart": "2026-10-01",
      "unitLimit": 20,
      "unitsUsed": 3,
      "unitsRemaining": 17
    }
  }
}

Result fields (data.result)

FieldTypeDescription
operatorsarray<object>Operators with their prefixes, number type and spam count (null if unavailable).
specialPrefixesarray<object>Special prefixes with their name, type, cost and risk.