API Reference
Markdown

Single IP lookup

Resolve a single IPv4 or IPv6 address against the active Radix/LPM snapshot with live BGP/RIPEstat enrichment-on-miss.

GEThttps://api.ipscope.io/v1/ip/{ip}scope: lookup · 1 credit API key

Resolves a single IPv4 or IPv6 address (GET /v1/ip/:ip). The address is parsed and normalized via tryParseIp(ip) before querying the in-memory SnapshotLoaderService Radix/LPM tree. Both full and RFC 5952 compressed IPv6 notations (2606:4700:4700::1111) are supported.

Path parameters

  • ipstringrequired
    The IPv4 (198.51.100.7) or IPv6 (2606:4700:4700::1111) address to inspect. Returns 400 Bad Request if malformed.

Request headers & metering

  • Authorizationstringrequired
    Bearer <api_key> or x-api-key: <api_key>. Must include the lookup scope.
  • Credit debit1 unit
    Debits 1 lookup unit (100 micro-USD when using prepaid wallet reservation).

# Code examples

curl -sS "https://api.ipscope.io/v1/ip/198.51.100.7" \
  -H "Authorization: Bearer $IPSCOPE_KEY"

# Responses

Responses
application/json

Resolved IPv4/IPv6 intelligence record projected to your API key’s licensedFamilies.

{
  "ip": "198.51.100.7",
  "ip_version": 4,
  "matched_network": "198.51.100.0/24",
  "geo": {
    "country_code": "US",
    "declared_country_code": "US",
    "physical_country_code": "US",
    "is_virtual_location": false,
    "location_type": "physical",
    "confidence": 0.94,
    "subdivision": "Virginia",
    "city": "Ashburn",
    "postal_code": "20147",
    "latitude": 39.0438,
    "longitude": -77.4874,
    "accuracy_radius_km": 10,
    "timezone": "America/New_York"
  },
  "network": {
    "asn": 64501,
    "organization": "Example Cloud LLC"
  },
  "connection": {
    "connection_type": "hosting",
    "is_hosting": true,
    "is_residential": false,
    "is_mobile": false,
    "is_business": false
  },
  "security": {
    "is_vpn": true,
    "is_hosting": true,
    "is_tor_exit": false,
    "is_proxy": false,
    "anonymizer_type": "vpn",
    "confidence": 0.96,
    "reason_codes": [
      "vpn_handshake_confirmed",
      "datacenter_asn_range"
    ]
  },
  "security_extensions": {
    "abuse_velocity_score": 18,
    "is_known_scanner": false,
    "observation_recency_hours": 12,
    "anonymizer_reason": "vpn_handshake_confirmed",
    "threat_level": "medium",
    "abuse_velocity": "low",
    "confidence": 0.96
  },
  "dataset_version": "2026-10-27T00:00:00Z.crawl-1793088000000",
  "updated_at": "2026-10-27T00:00:00Z"
}

# Live BGP & RIPEstat enrichment-on-miss

When an IPv4 or IPv6 address does not match a pre-compiled city or ASN record in the active snapshot (or matches a prefix missing ASN/geolocation attributes) and LIVE_ENRICH_ON_MISS=true is enabled on the API node:

  • The lookup engine queries live RIPEstat / BGP origin ASN, RDAP remarks (#geofeed), and active tracepath hints in real time.
  • The enriched record is merged into the response (mergeLiveEnrichment) and cached in the in-memory hot enrichment cache so subsequent lookups for the same IP or /24 (/48 IPv6) resolve instantaneously.