IPAPI.GR · IP intelligence API GET fast.ipapi.gr/api/lookup/{ip|domain}

Every request has an origin. We name a bot only when its operator says so.

Geolocation, ISP and ASN for any IPv4, IPv6 address or domain — plus AI, crawler and scanner flags built only from IP ranges and reverse-DNS records the operators publish themselves.

Free
1,000 req / day
Input
IPv4 · IPv6 · domain
Output
JSON, one GET

§How a lookup earns a flag

Example addresses · every source we use

  1. 66.249.66.1 AS15169Google LLC Google common crawlers Published range 66.249.66.0/27 listed in Google’s common-crawlers.json ✓ match is_crawlertrue
  2. 20.171.206.12 AS8075Microsoft OpenAI GPTBot Published range 20.171.206.0/24 listed in openai.com/gptbot.json ✓ match is_aitrue
  3. 220.181.108.75 AS23724China Telecom Baiduspider Verified rDNS baiduspider-220-181-108-75.crawl.baidu.com → 220.181.108.75 ✓ forward-confirmed is_crawlertrue
  4. 162.142.125.10 AS398324Censys Censys Published range 162.142.125.0/24 listed in docs.censys.com ✓ match is_scannertrue
  5. 203.0.113.7 AS64496documentation range No operator claims it no published range, feed or forward-confirmed PTR all three falsenot proof of human

GET /api/lookup/8.8.8.8 example

Try

The API returns the three risk booleans on Pro; the evidence above is how they are decided.

{
  "ip": "8.8.8.8",
  "country": "United States",
  "country_code": "US",
  "region": "California",
  "city": "Mountain View",
  "latitude": 37.4056,
  "longitude": -122.0775,
  "timezone": "America/Los_Angeles",
  "isp": "Google LLC",
  "organization": "Google LLC",
  "asn": "15169",
  "zipcode": "94043",
  "risk": {
    "is_ai": false,
    "is_crawler": false,
    "is_scanner": false
  }
}

Live service metrics

652,337,692 requests served
93.7% answered from cache
13ms average response
11 independent data providers

Live figures from the running service.

01 — The response

One call. The whole picture.

Every lookup returns the same predictable shape, merged from independent providers and normalized — ISO country codes, IANA timezones, clean ASNs.

200 OK · application/json
{
  "ip": "8.8.8.8",
  "country": "United States",
  "country_code": "US",
  "region": "California",
  "city": "Mountain View",
  "zipcode": "94043",
  "latitude": 37.4056,
  "longitude": -122.0775,
  "timezone": "America/Los_Angeles",
  "isp": "Google LLC",
  "organization": "Google LLC",
  "asn": "15169",
  "risk": {
    "is_ai": false,
    "is_crawler": false,
    "is_scanner": false
  }
}

02 — Bot signals

Know who's knocking.

Three yes/no flags tell you when traffic comes from automated infrastructure. No third-party blocklists, no guesswork: each flag traces back to IP ranges or DNS records the operator itself publishes.

is_ai28 sources

AI crawlers & agents

Training crawlers, AI search and retrieval fetchers, and agent egress from operators that publish their addresses.

is_crawler49 sources

Search & SEO crawlers

Search engines, SEO and site-audit tools, and archives — verified against published ranges or forward-confirmed reverse DNS.

is_scanner66 projects

Internet scanners

Research and attack-surface scanning projects that probe the whole internet, refreshed continuously from their own publications.

  • GPTBot
  • OAI-SearchBot
  • ChatGPT-User
  • ClaudeBot
  • PerplexityBot
  • Amazonbot
  • Applebot
  • MistralAI
  • DuckAssistBot
  • YouBot
  • KimiBot
  • Bingbot
  • Googlebot
  • YandexBot
  • Baiduspider
  • DuckDuckBot
  • AhrefsBot
  • Semrush SiteAudit
  • CCBot
  • Yahoo Slurp
  • PetalBot
  • Seznambot
  • Qwantbot
  • Kagibot
  • Censys
  • Shodan
  • Shadowserver
  • Rapid7 Sonar
  • Cortex Xpanse
  • ONYPHE
  • LeakIX
  • Driftnet
  • Internet Census
  • Detectify
  • Tenable
  • Modat

See all 143 sources and how each is verified →

03 — Under the hood

What happens in those milliseconds.

  1. 01

    Resolve

    Validate the input. Domains are resolved to their address.

  2. 02

    Fan out

    Query 11 independent providers, with circuit breakers and automatic failover.

  3. 03

    Merge

    Combine answers and normalize country codes, timezones and ASNs.

  4. 04

    Classify

    Match against the AI, crawler and scanner catalogues held in memory.

  5. 05

    Respond

    Cache the result, so repeats return in about 1 ms.

04 — Integrate

Two minutes to first response.

One endpoint, one query parameter. Create up to 20 API keys per account — one per app or server — all sharing your daily allowance.

GET https://fast.ipapi.gr/api/lookup/{ip-or-domain}?key=YOUR_API_KEY

More examples: usage, retries, caching →

curl "https://fast.ipapi.gr/api/lookup/8.8.8.8?key=YOUR_API_KEY"

06 — Plans

Start free. Scale when it matters.

Free

$0/ month

  • 1,000 requests per day
  • Geolocation & network data
  • IPv4, IPv6 and domains
  • Up to 20 API keys
Start free
Most capable

Pro

$9.99/ month

  • 40,000,000 requests per day
  • Everything in Free
  • is_ai, is_crawler and is_scanner flags
  • Priority support
Upgrade to Pro

Compare plans in detail →

07 — Questions

Good to know.

More in the FAQ and the documentation, or see how we compare.

What can I look up?

Any public IPv4 or IPv6 address, or a domain name — domains are resolved and the resulting address is looked up.

How are AI crawlers, crawlers and scanners detected?

Only from first-party evidence: IP ranges an operator publishes, or reverse-DNS names the operator documents and that resolve back to the same address. If an operator publishes nothing verifiable, we don't guess.

How fresh is the data?

Lookups are cached for speed. Bot catalogues refresh continuously from the operators' own publications, and the flags are re-evaluated on every response — even when the location comes from cache.

Can I use separate keys for different apps?

Yes. Create up to 20 keys in your dashboard, each with its own description. They share your account's daily allowance, and deleting one stops it immediately.

What happens if I go over my daily limit?

Requests above the limit are refused until the allowance resets at midnight UTC. Pro raises the limit to 40,000,000 requests a day.

Put an origin behind every request.