216.73.217.151 Columbus, United States
REST API v1

API Documentation

Integrate IP intelligence with a simple REST API.

Authentication

Pass your API key in the Authorization header

Authorization: Bearer YOUR_API_KEY
X-OneIP-Key: YOUR_API_KEY

Single IP Lookup

Get geolocation and network data for one IP

GET
/api/v1/lookup?ip=8.8.8.8
cURL
$ curl -H "Authorization: Bearer YOUR_KEY" \
    "https://oneip.net/api/v1/lookup?ip=8.8.8.8"
JavaScript
const res = await fetch("https://oneip.net/api/v1/lookup?ip=8.8.8.8", {
  headers: { Authorization: "Bearer YOUR_KEY" }
});
const data = await res.json();
Python
import requests

r = requests.get(
    "https://oneip.net/api/v1/lookup",
    params={"ip": "8.8.8.8"},
    headers={"Authorization": "Bearer YOUR_KEY"}
)

Response Format

JSON structure returned by all endpoints

{
  "ip": "8.8.8.8",
  "version": "IPv4",
  "location": {
    "country_code": "US", "country_name": "United States", "region": "California",
    "city": "Mountain View", "latitude": 37.4, "longitude": -122.1,
    "postal_code": "94043", "timezone": "America/Los_Angeles"
  },
  "network": { "asn": "AS15169", "isp": "Google LLC", "organization": "Google LLC" },
  "security": { "is_vpn": null, "is_proxy": null, "is_hosting": null, "is_tor": null, "fraud_score": null },
  "provider": "GeoLite2",
  "cached": true,
  "stale": false,
  "looked_up_at": "2026-09-14T08:00:00+00:00"
}
  • security is only included on plans with security fields enabled. A null flag means the data source has no signal for it (unknown), not "clean".
  • providers (raw per-provider data) is only included on plans with provider comparison enabled.
  • stale: true means upstream providers were unavailable and the last known result was returned.

Bulk Lookup

Multiple IPs in one request

POST
$ curl -X POST "https://oneip.net/api/v1/bulk" \
    -H "Authorization: Bearer YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{"ips": ["8.8.8.8", "1.1.1.1"]}'

Limits, Billing & Errors

How requests are counted and what can go wrong

  • Each lookup counts as 1 request against your monthly quota. Bulk requests count 1 per IP and are refused up front if they don't fit in your remaining quota.
  • Lookups that fail because all upstream providers are unavailable (HTTP 503) are not counted.
  • Quotas reset at the start of each calendar month (UTC).
  • Every authenticated response includes X-RateLimit-Limit, X-RateLimit-Remaining (per minute), X-Quota-Limit and X-Quota-Remaining (monthly).
StatusMeaning
401Missing, invalid, revoked or suspended API key
403Feature not included in your plan (e.g. bulk)
422invalid_input or reserved_ip (private/reserved addresses)
429Per-minute rate (see Retry-After) or monthly quota exceeded
503lookup_failed (upstream outage) or maintenance

Account & Usage

Check your info and quota

GET /api/v1/me Account info
GET /api/v1/usage Usage & quota

Ready to get started? Create a free account.