All Subdomains Feed
Every Subdomain in the Index Arrives as One Download.
The file holds each subdomain Deepinfo knows about. One call returns its format, size, line count and update time, and a pre-signed link that stays valid for one hour.
Request
GET /
all-subdomains
In the file each subdomain, under its domain
-
acme.example
:
vpn,staging,sso -
northwind.example
:
vpn,staging,sso -
blue-harbor.example
:
vpn,staging,sso
An API call answers for one domain. The file answers for all of them at once.
Request the File in CSV or JSON.
The response has the shape all Deepinfo feeds share. Ask for CSV or JSON and read the metadata before you commit disk and bandwidth to the download.
| Parameter | Type | Description | |
|---|---|---|---|
file_ | string | Optional | json (default) or csv. |
Request
curl "https://api.deepinfo.com/v1/feeds/all-subdomains?file_format=json" \
-H "apikey: YOUR_API_KEY"import requests
meta = requests.get(
"https://api.deepinfo.com/v1/feeds/all-subdomains",
params={"file_format": "json"},
headers={"apikey": "YOUR_API_KEY"},
).json()
with requests.get(meta["download_url"], stream=True) as r:
r.raise_for_status()
with open("all-subdomains.json", "wb") as out:
for chunk in r.iter_content(chunk_size=1 << 20):
out.write(chunk)import { createWriteStream } from 'node:fs'
import { Readable } from 'node:stream'
import { pipeline } from 'node:stream/promises'
const meta = await (await fetch(
'https://api.deepinfo.com/v1/feeds/all-subdomains?file_format=json',
{ headers: { apikey: process.env.DEEPINFO_API_KEY } }
)).json()
const file = await fetch(meta.download_url)
await pipeline(Readable.fromWeb(file.body), createWriteStream('all-subdomains.json'))
Response
{
"download_url": "https://…/<pre-signed link, valid for 1 hour>",
"file_format": "json",
"file_size": …,
"file_update_time": "2026-09-22T10:00:00Z",
"line_count": …
}
Hostname Questions Across the Whole Index.
An API call answers for one domain. The file answers for all of them at once.
Your estate
Hostnames Under Your Names
Filter the file by your apex domains and compare the result with the hosts your teams say they run.
Other estates
Suppliers and Targets
Pull the known hostnames under a vendor’s or an acquisition target’s domains in one pass, without a request per domain.
Research
Naming Patterns
Count labels such as vpn, staging or sso across the index to see how infrastructure is named in the wild.
Details to Settle Before You Load It.
| File or API | For one domain’s subdomains, the Subdomain Finder API returns them as full domain records. The feed trades that detail for coverage. |
|---|---|
| Updates | Read file_ from the metadata and reload only when it changes. For the names added in the last day, use the Daily Discovered Subdomains feed. |
| Size | Plan for a large file. file_ gives the exact number of bytes before you download, so stream it to disk. |
| Link | download_ is pre-signed and valid for one hour. Request a new one if your job starts later. |
| Access | Plan-dependent. Rate limits default to one request per second per key and endpoint. See rate limits. |
See This Data at Work in the Platform
External Attack Surface Management runs these lookups continuously over your assets and raises what changes as issues, and Deep Search & Insights opens the whole index to your analysts.
Questions About All Subdomains Feed
Can we check for a new file without requesting a link?
Yes. GET / lists each feed’s files with their format, size, line count and update time, and creates no download link.
How do we enrich the hostnames we keep?
Call Domain Detail for a host’s full record, with its DNS, certificate and web data, and the WHOIS of its registered domain.
How is the feed priced?
Data feeds are priced on their own, by volume and frequency, separately from the 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.
What if we ask for a format the feed does not offer?
The call returns 400 with code 10400 and a file_ entry in parameters that says Select a valid choice.
Start From All Known Hostnames.
We set up access to the feed and answer your team’s questions about the file before you integrate it.