# CallTracer

> Free, no-signup phone number lookup. Identify carrier, location, line type, and crowd-sourced spam reports for any number in the world — usually in under a second.

Every valid E.164 number has a dedicated page at `/number/{e164}` that includes:
- Country, region, and primary timezone
- Number type (mobile, fixed-line, toll-free, VoIP, etc.) and carrier when known
- Community-sourced spam score (0–100) and recent reports
- User-submitted tips and quick yes/no votes
- A plain-language summary block at the top, written for AI citation
- A FAQ section (also emitted as schema.org FAQPage JSON-LD)

## Agent-friendly notes

- Every number page exposes a JSON alternate via the standard discovery patterns: an HTTP `Link: <https://calltracer.io/api/lookup/{e164}>; rel="alternate"; type="application/json"` header on the HTML response, and a matching `<link rel="alternate" type="application/json">` tag in `<head>`. **Agents should prefer the JSON endpoint** for clean structured data.
- This `/llms.txt` file is referenced from each number page via `Link: <https://calltracer.io/llms.txt>; rel="describedby"`.
- Rate-limited but anonymous use is allowed; no auth required.

## Lookup

- [Search a phone number](https://calltracer.io/) — homepage with global search

## Country directories

- [All countries](https://calltracer.io/country) — browse the full set of supported regions
- [United States](https://calltracer.io/country/us)
- [United Kingdom](https://calltracer.io/country/gb)
- [India](https://calltracer.io/country/in)
- [Germany](https://calltracer.io/country/de)
- [Australia](https://calltracer.io/country/au)

## Reference

- [About](https://calltracer.io/about) — how CallTracer works
- [Privacy](https://calltracer.io/privacy) — data handling and retention
- [Request removal](https://calltracer.io/request-removal) — owner / DMCA takedown form
- [Blog](https://calltracer.io/blog) — long-form posts on phone fraud patterns
- [Sitemap](https://calltracer.io/sitemap.xml) — full URL index for crawlers

## API

### `GET /api/lookup/{number}`

Full number resolution + community signals. `{number}` accepts E.164 digits with or without the leading `+`, plus common separators (spaces, dashes, parens) which are stripped server-side.

```sh
curl https://calltracer.io/api/lookup/12024561111
```

Response (200):

```json
{
  "number": "+12024561111",
  "international": "+1 202-456-1111",
  "national": "(202) 456-1111",
  "country_code": 1,
  "country_iso": "US",
  "country": "United States",
  "number_type": "Fixed Line",
  "carrier": null,
  "location": "Washington, DC",
  "timezones": ["America/New_York"],
  "is_valid": true,
  "reports": {
    "total": 0,
    "spam_score": 0,
    "last_reported_at": null
  }
}
```

422 with `{"error": "..."}` for unrecognized input. Anonymous IP-throttled. Pass `Authorization: Bearer YOUR_KEY` for a higher rate limit (sign up at [https://calltracer.io/dashboard](https://calltracer.io/dashboard) to generate one).

### `GET /api/autocomplete?q={partial_number}`

Single-suggestion preview for partial input. Useful for search-as-you-type UIs.

```sh
curl 'https://calltracer.io/api/autocomplete?q=971527041991'
```

Response (200):

```json
{
  "suggestion": {
    "e164": "971527041991",
    "international": "+971 52 704 1991",
    "country_iso": "AE",
    "country_code": 971,
    "country_name": "United Arab Emirates",
    "is_valid": true,
    "is_possible": true
  },
  "href": "/number/971527041991"
}
```

`suggestion` is `null` when the input doesn't parse to anything useful.
