Catalog API

/catalog.json is a machine-readable index of every official and maintained IP range feed in the registry. Use it to build automated allowlists, monitoring dashboards, or feed aggregators.

Endpoint

GET https://sourcecidr.com/catalog.json

Returns JSON. No authentication required. Updated on every site deploy.

Schema (v3)

{
  "schema_version": 3,
  "generated_at": "2026-03-28T...",
  "entry_count": 75,
  "entries": {
    "<range-slug>": {
      "title": "Human-readable name",
      "origin": "official" | "maintained",
      "urls": [
        "https://vendor.com/feed.json",
        ...
      ]
    },
    ...
  }
}

Fields

schema_version
Integer. Current version is 3.
generated_at
ISO 8601 timestamp of when the catalog was last generated.
entry_count
Total number of entries in the entries object.
entries
Object keyed by range slug. Each value contains:
title
Human-readable name of the range set.
origin
"official" — vendor-published feed (JSON, TXT, CSV, API). "maintained" — aggregated or mirrored by Source CIDR.
urls
Array of one or more URLs pointing to the actual IP range data. Fetch these to get the prefixes. Note: not all vendors publish JSON — URLs may point to plain-text (.txt), CSV, HTML documentation pages, or API endpoints. Your consumer code should handle the response format per vendor rather than assuming JSON.

Examples

Fetch the full catalog

curl -s https://sourcecidr.com/catalog.json | jq '.entry_count'

List all official feed URLs

curl -s https://sourcecidr.com/catalog.json | \
  jq -r '.entries[] | select(.origin=="official") | .urls[]'

Get a specific entry

curl -s https://sourcecidr.com/catalog.json | \
  jq '.entries["cloudflare-ips"]'

Count entries by origin

curl -s https://sourcecidr.com/catalog.json | \
  jq '[.entries[] | .origin] | group_by(.) | map({(.[0]): length}) | add'

What's included

The catalog includes entries that have at least one officialSources URL on their range set. ASN-only entries, documentation-only entries without IP feeds, and education pages are excluded.

For the full list of companies including ASN-only entries, browse the registry homepage.

Rate limits

The catalog is a static JSON file served via Cloudflare. There are no rate limits, but please cache responses and avoid polling more than once per hour. The file only changes when the site is redeployed.