Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPAudit API

License: CC BY 4.0 Live API OpenAPI validated

Free, keyless IP trust-score API. Send an IP address, get back a multi-source trust score, risk signals (VPN / proxy / Tor / hosting / bot), data confidence, and a per-source breakdown — the same intelligence that powers ipaudit.dev.

中文文档

Quickstart

curl "https://ipaudit.dev/api/analyze?ip=8.8.8.8"
{
  "ip": "8.8.8.8",
  "score": { "score": 95, "grade": "high",
             "signals": [ { "key": "hosting", "verdict": "disputed", "hits": 1, "healthy": 7, "deduct": 5 }, ... ] },
  "confidence": { "score": 100, "grade": "high", "healthySources": 7, "totalSources": 7 },
  "perSource": [ ... ]
}

A full annotated response lives in docs/response-schema.md.

Endpoints

Endpoint Description
GET /api/analyze?ip=<ip>&mode=remote|self Full audit: trust score, risk signals, confidence, per-source detail
GET /api/ip The caller's own IP address ({ "ip": "...", "mode": "self", "cf": true })
GET /api/badge/<ip>.svg?theme=light|dark Embeddable SVG badge (image/svg+xml)
GET /api/share/<ip> Shareable SVG result card
GET /og/ip/<ip> Social preview card (PNG)

Interactive playground: https://ipaudit.dev/api

Authentication

None. The API is free and keyless — requests are rate-limited per client IP instead of being authenticated with tokens.

Rate limits & caching

  • 1,000 audits per client IP per day, shared across the web tool, the API and the badge endpoints.
  • Repeated audits of the same IP are served from a one-hour cache: polling an unchanged IP costs almost nothing and does not count against fresh upstream lookups.
  • Exceeding the quota returns 429 with { "error": "rate limit exceeded", "limit": 1000 }.
  • Responses may include a per-source error row (e.g. an upstream rate-limiting us); treat each perSource row's contributed flag as the signal of whether that source answered.

See docs/rate-limits.md for client best practices (backoff, caching, Retry-After).

Errors

Status Meaning Body
400 Missing or invalid ip parameter { "error": "missing or invalid ip" }
429 Daily quota exhausted { "error": "rate limit exceeded", "limit": 1000 }
502 Upstream data sources unavailable (image endpoints) text

Example: embed a trust badge

[![IP trust score](https://ipaudit.dev/api/badge/8.8.8.8.svg)](https://ipaudit.dev/ip/8.8.8.8)

IP trust score

More snippets in examples/github-badge.md.

How scoring works

Scoring is consensus-weighted: a risk signal claimed by every contributing source deducts in full; a signal claimed by only a minority deducts half, capped at 20 points, and is reported as verdict: "disputed" with the vote counts (hits/healthy). One noisy feed can never zero an IP — see docs/scoring.md for the full rules.

Data sources & attribution

Results aggregate (and cross-check) public data from IPinfo, DB-IP, IP2Location, ip-api.com, MaxMind GeoLite2, Google DNS (DoH reverse DNS) and AbuseIPDB. Source terms and attribution requirements: docs/data-sources.md.

Spec & SDKs

  • openapi.yaml — OpenAPI 3.1 spec, the single source of truth for these endpoints. Import it into Postman, Insomnia or Apifox, or generate a client SDK with OpenAPI Generator.
  • The spec is linted in CI (Spectral) on every push.

Feedback & data corrections

  • API bugs / feature requests → open an issue with the api-bug / feature template.
  • "This IP's data looks wrong" → open an issue with the data-correction template and include the queried IP.

Links

License

Documentation and spec are licensed under CC BY 4.0. Using the API does not grant ownership of the returned data — see docs/data-sources.md for upstream attribution.

About

Free, keyless IP trust-score API — docs, OpenAPI spec, and examples

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors