# Cloud & CDN IP Ranges API
> Attribute any IP address to the cloud provider, CDN, region and service that owns it — from the official, publicly-published IP-range lists of AWS, Google Cloud, Cloudflare, Oracle Cloud (OCI), Fastly and GitHub. Pass an IPv4 or IPv6 address and get every matching prefix with its provider, region/scope and service, plus an is_cloud flag that tells you at a glance whether the address belongs to a known cloud or CDN — or list a single provider's published ranges, filtered by region, service and IP version. Built for firewall allow-lists, abuse and fraud triage, bot and egress classification, SSRF defence and knowing whether inbound or outbound traffic originates from a cloud or CDN. Range data is fetched live from each provider's canonical public list, so it is always current. A cloud/CDN IP-attribution service — distinct from IP geolocation (ipgeo), ASN/BGP ownership (asn, ripestat), open-port exposure (internetdb) and the IANA port/protocol registries (netports, ipprotocols). No upstream key, no cache.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/cloudips-api/..."
```

## Pricing
- **Free** (Free) — 2,550 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 51,000 calls/Mo, 8 req/s
- **Pro** ($23/Mo) — 255,000 calls/Mo, 20 req/s
- **Mega** ($60/Mo) — 905,000 calls/Mo, 50 req/s

## Endpoints

### Cloud IP Ranges

#### `GET /v1/lookup` — Attribute an IP to a cloud/CDN

**Parameters:**
- `ip` (query, required, string) — IPv4 or IPv6 address Example: `52.94.76.5`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cloudips-api/v1/lookup?ip=52.94.76.5"
```

**Response:**
```json
{
    "data": {
        "ip": "52.94.76.5",
        "matches": [
            {
                "prefix": "52.94.76.0/22",
                "region": "us-west-2",
                "service": "AMAZON",
                "provider": "AWS"
            }
        ],
        "version": "ipv4",
        "is_cloud": true,
        "match_count": 1
    },
    "meta": {
        "timestamp": "2026-06-01T23:40:53.280Z",
        "request_id": "560db8ff-94ed-4d16-8363-6e2d3e23365b"
    },
    "status": "ok",
    "message": "IP attribution retrieved",
    "success": true
}
```

#### `GET /v1/ranges` — List a provider's published prefixes

**Parameters:**
- `provider` (query, required, string) — aws, gcp, cloudflare, oracle, fastly or github Example: `cloudflare`
- `region` (query, optional, string) — Filter by region/scope substring
- `service` (query, optional, string) — Filter by service substring (e.g. S3)
- `version` (query, optional, string) — ipv4 or ipv6
- `limit` (query, optional, string) — 1-1000 (default 100)
- `offset` (query, optional, string) — Paging offset

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cloudips-api/v1/ranges?provider=cloudflare"
```

**Response:**
```json
{
    "data": {
        "count": 22,
        "limit": 100,
        "total": 22,
        "offset": 0,
        "prefixes": [
            {
                "prefix": "173.245.48.0/20",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "103.21.244.0/22",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "103.22.200.0/22",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "103.31.4.0/22",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "141.101.64.0/18",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "108.162.192.0/18",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "190.93.240.0/20",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "188.114.96.0/20",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "197.234.240.0/22",
                "region": null,
                "service": "Cloudflare"
            },
            {
                "prefix": "198.41.128.0/17",
    
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Supported providers & sources

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cloudips-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Attribute any IP address to the cloud provider, CDN, region and service that owns it, from the official publicly-published IP-range lists of AWS, Google Cloud, Cloudflare, Oracle Cloud (OCI), Fastly and GitHub. /v1/lookup?ip=52.94.76.5 checks an IPv4 or IPv6 address against every provider and returns each matching prefix with its provider, region/scope and service (is_cloud tells you at a glance whether the IP belongs to a known cloud/CDN). /v1/ranges?provider=aws lists a single provider's published prefixes, filterable by region, service and IP version with offset/limit paging. Useful for firewall allow-lists, abuse/fraud triage, egress classification, SSRF defence and knowing whether traffic originates from a cloud or CDN. Data fetched live from each provider's canonical range list (public). A cloud/CDN IP-attribution service — distinct from IP geolocation (ipgeo), ASN/BGP ownership (asn, ripestat), open-port exposure (internetdb) and the IANA port/protocol registries (netports, ipprotocols).",
        "endpoints": [
            "/v1/lookup",
            "/v1/ranges",
            "/v1/meta"
        ],
        "providers": [
            {
                "key": "aws",
                "name": "AWS",
                "source": "https://ip-ranges.amazonaws.com/ip-ranges.json"
            },
            {
                "key": "gcp",
                "name": "Google Cloud",
                "source": "https://www.gstatic.com/ipranges/cloud.json"

…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/cloudips-api
OpenAPI spec: https://www.oanor.com/api/cloudips-api/openapi.json
