# Data Feeds

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

## Pull the Index in Bulk as Files.

Deepinfo Data Feeds deliver the domain and subdomain data behind the Deepinfo Platform as files your pipeline downloads, not results it pages through. Full files list every domain and subdomain in the index, and daily files list what changed in the last day.

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

### One List Indexes the File Behind Each Feed.

Each feed is one endpoint and one file, in the format you ask for. A list endpoint returns all files with their metadata, so a job can see what changed before it downloads anything.

#### [All Domain Names](https://www.deepinfo.com/data-api/feeds/all-domain-names/)

All registered domains Deepinfo knows about, in one file.

`GET /feeds/all-domains`

#### [All Subdomains](https://www.deepinfo.com/data-api/feeds/all-subdomains/)

All subdomains Deepinfo knows about, in one file.

`GET /feeds/all-subdomains`

#### [Daily Registered Domain Names](https://www.deepinfo.com/data-api/feeds/daily-registered-domain-names/)

Domains registered in the last day.

`GET /feeds/daily-registered-domains`

#### [Daily Updated Domain Names](https://www.deepinfo.com/data-api/feeds/daily-updated-domain-names/)

Domains whose registration record was updated in the last day.

`GET /feeds/daily-updated-domains`

#### [Daily Deleted Domain Names](https://www.deepinfo.com/data-api/feeds/daily-deleted-domain-names/)

Domains deleted in the last day.

`GET /feeds/daily-deleted-domains`

#### [Daily Discovered Subdomains](https://www.deepinfo.com/data-api/feeds/daily-discovered-subdomains/)

Subdomains Deepinfo discovered in the last day.

`GET /feeds/daily-discovered-subdomains`

#### Feeds List

Each feed with its files: format, size, line count, update time and the API URL of each.

`GET /feeds/latest`

### One Call Lists All Files.

The list endpoint takes no parameters. It returns each feed with its files and, for each file, the `api_url` that requests it.

GET `https://api.deepinfo.com/v1/feeds/latest` [Reference](https://docs.deepinfo.com/reference/feeds/list/)

Request

curl:

```bash
curl "https://api.deepinfo.com/v1/feeds/latest" \
  -H "apikey: YOUR_API_KEY"
```

Python:

```python
import requests

feeds = requests.get(
    "https://api.deepinfo.com/v1/feeds/latest",
    headers={"apikey": "YOUR_API_KEY"},
).json()
for feed in feeds:
    for f in feed["files"]:
        print(feed["type"], f["file_format"], f["file_update_time"])
```

JavaScript:

```javascript
const r = await fetch(
  'https://api.deepinfo.com/v1/feeds/latest',
  { headers: { apikey: 'YOUR_API_KEY' } }
)
for (const feed of await r.json())
  for (const f of feed.files) console.log(feed.type, f.file_format, f.file_update_time)
```

Response

200 OK · application/json

```json
[
  {
    "type": "all_domain",
    "files": [
      {
        "file_format": "csv",
        "file_size": …,
        "line_count": …,
        "file_update_time": "2026-09-22T10:00:00Z",
        "api_url": "https://api.deepinfo.com/v1/feeds/all-domains?file_format=csv"
      },
      {
        "file_format": "json",
        "file_size": …,
        "line_count": …,
        "file_update_time": "2026-09-22T10:00:00Z",
        "api_url": "https://api.deepinfo.com/v1/feeds/all-domains?file_format=json"
      }
    ]
  },
  { "type": "all_subdomain", "files": [ … ] },
  …
]
```

### A Pull Takes Four Steps.

1. **List**

   Call `GET /feeds/latest` and compare each file’s `file_update_time` with the one your pipeline loaded last.
2. **Request**

   For each file that changed, call its feed endpoint with `file_format=csv` or `json`. The response carries a fresh `download_url`.
3. **Download**

   Fetch the link within the hour. If it expires first, call the feed endpoint again for a new one.
4. **Load**

   Check the lines you received against `line_count`, then load the file. Enrich the names you care about with the lookup and history APIs.

### Cut From the Index Behind the Platform.

The feeds are cut from the index behind the Deepinfo Platform. Each file reports its own length in `line_count`. The index as a whole holds:

- 400M+ domains: across every TLD
- 2B+ subdomains: discovered and resolved
- 200B+ DNS records: cumulative, with history
- 30B+ SSL certificates: indexed

### Bulk History and Real Time: What Exists Today.

History and real-time data reach your team today through per-call APIs, daily files and platform notifications. Each page below shows the route that works now. For bulk history or a stream, talk to our data team.

#### [Historical DNS Records](https://www.deepinfo.com/data-api/feeds/historical-dns-records/)

No bulk endpoint. Per name, DNS History returns all values it has resolved to.

`GET /analyze/dns-history`

#### [Historical WHOIS Records](https://www.deepinfo.com/data-api/feeds/historical-whois-records/)

No bulk endpoint. Per domain, WHOIS History returns each distinct registration record.

`GET /analyze/whois-history`

#### [Historical SSL Records](https://www.deepinfo.com/data-api/feeds/historical-ssl-records/)

No history endpoint. SSL Lookup checks a host live, and Domain Search filters by certificate fields.

`GET /lookup/ssl`

#### [Newly Registered Domains, Real Time](https://www.deepinfo.com/data-api/feeds/real-time-newly-registered-domain-names-stream/)

No stream. The daily file, and instant brand alerts in Brand Risk Protection.

`GET /feeds/daily-registered-domains`

#### [Newly Updated Domains, Real Time](https://www.deepinfo.com/data-api/feeds/real-time-newly-updated-domain-names-stream/)

No stream. The daily file, and change notifications on the domains you monitor.

`GET /feeds/daily-updated-domains`

#### [Newly Discovered Subdomains, Real Time](https://www.deepinfo.com/data-api/feeds/real-time-newly-discovered-subdomains-stream/)

No stream. The daily file, and continuous discovery on your domains.

`GET /feeds/daily-discovered-subdomains`

### Use Files for the Whole Set and APIs for One Target.

Use a feed when the question covers the whole index: the domains registered in the last day, or all subdomains on record. Use an API when the question starts from one domain, IP address or certificate and needs its full record now.

Most pipelines use both. The daily file says which names are new, and [Domain Detail](https://www.deepinfo.com/data-api/apis/domain-detail/) or [Domain WHOIS](https://www.deepinfo.com/data-api/apis/whois-lookup/) fills in the record for the ones that matter.

[API services](https://www.deepinfo.com/data-api/apis/) · [How a ratings provider uses both](https://www.deepinfo.com/customers/cybersecurity-ratings-provider/)

- **Data feeds**: Whole files, CSV or JSON, one request per file
- **API services**: One target per request, JSON, paged when lists are long
- **Same key**: Both use the `apikey` header; your plan sets which endpoints it can call
- **Same index**: Feeds and the search, discovery and history APIs read one data store

### 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 Data Feeds

**What formats do the feeds come in?**

CSV or JSON. Pass `file_format=csv` or `file_format=json` on the request; JSON is the default. The response reports the format, size in bytes, line count and update time of the file you asked for.

**How long is a download link valid?**

One hour. The `download_url` is pre-signed. If your job has not fetched it by then, call the feed endpoint again for a new link.

**Which feeds can our API key call?**

Your plan decides. A key that calls a feed outside its plan gets `403` with the message `You cannot consume this service`. Rate limits are plan-dependent too, and apply per key and per endpoint.

**How are data feeds priced?**

On their own, by volume and frequency, separately from the platform. See [Data & API pricing](https://www.deepinfo.com/pricing/#data-pricing), or [talk to the data team](https://www.deepinfo.com/contact/?topic=data-api) about the feeds you need.

**Is there a streaming or webhook version of a feed?**

Not in the public API: each feed is a file. If your workflow needs registrations, registration updates or new subdomains faster than a daily file, [talk to our data team](https://www.deepinfo.com/contact/) about what your pipeline needs.

**Can we get DNS, WHOIS or SSL history in bulk?**

Not through a public feed endpoint. Per-name history is available now through [DNS History](https://www.deepinfo.com/data-api/apis/dns-history/) and [WHOIS History](https://www.deepinfo.com/data-api/apis/whois-history/). For bulk history, [talk to our data team](https://www.deepinfo.com/contact/) about what your analysis needs.

**Can we load the files into our own product?**

That is how a [cybersecurity ratings provider](https://www.deepinfo.com/customers/cybersecurity-ratings-provider/) builds on them. How the data can be used and shown in your product is set in the agreement, so [talk to the data team](https://www.deepinfo.com/contact/?topic=data-api) about your case.

### Feed the Index Into Your Pipeline.

Tell us which feeds you need and how your team loads data. We set up access and walk through the files with you before you integrate.

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