Endpoint
| Method | GET |
| URL | https://areacodecheck.com/api/phone/{number} |
| Auth | None, no API key required |
| Rate limit | 500 requests / day / IP, 30 / minute (see X-RateLimit-Remaining) |
| CORS | Access-Control-Allow-Origin: * |
| Privacy | Numbers are never stored or logged; responses are no-store |
Example Request
| curl | curl "https://areacodecheck.com/api/phone/+14155552671" |
| JavaScript | const r = await fetch('https://areacodecheck.com/api/phone/%2B14155552671').then(r => r.json()); |
| PHP | $r = json_decode(file_get_contents('https://areacodecheck.com/api/phone/14155552671'), true); |
| Python | r = requests.get('https://areacodecheck.com/api/phone/+14155552671').json() |
Numbers can be sent with or without the + (URL-encode it as %2B when in doubt). Bare 10-digit numbers are treated as North American.
Response Fields
| Field | Type | Description |
|---|---|---|
data.e164 | string | The number in E.164 format |
data.country_code / data.country | string | Calling code and country / region name |
data.region_iso | string | ISO 3166-1 alpha-2 of the primary region |
data.area_code / area_location / area_country | string|null | NANP area code details when applicable |
data.timezone | string|null | Primary IANA timezone of the area code |
data.nanp_valid | boolean|null | Whether a North American number matches the valid format |
page | string|null | Human-readable guide page for the detected code |
Errors use standard status codes: 400 for input that is not number-shaped, 429 when a rate limit is reached.
Fair Use & Attribution
- 500 requests per day per IP, 30 per minute. For form validation, combine with client-side checks first.
- Includes data from Google's libphonenumber project (Apache 2.0); a link back to areacodecheck.com is appreciated but not required.
- This API identifies prefixes, not people. It cannot and does not reveal caller identity.
Frequently Asked Questions
Is the API really free?
Yes. No key, no registration, up to 500 requests/day per IP, CORS enabled.
Are numbers stored?
No. Prefix matching is purely algorithmic against public assignments; numbers are never written to disk or logged.
Can I test it right now?
Try /api/phone/14155552671 in your browser.