Phone check
Phone number check. Send a number in any format, with a + country code or a region such as GB; returns E.164, international and national formats, valid and possible flags, country code, region, line type (mobile, fixed line, toll free and others), place and time zones. From Google's libphonenumber range data: not a live carrier or owner lookup, and ported numbers show their original range. Typical response under 100 ms. Failed calls are not charged.
Try one call free
5 free calls a day per address, no payment. Demo inputs travel in the web address, which logs can record, so use the paid route for anything private.
The result appears here.
Example
Request body for POST /v1/phone-check:
{
"number": "+1 650-253-0000"
}
Response:
{
"input": "+1 650-253-0000",
"valid": true,
"possible": true,
"e164": "+16502530000",
"international": "+1 650-253-0000",
"national": "(650) 253-0000",
"country_code": 1,
"region": "US",
"line_type": "fixed_line_or_mobile",
"location": "Mountain View, CA",
"range_carrier": null,
"time_zones": [
"America/Los_Angeles"
],
"extension": null,
"reason": null,
"notice": "Range data from Google's libphonenumber metadata, not a live carrier lookup: a ported or disconnected number still shows its original range.",
"checked_at": "2026-10-22T09:00:00+00:00"
}
Call it with x402
Any x402 client works: call, read the price in the 402, pay, call again. With curl you see the terms:
curl -i -X POST https://quantagentshop.com/v1/phone-check \
-H 'content-type: application/json' \
-d '{"number": "+1 650-253-0000"}'
HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: (the terms below, base64)
{"x402Version": 2, "error": "payment_required", "accepts": [{"scheme": "exact", "network": "eip155:8453", "amount": "2000", "payTo": "0x4d8d8D4f04512029172e0176744Eec4AE5238309", ...}], ...}
# amount is in millionths of a USDC. Pay one of accepts, then send the same request again with the PAYMENT-SIGNATURE header.
In JavaScript, @x402/fetch pays and retries for you:
// npm install @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY); // a wallet holding a little USDC
const client = new x402Client().register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPayment("https://quantagentshop.com/v1/phone-check", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"number": "+1 650-253-0000"}),
});
console.log(await res.json());
Use it over MCP
Add the remote MCP server, then call quantagentshop_phone_check. The free quantagentshop_quote
tool gives the price and pay-to address and checks your arguments before you pay.
{
"mcpServers": {
"quantagentshop": {
"url": "https://quantagentshop.com/mcp"
}
}
}
Terms, privacy and sources are on the policies page; live figures on the status page.