Skip to content
Report

REST · JSON · Free tier

Phone intelligence API

Check, locate and score any US or Canadian number with one call. Stop fake sign-ups, SMS-pumping fraud and spam callers before they reach your team.

Sign-up screening

Block disposable VoIP numbers and known spam lines when people register.

Call-center routing

Score incoming callers and send high-risk calls to verification.

SMS fraud defence

Spot the premium and Caribbean numbers used in SMS-pumping attacks.

Lead quality

Check phone fields and add line type, time zone and region.

Endpoints

Get an API key
Base URLhttps://freespy.app/wp-json/freespy/v1
GET/lookup/{number}

Full lookup: validation, location, time zone, carrier & line type, community reports, FTC complaints, risk score with factors. Add ?live=1 for a fresh carrier check (uses live quota).

POST/bulk

Up to 50 numbers per call. Body: {"numbers": ["…", "…"]}

GET/reports?number={number}&page=1&sort=new|helpful

Paginated community reports for a number.

POST/reports

Submit a report: number, rating (-1|0|1), category, call_type, caller_name, comment.

GET/trending?days=7&limit=10&npa=

Most-reported numbers in a window, optional area-code filter.

GET/recent?limit=20&category=

Latest community reports (live feed).

GET/heatmap?days=30

Spam volume per area code with coordinates.

GET/areacodes?q=texas

Search the area-code database.

GET/areacodes/{npa}

Area code detail with local time, overlays, top spam.

GET/stats

Network totals, 30-day volume and category mix.

curl -H "X-API-Key: fs_your_key" \
  "https://freespy.app/wp-json/freespy/v1/lookup/2025550147?live=1"

Sample response

{
  "number": "2025550147",
  "formatted": "(202) 555-0147",
  "valid": true,
  "type": "geographic",
  "location": { "npa": "202", "city": "Washington", "state": "DC",
                "tz": "America/New_York", "local_time": { "time": "3:42 pm", "callable": true } },
  "carrier": { "name": "Bandwidth.com", "line_type": "nonfixed_voip", "source": "twilio" },
  "community": { "total": 42, "negative": 39, "last_7d": 11, "top_category": "impersonation", "trending": true },
  "ftc": { "complaints": 128, "robocalls": 97, "last_seen": "2026-09-29" },
  "score": { "score": 91, "level": "danger", "label": "Likely scam", "confidence": "high",
             "factors": [ { "label": "Community spam reports", "impact": 48 }, … ] }
}

Authenticate with the X-API-Key header (or Authorization: Bearer). Errors use standard HTTP codes: 400 invalid number, 401 missing key, 429 quota exceeded.