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
/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"
}
securityis only included on plans with security fields enabled. Anullflag 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: truemeans upstream providers were unavailable and the last known result was returned.
Bulk Lookup
Multiple IPs in one request
$ 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-LimitandX-Quota-Remaining(monthly).
| Status | Meaning |
|---|---|
| 401 | Missing, invalid, revoked or suspended API key |
| 403 | Feature not included in your plan (e.g. bulk) |
| 422 | invalid_input or reserved_ip (private/reserved addresses) |
| 429 | Per-minute rate (see Retry-After) or monthly quota exceeded |
| 503 | lookup_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.