Geo & IP Lookup API

Query proxy IP counts by country and look up detailed IP geolocation data across multiple providers with FonProxy's Geo API.

Updated 2026-04-09 12:42:00
Geo & IP Lookup API

For authentication headers, API keys, and common error format see API General.

Proxy Counts

Public endpoints β€” no authentication required.

Get Proxy Counts

GET /geo/counts

Returns available proxy IP counts per country. Structure: counts[proxyTypeId][pool][service][countryCode] = count.

Query Parameters

NameTypeDescriptionRequired
typestringfilter by proxy type (e.g. residential-giga)No
poolstringfilter by pool name (e.g. default)No
noservicebooleancollapse service layer, return counts keyed directly by countryNo

Response

Default (with service layer):

{
  "counts": {
    "residential-giga": {
      "default": {
        "provider-api": {
          "US": 1200000,
          "GB": 350000
        }
      }
    }
  }
}

With ?noservice=true:

{
  "counts": {
    "residential-giga": {
      "default": { "US": 1200000, "GB": 350000 }
    }
  }
}

Get Available Countries

GET /geo/countries

Returns country codes that have proxy availability for a given proxy type.

Query Parameters

NameTypeDescriptionRequired
typestringproxy type IDYes
poolstringpool name (default: default)No

Response

{
  "countries": ["AE", "AU", "BR", "DE", "GB", "US"]
}

List IP Data Providers

GET /geo/providers

Lists all supported IP data providers with their load status. No authentication required.

Response

{
  "providers": [
    {
      "id": "maxmind",
      "name": "MaxMind GeoLite2",
      "type": "mmdb",
      "description": "ASN, city, region, country, lat/lng, timezone from MaxMind GeoLite2 databases.",
      "ready": true
    },
    ...
  ]
}

IP Lookup

Lookup IP β€” All Providers 10 req / 30m

GET /geo/ip/:ip

Queries all enabled IP databases in parallel and returns a normalized merged result plus raw per-provider data. Authentication is optional β€” authenticated requests receive a higher rate limit.

Rate limits: unauthenticated β€” 10 requests / 30 min (keyed by client IP). Authenticated (JWT or API key) β€” 30 requests / 1 min. See API General for authentication options and API Keys for key management.

Parameters

NameTypeDescriptionRequired
ipstringIPv4 or IPv6 address to look upYes

Query Parameters

NameTypeDescriptionRequired
with_sourcesbooleaninclude raw per-provider sources object in the responseNo

Response

{
  "ip": "8.8.8.8",
  "normalized": {
    "countryCode": "US",
    "country": "United States",
    "continent": "North America",
    "region": "California",
    "city": "Mountain View",
    "latitude": 37.386,
    "longitude": -122.0838,
    "timezone": "America/Los_Angeles",
    "postalCode": "94043",
    "asn": 15169,
    "asnOrg": "GOOGLE",
    "isp": "Google LLC",
    "company": "Google LLC",
    "asDomain": "google.com",
    "prefix": "8.8.8.0/24",
    "isProxy": false,
    "proxyType": null,
    "rir": "arin",
    "rirSource": "delegation-stats"
  },
  "errors": {}
}

With ?with_sources=1 the response includes a sources key with raw provider data:

{
  "ip": "8.8.8.8",
  "sources": {
    "maxmind": {
      "asn": { "autonomousSystemNumber": 15169, "autonomousSystemOrganization": "GOOGLE", "network": "8.8.8.0/24" },
      "city": { "countryCode": "US", "region": "California", "city": "Mountain View", "latitude": 37.386, "longitude": -122.0838, "timezone": "America/Los_Angeles" },
      "country": { "countryCode": "US", "inEu": false }
    },
    "ip2location": {
      "db11": { "countryCode": "US", "region": "California", "city": "Mountain View", "latitude": 37.3861, "longitude": -122.0839 },
      "asn": { "asn": "AS15169", "isp": "Google LLC" },
      "proxy": { "isProxy": false, "proxyType": "-", "usageType": "DCH", "proxyScore": 0 }
    },
    "rir": { "rir": "arin", "countryCode": "US", "source": "delegation-stats" }
  },
  "normalized": { "...": "..." },
  "errors": {}
}

normalized field priority

FieldSource priority
countryCodemajority vote across all providers
countrymaxmind-city β†’ ip2location-db11 β†’ ipinfo β†’ dbip β†’ iplocate
region, city, lat/lng, timezone, postalCodemaxmind-city β†’ ip2location-db11
asn, asnOrgmaxmind-asn β†’ iplocate-asn β†’ ipinfo
ispip2location-asn.isp β†’ ip2location-proxy.isp β†’ ipinfo.org
companyipinfo.asnOrg
asDomainipinfo.asDomain
prefixiplocate-asn.prefix β†’ maxmind-asn.network
isProxyip2location-proxy.isProxy (always boolean, default false)
proxyTypeip2location-proxy.proxyType lowercased, null when not a proxy
rir, rirSourcerir provider

errors is a map of providerName β†’ errorMessage for any provider that failed during lookup.


Lookup IP β€” Single Provider Auth required

GET /geo/ip/:ip/:provider

Queries a single provider only. Requires JWT or API key. See API General for authentication.

Parameters

NameTypeDescriptionRequired
ipstringIPv4 or IPv6 address to look upYes
providerstringprovider ID β€” one of maxmind, ip2location, iplocate, dbip, ipinfo, rirYes

Query Parameters

NameTypeDescriptionRequired
with_sourcesbooleaninclude raw sources object in the responseNo

Response

{
  "ip": "8.8.8.8",
  "normalized": { "countryCode": "US", "...": "..." },
  "errors": {}
}
Geo & IP Lookup API β€” Proxy Counts and IP Intelligence | FonProxy