Request demo

All Domain Names Feed

Download Every Registered Domain in the Index as One File.

One call to the All Domain Names Feed returns the metadata of the current all-domains file and a pre-signed link to download it. Load the file once, and questions that span all known domains run on your infrastructure instead of one request per name.

Request

GET /feeds/all-domains?file_format=csv

all-domains

file_format
csv
file_size
elided
line_count
elided
file_update_time
2026-09-22T10:00:00Z
  1. Download

    all-domains.csv to your storage

    streamed to disk, not into memory

  2. Check

    lines checked against line_count

Read the Metadata Before the File.

The response describes the file before you fetch it. A job can read the update time and the size, then decide whether to download at all.

GET https://api.deepinfo.com/v1/feeds/all-domains Reference
ParameterTypeDescription
file_formatstringOptionaljson (default) or csv.

Request

curl "https://api.deepinfo.com/v1/feeds/all-domains?file_format=csv" \
  -H "apikey: YOUR_API_KEY"

Response

200 OK · application/json
{
  "download_url": "https://…/<pre-signed link, valid for 1 hour>",
  "file_format": "csv",
  "file_size": …,
  "file_update_time": "2026-09-22T10:00:00Z",
  "line_count": …
}

Download Only When the File Changes.

The full file is large, so treat it like a snapshot you refresh, not a page you poll. Store the file_update_time you loaded, and skip the download when the endpoint reports it again.

Stream the file to disk rather than into memory. Check file_size against free space before you start, and line_count against what you wrote when you finish.

Python
import pathlib, requests

API = "https://api.deepinfo.com/v1"
state = pathlib.Path("all-domains.updated")

meta = requests.get(
    f"{API}/feeds/all-domains",
    params={"file_format": "csv"},
    headers={"apikey": "YOUR_API_KEY"},
).json()

if state.exists() and state.read_text() == meta["file_update_time"]:
    raise SystemExit("unchanged")

with requests.get(meta["download_url"], stream=True) as r:
    r.raise_for_status()
    with open("all-domains.csv", "wb") as out:
        for chunk in r.iter_content(chunk_size=1 << 20):
            out.write(chunk)

state.write_text(meta["file_update_time"])

Questions About All Domain Names Feed

Does the file include subdomains?

No. This feed covers registered domains. Subdomains have their own full file, the All Subdomains feed.

How do we get WHOIS, DNS or certificate data for the domains in the file?

Use the file to decide which names matter, then call Domain Detail for the full record of each, or the individual lookups for one layer at a time.

How do we keep up with changes between full files?

Pair the full file with the daily feeds for registered, updated and deleted domains. Each covers the last day.

How is the feed priced?

Data feeds are priced on their own, by volume and frequency, separately from the Deepinfo Platform. See Data & API pricing.

Can we use the file inside our own product?

How the data can be used and shown in your product is part of the agreement. Talk to the data team about your case.

Load All Domains Into Your Stack.

We set up access to the feed and walk your team through the file before you build on it.