# IP Geo API – Bulk IP Geolocation

> IP Geo API – Bulk IP Geolocation is a paid API for AI agents from ip-geo-api-production.up.railway.app, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-14).

Geolocates up to 20 IPv4/IPv6 addresses in a single batch call, returning per-IP records with country, region, city, lat/lng, timezone, ISP, and ASN data.

## Facts

- Endpoint: POST https://ip-geo-api-production.up.railway.app/lookup/bulk
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ip-geo-api-bulk-ip-geolocation-68e20ae7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zIv7m5on2L_HyHP6vbuFP

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-api-bulk-ip-geolocation-68e20ae7 -d '<json body>'
```

Example prompt: Can you geolocate these 5 IP addresses for me all at once — 203.0.113.5, 198.51.100.12, 8.8.8.8, 1.1.1.1, and 185.220.101.3 — and tell me the country, city, and timezone for each?

## When to prefer this

Use this endpoint when you need to geolocate multiple IPs simultaneously (up to 20) and want to minimize API calls. It is strictly more efficient than calling the single /lookup/ip endpoint repeatedly for each address. Ideal for log enrichment, fraud analysis, audience analytics, or security triage workflows where you have a batch of IPs ready. For a single IP, use /lookup/ip directly. For more than 20 IPs, split into multiple batch calls.

## Known failure modes

- More than 20 IPs submitted — request rejected with validation error
- Malformed or non-IP string in the array — that entry may error or return null fields
- Private/reserved IP ranges (e.g. 192.168.x.x, 10.x.x.x) return no meaningful geo data
- Empty ips array — may return empty results or an error
- Network timeout if the upstream geo database is slow
- Payment failure (x402) if USDC balance is insufficient

## How this service works

Batch geolocation for up to 20 IP addresses in one call; returns a per-IP record matching /lookup/ip.

## Output

An array of per-IP geo records, each containing fields like country, region, city, postcode, latitude, longitude, timezone, ISP name, organization, and ASN — mirroring the single /lookup/ip response structure but batched across all submitted IPs.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "ips": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 20,
   "description": "Up to 20 IPv4/IPv6 addresses to geolocate in one batch."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ip-geo-api-bulk-ip-geolocation-68e20ae7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ip-geo-api-production.up.railway.app](https://www.zero.xyz/host/ip-geo-api-production.up.railway.app/llms.txt)
