# IP Geo + ASN Lookup

> IP Geo + ASN Lookup is a paid API for AI agents from ip-geo.hsharmanov02.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-11).

Returns geolocation and ASN/ISP intelligence (country, region, city, coordinates, timezone, ISP, org, AS number) for any public IPv4 or IPv6 address

## Facts

- Endpoint: GET https://ip-geo.hsharmanov02.workers.dev/geo?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ip-geo-asn-lookup-b1147d7a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_1VLd7NlJUtwQW_p5qxqpD

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability ip-geo-asn-lookup-b1147d7a
```

Example prompt: What country, city, and ISP is the IP address 203.0.113.42 from, and what's its ASN?

## When to prefer this

Choose this endpoint when you need combined geolocation and ASN/ISP intelligence in a single call without managing an API key. It supports both IPv4 and IPv6 and is ideal for pay-per-call usage via x402 micropayments on multiple chains (Base, Solana, Arbitrum, etc.), making it suitable for agents that need occasional IP lookups without subscription overhead.

## Known failure modes

- Private or reserved IP addresses (RFC1918, loopback) may return no geolocation data
- IP not found in geolocation database returns empty or null fields
- HTTP 402 returned for unpaid requests — requires EIP-3009 signed payment header on retry
- Invalid IP format may return an error response
- Very new IP allocations may have incomplete ASN or ISP data

## How this service works

IP geolocation + ASN/ISP intel for any public IPv4/IPv6 address: country, region, city, coordinates, timezone, ISP, org, AS number/name. Paid per call: $0.002 USDC on Base, Monad, Arbitrum, Optimism, Polygon, Avalanche or Solana (eip155:8453) via x402 v2 (exact scheme, EIP-3009). Unpaid requests return HTTP 402 with machine-readable payment instructions; the buyer signs the EIP-3009 authorization off-chain and retries with the PAYMENT-SIGNATURE header. The facilitator pays the gas, so the buyer needs no ETH. No API key.

## Output

A JSON object containing the queried IP address, ASN (e.g. 'AS1234'), ISP name, organization, city, region, country, country code, latitude, longitude, timezone, and a timestamp of when the lookup was performed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input",
  "output"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object"
    }
   },
   "additionalProperties": true
  },
  "output": {
   "type": "object",
   "required": [
    "type",
    "example"
   ],
   "properties": {
    "type": {
     "type": "json"
    },
    "example": {
     "type": "object"
    }
   },
   "additionalProperties": true
  }
 },
 "additionalProperties": true
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ip": "1.2.3.4",
  "asn": "AS1234",
  "isp": "Example ISP",
  "lat": 34.05,
  "lon": -118.24,
  "org": "Example Org",
  "city": "Los Angeles",
  "region": "California",
  "country": "United States",
  "service": "ip-geo",
  "timezone": "America/Los_Angeles",
  "checked_at": 1759099200,
  "country_code": "US"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ip-geo-asn-lookup-b1147d7a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ip-geo.hsharmanov02.workers.dev](https://www.zero.xyz/host/ip-geo.hsharmanov02.workers.dev/llms.txt)
