# All Subdomains Feed

URL: https://www.deepinfo.com/data-api/feeds/all-subdomains/

## Every Subdomain in the Index Arrives as One Download.

The All Subdomains Feed is one file that 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.

[Talk to us about access](https://www.deepinfo.com/contact/?topic=data-api) [All Subdomains reference](https://docs.deepinfo.com/reference/feeds/all-subdomains/)

### 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.

GET `https://api.deepinfo.com/v1/feeds/all-subdomains` [Reference](https://docs.deepinfo.com/reference/feeds/all-subdomains/)

| Parameter | Type |  | Description |
| --- | --- | --- | --- |
| `file_format` | string | Optional | `json` (default) or `csv`. |

Request

curl:

```bash
curl "https://api.deepinfo.com/v1/feeds/all-subdomains?file_format=json" \
  -H "apikey: YOUR_API_KEY"
```

Python:

```python
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)
```

JavaScript:

```javascript
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

200 OK · application/json

```json
{
  "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](https://www.deepinfo.com/data-api/apis/subdomain-finder/) returns them as full domain records. The feed trades that detail for coverage.
- **Updates**: Read `file_update_time` from the metadata and reload only when it changes. For the names added in the last day, use the [Daily Discovered Subdomains feed](https://www.deepinfo.com/data-api/feeds/daily-discovered-subdomains/).
- **Size**: Plan for a large file. `file_size` gives the exact number of bytes before you download, so stream it to disk.
- **Link**: `download_url` 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](https://docs.deepinfo.com/getting-started/rate-limits/).

### Other Ways to Reach Subdomains.

- [Daily Discovered Subdomains](https://www.deepinfo.com/data-api/feeds/daily-discovered-subdomains/) (Daily file): Subdomains Deepinfo discovered in the last day.
- [Subdomain Finder](https://www.deepinfo.com/data-api/apis/subdomain-finder/) (API): All known subdomains of one domain, as full records.
- [All Domain Names](https://www.deepinfo.com/data-api/feeds/all-domain-names/) (Full file): All registered domains in the index, in one file.

### See This Data at Work in the Deepinfo 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.

- [External Attack Surface Management](https://www.deepinfo.com/platform/easm/) (EASM)
- [Deep Search & Insights](https://www.deepinfo.com/platform/dsi/) (DSI)
- [How the Platform Works](https://www.deepinfo.com/platform/how-it-works/)

### Questions About All Subdomains Feed

**Can we check for a new file without requesting a link?**

Yes. `GET /feeds/latest` 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](https://www.deepinfo.com/data-api/apis/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](https://www.deepinfo.com/pricing/#data-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](https://www.deepinfo.com/contact/?topic=data-api) 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_format` 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.

[Talk to us about access](https://www.deepinfo.com/contact/?topic=data-api) [Feeds reference](https://docs.deepinfo.com/reference/feeds/)
