# numradar > A REST API that tells you whether a phone number is registered on WhatsApp. One request returns > whether the number exists on the network, whether it is a business account and its profile name, > the line type, the country, and a link that opens a conversation. Bulk CSV and spreadsheet > validation and a first-party MCP server for agents are part of the same product. Facts worth having before calling anything: - The customer-facing API answers on its own subdomain, versioned: `https://api.numradar.app/v1/…` — not a bare path, and not `/api`. This website and its dashboard are a separate origin, `https://numradar.app`; the dashboard's own fetches call the same routes there, same-origin, under `/api/…` instead — that form is for the dashboard, not what to copy into an integration. - Authenticate with an API key as `Authorization: Bearer nr_live_…`. Keys are created in the dashboard. The dashboard's own calls also accept its session cookie, which only works there — the API subdomain does not honour it at all. - Billing is per definitive answer. Registered and not-registered both cost one credit, because both are answers you can act on. A number that fails local parsing, a request over your rate limit, and a check no upstream could complete all cost nothing. - Bulk jobs take CSV, TSV or XLSX and are capped at 10,000 unique numbers per job. - There is no free trial and no free credits. ## Documentation - [OpenAPI 3.1 specification](https://numradar.app/openapi.json): the machine-readable contract for every endpoint, including request and response schemas. Start here rather than parsing the HTML. - [API reference](https://numradar.app/docs): the same surface written for a human, with a working curl, Python, Node and Go example per flow. - [Status codes and what they cost](https://numradar.app/docs#errors): every status the API returns, whether it bills, and what to do about it. Error responses carry a `documentation_url` pointing here. - [MCP server](https://numradar.app/mcp-server): how to expose these checks to a coding agent, over Streamable HTTP at `https://numradar.app/mcp` or over stdio. ## Pricing - [Plans and credit packs](https://numradar.app/pricing): monthly quotas, per-check rates, the request-per-minute and daily ceilings each plan carries, and which plans include API and MCP access. ## Optional - [@numradar/mcp on npm](https://www.npmjs.com/package/@numradar/mcp): the stdio MCP server, for clients that cannot speak Streamable HTTP. - [Service health](https://numradar.app/health): `{"status":"ok"}` or `{"status":"unhealthy"}`. Useful for deciding whether a failed check is yours or ours. Carries no detail about which provider or how many — that is deliberately not public.