Access and download complete zonefiles and domain lists via our simple and powerful API.
All API endpoints are served under the base URL https://allzonefiles.io/api/v1 and use the GET method.
List endpoints return JSON. Download endpoints return the file itself.
The API is also described by an OpenAPI 3.0 specification: https://allzonefiles.io/openapi.json. Import it into Postman, Swagger UI or an API client generator to explore the API or generate a client.
To use the API, include your API token in the Authorization header:
Authorization: Bearer YOUR_API_TOKEN
You can find your API token on the API Token page of your account, where you can also generate a new one.
The examples on this page use a sample token (allzfio_5c1572d016b846ce99ce7a177922ff21) - replace it with your own.
A request without a valid token is rejected with HTTP status 401, for example:
{"errorMessage": "Invalid API Token (unknown token)"}
Listing endpoints are available to every registered user with an API token. Downloading files requires a subscription:
| Endpoints | Access |
|---|---|
| Lists of zones, files and dates (2.1, 2.2, 3.1, 3.2, 4.1, 5.1) | Any registered user with an API token, no subscription required |
| Download the latest zonefiles, CZDS-format zonefiles, .ZIP files and new/expired domain lists (2.3, 3.3, 4.2, 5.2) | Basic or Pro plan |
| Download historic zonefiles, CZDS-format zonefiles, .ZIP files and new/expired domain lists (2.4, 3.4, 4.3, 5.3), download limits (6.1) | Pro plan, subject to download limits |
See pricing for plan details.
When a request fails, the API responds with an HTTP error status and a JSON body with an error message:
{"errorMessage": "Zone does not exist: xyz"}
| Status | Meaning |
|---|---|
400 | Invalid request, for example an unknown zone or a date that is not in YYYY-MM-DD format. |
401 | Missing or invalid API token, your plan does not include the requested file, or your download limit has been reached. |
429 | Too many requests - see rate limits. |
500 | Internal error, or the requested file is not available (for example, there is no file for that zone and date). Use the list endpoints to check which dates are available. |
API requests are rate limited. When the limit is exceeded, the API responds with HTTP status 429:
{"error": "Rate limit exceeded for this resource."}
If you get this response, wait a few seconds and retry the request. Avoid sending many requests in parallel - downloading files one after another is the most reliable approach.
Dates in URLs and in responses use the YYYY-MM-DD format, for instance 2026-05-11 - May 11, 2026.
Lists of files are sorted by date, most recent first.
Download endpoints send the file name in the Content-Disposition header, for example dev.2026-05-11.txt.gz.
To save a file under that name, use the -OJ options of curl:
curl -OJ -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/zones/dev/dl
Zonefiles for gTLD and ccTLD zones, as a gzipped list of domain names (one domain name per line).
Retrieve a list of all available domain zones with the date, number of domains and file size of the latest zonefile. Zones are sorted by name.
GET https://allzonefiles.io/api/v1/zones
Response:
{
"zones": [
{"name": "com", "type": "gTLD", "domains": 155447708, "latest_update_date": "2025-06-27", "filesize_bytes": 616970673},
{"name": "net", "type": "gTLD", "domains": 12332251, "latest_update_date": "2025-06-27", "filesize_bytes": 49463253},
{"name": "uk", "type": "ccTLD", "domains": 9750218, "latest_update_date": "2025-06-27", "filesize_bytes": 40290566},
...
]
}
type is gTLD or ccTLD.
Example of CURL request:
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/zones
Retrieve a list of all available zonefiles for specified zone, most recent first. {zone} is the zone name without the leading dot, for instance dev.
GET https://allzonefiles.io/api/v1/zones/dev
Response:
{
"zone": "dev",
"type": "gTLD",
"zonefiles": [
{"date": "2026-06-05", "domains": 677062, "filesize_bytes": 2440862},
{"date": "2026-06-04", "domains": 676378, "filesize_bytes": 2438361},
{"date": "2026-06-03", "domains": 675606, "filesize_bytes": 2435613},
...
]
}
For an unknown zone, the API responds with 400 and {"errorMessage": "Zone does not exist: xyz"}.
Example of CURL request:
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/zones/dev
Download the latest zonefile (file is gzipped) for a specific zone (e.g., com).
Access: Basic or Pro plan.
GET https://allzonefiles.io/api/v1/zones/com/dl
Response: Returns a downloadable .txt.gz file, named {zone}.{date}.txt.gz.
Example of CURL request (save zonefile for dev into file dev.txt.gz):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o dev.txt.gz https://allzonefiles.io/api/v1/zones/dev/dl
File excerpt (gzipped text file, a list of domain names, one domain name per line):
0--0.dev
0-0-0-0.dev
0-0-0.dev
0-0.dev
0-1.dev
0-2.dev
0-3.dev
0-9.dev
0-bit.dev
0-day.dev
0-matter.dev
0-n.dev
0.dev
00.dev
000.dev
0000.dev
00000.dev
00000000.dev
...
Download historic zonefile (file is gzipped) for a specific zone (e.g., com) for a specific date (e.g., 2026-05-11 - May 11, 2026).
Use 2.2 to find the available dates.
Access: Pro plan.
GET https://allzonefiles.io/api/v1/zones/com/dl/2026-05-11
Response: Returns a downloadable .txt.gz file, named {zone}.{date}.txt.gz.
Example of CURL request (save zonefile for zone .dev for date May 11, 2026 into file dev.2026-05-11.txt.gz):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o dev.2026-05-11.txt.gz https://allzonefiles.io/api/v1/zones/dev/dl/2026-05-11
Note: historical downloads count toward your plan's monthly limits. Once a limit is reached, this endpoint responds with 401 and {"errorMessage": "Download quota exceeded"}.
Use 6.1. GET /api/v1/limits/historical to check your remaining allowance.
Zonefiles for gTLD zones in the original ICANN CZDS format: the complete zonefile with its DNS records, as published by the registry, rather than a plain list of domain names. If you only need the domain names, use the zonefiles endpoints instead.
Retrieve a list of all zones with CZDS-format zonefiles, with the date, number of domains and file size of the latest zonefile. Zones are sorted by name.
GET https://allzonefiles.io/api/v1/czds/zones
Response:
{
"zones": [
{"name": "com", "type": "gTLD", "domains": 155447708, "latest_update_date": "2026-06-05", "filesize_bytes": 4987563120},
{"name": "dev", "type": "gTLD", "domains": 677062, "latest_update_date": "2026-06-05", "filesize_bytes": 21874412},
{"name": "net", "type": "gTLD", "domains": 12332251, "latest_update_date": "2026-06-05", "filesize_bytes": 402751863},
...
]
}
Example of CURL request:
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/czds/zones
Retrieve a list of all available CZDS-format zonefiles for specified zone, most recent first.
GET https://allzonefiles.io/api/v1/czds/zones/dev
Response:
{
"zone": "dev",
"type": "gTLD",
"zonefiles": [
{"date": "2026-06-05", "domains": 677062, "filesize_bytes": 21874412},
{"date": "2026-06-04", "domains": 676378, "filesize_bytes": 21851037},
...
]
}
For an unknown zone, the API responds with 400 and {"errorMessage": "CZDS zone does not exist: xyz"}.
Example of CURL request:
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/czds/zones/dev
Download the latest CZDS-format zonefile (file is gzipped) for a specific zone.
Access: Basic or Pro plan.
GET https://allzonefiles.io/api/v1/czds/zones/dev/dl
Response: Returns a downloadable .txt.gz file, named {zone}.{date}.full_zonefile.txt.gz.
Example of CURL request (save latest CZDS-format zonefile for dev into file dev.full_zonefile.txt.gz):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o dev.full_zonefile.txt.gz https://allzonefiles.io/api/v1/czds/zones/dev/dl
Download historic CZDS-format zonefile (file is gzipped) for a specific zone for a specific date (e.g., 2026-05-11 - May 11, 2026).
Use 3.2 to find the available dates.
Access: Pro plan.
GET https://allzonefiles.io/api/v1/czds/zones/dev/dl/2026-05-11
Response: Returns a downloadable .txt.gz file, named {zone}.{date}.full_zonefile.txt.gz.
Example of CURL request (save CZDS-format zonefile for zone .dev for date May 11, 2026 into file dev.2026-05-11.full_zonefile.txt.gz):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o dev.2026-05-11.full_zonefile.txt.gz https://allzonefiles.io/api/v1/czds/zones/dev/dl/2026-05-11
Note: historical downloads count toward your plan's monthly limits. Once a limit is reached, this endpoint responds with 401 and {"errorMessage": "Download quota exceeded"}.
Use 6.1. GET /api/v1/limits/historical to check your remaining allowance.
Retrieve a list of available .ZIP files with all zonefiles, most recent first.
GET https://allzonefiles.io/api/v1/all
Response:
{
"lists": [
{"date":"2026-06-04","domains":367042384,"filesize_bytes":1482563882},
{"date":"2026-06-03","domains":366897871,"filesize_bytes":1481974088},
...
]
}
Example of CURL request:
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/all
Download latest .ZIP file with all zonefiles.
Access: Basic or Pro plan.
GET https://allzonefiles.io/api/v1/all/dl
Response: Returns a downloadable .zip file with all zonefiles in it, named all_zonefiles.{date}.zip.
Example of CURL request (download latest ZIP file with all zonefiles into file all.latest.zip):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o all.latest.zip https://allzonefiles.io/api/v1/all/dl
Download historic .ZIP file with all zonefiles for a specified date (e.g., 2026-05-11 - May 11, 2026).
Use 4.1 to find the available dates.
Access: Pro plan.
GET https://allzonefiles.io/api/v1/all/dl/2026-05-11
Response: Returns a downloadable .zip file with all zonefiles in it, named all_zonefiles.{date}.zip.
Example of CURL request (download .ZIP file with all zonefiles into file all.2026-05-11.zip):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o all.2026-05-11.zip https://allzonefiles.io/api/v1/all/dl/2026-05-11
Note: historical downloads count toward your plan's monthly limits. Once a limit is reached, this endpoint responds with 401 and {"errorMessage": "Download quota exceeded"}.
Use 6.1. GET /api/v1/limits/historical to check your remaining allowance.
Retrieve a list of new or expired domain lists for each day, most recent first. {listName} can be new or expired
GET https://allzonefiles.io/api/v1/new
GET https://allzonefiles.io/api/v1/expired
Response:
{
"lists": [
{"date":"2025-08-12","domains":281130,"filesize_bytes":1667401},
{"date":"2025-08-11","domains":188591,"filesize_bytes":1159870},
...
]
}
Examples of CURL request:
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/new
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/expired
Download latest list of new or expired domains (file is gzipped).
{listName} should be new or expired
Access: Basic or Pro plan.
GET https://allzonefiles.io/api/v1/new/dl
GET https://allzonefiles.io/api/v1/expired/dl
Response: Returns a downloadable .txt.gz file, named new.{date}.txt.gz or expired.{date}.txt.gz.
Example of CURL request (save latest available list of new domains into file new.txt.gz):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o new.txt.gz https://allzonefiles.io/api/v1/new/dl
File excerpt (gzipped text file, a list of domain names, one domain name per line):
0-0-0-0-0-hey-you-geek-click-here.ch
0-a.pro
0-abv.com
0-agent.ru
0-amazon.ru
0-cash.ru
0-chill.com
0-cy-xn1is8y6jlgk0rr.com
0-i-b-d.com
0-j-a-t.com
0-l.ink
0-money.ru
0-qpgpxn1dtcq05-otvg.com
0-x6.com
00.mom
000-andoid.com
000.game
0000-1.vip
000000.digital
00000667.com
0000227.xyz
0001xxd1.store
000214.lol
0002302.com
0002302.pro
0002626.xyz
000267.xyz
000279136.com
000287.xyz
000289.xyz
000296b.cfd
000325.lol
000338.lol
000390.lol
...
Download list of new or expired domains (file is gzipped) for a specified date (e.g., 2025-08-11).
Use 5.1 to find the available dates.
{listName} should be new or expired
{date} is in YYYY-MM-DD format, for instance 2025-08-11 - August 11, 2025
Access: Pro plan.
GET https://allzonefiles.io/api/v1/new/dl/2025-08-11
GET https://allzonefiles.io/api/v1/expired/dl/2025-08-11
Response: Returns a downloadable .txt.gz file, named new.{date}.txt.gz or expired.{date}.txt.gz.
Example of CURL request (save list of new domains for a date 2025-08-11 into file new.2025-08-11.txt.gz):
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" -o new.2025-08-11.txt.gz https://allzonefiles.io/api/v1/new/dl/2025-08-11
Note: historical downloads count toward your plan's monthly limits. Once a limit is reached, this endpoint responds with 401 and {"errorMessage": "Download quota exceeded"}.
Use 6.1. GET /api/v1/limits/historical to check your remaining allowance.
Plans with access to historical files have a monthly limit on the number of historical files and the amount of historical data you can download. All historical (dated) downloads count toward the limit - zonefiles, CZDS-format zonefiles, new/expired domain lists and .ZIP files, via both the website and the API. Downloads of the latest files are not limited. See pricing for the limits of each plan.
This endpoint returns the limits for your current billing period, how much you have used and how much remains. A billing period is one month long and starts on your subscription date.
GET https://allzonefiles.io/api/v1/limits/historical
Response:
{
"period_start_utc": "2026-09-15T14:32:07Z",
"period_end_utc": "2026-10-15T14:32:07Z",
"max_files": 500,
"max_data_mb": 256000,
"downloaded_files": 123,
"downloaded_data_mb": 212000,
"remaining_files": 377,
"remaining_data_mb": 44000,
"quota_exceeded": false
}
Response fields:
| Field | Description |
|---|---|
period_start_utc, period_end_utc | Start and end of the current billing period (RFC 3339 timestamps, UTC). If your subscription ends before the month is over, period_end_utc is the subscription end time. |
max_files | Maximum number of historical files per billing period. |
max_data_mb | Maximum amount of historical data per billing period, in MB (1 GB = 1024 MB). |
downloaded_files, downloaded_data_mb | Historical files and data downloaded so far in the current billing period. |
remaining_files, remaining_data_mb | Historical files and data left until the end of the current billing period. |
quota_exceeded | true once either limit is reached. Historical downloads are then rejected until the next billing period starts. |
When a limit is reached, historical download endpoints (2.4, 3.4, 4.3 and 5.3) respond with 401 and {"errorMessage": "Download quota exceeded"}.
Error responses:
401 - your plan does not include historical files (for example, the Basic plan):
{"errorMessage": "No subscription that allows to download historical files"}404 - download limits are not enabled, so historical downloads are not limited:
{"errorMessage": "Historical files download limits are not enabled"}Example of CURL request:
curl -H "Authorization: Bearer allzfio_5c1572d016b846ce99ce7a177922ff21" https://allzonefiles.io/api/v1/limits/historical