Domains Monitor APIdomains-monitor.com ↗
Access free domain sample lists across 12+ TLDs and metadata for 1,500+ zones via the Domains Monitor API. Search domains by keyword with 7 endpoints.
What is the Domains Monitor API?
The Domains Monitor API provides 7 endpoints for retrieving domain name lists and zone metadata from domains-monitor.com. get_freelists_page returns sample domains across 12 TLDs including .com, .de, .ru, and .gov in a single call, while get_domainzones_page delivers a full listing of 1,500+ supported zones with domain counts and update timestamps. Additional endpoints support per-zone filtering, cross-zone aggregation, and keyword search.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/5a7460d8-7452-4ea8-9794-7875c9570f55/get_freelists_page' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace domains-monitor-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Domains Monitor SDK — browse free domain lists and zone metadata."""
from parse_apis.domains_monitor_api import DomainsMonitor, Zone, ZoneNotFound
client = DomainsMonitor()
# Get the full freelist across all zones at once
freelist = client.freelists.get()
print(f".com samples: {len(freelist.com)} domains")
print(f".org samples: {len(freelist.org)} domains")
# Fetch a specific zone's free domains by enum
com_list = client.zonefreelists.get(zone=Zone.COM)
print(f"Zone '{com_list.zone}': {len(com_list.domains)} domains, first: {com_list.domains[0]}")
# Get aggregated (randomized) domains from all zones
aggregated = client.aggregateddomainses.get()
print(f"Aggregated: {aggregated.total_count} total domains, note: {aggregated.note}")
# Browse the full zones directory with counts and update timestamps
zones_page = client.domainzonespages.get()
print(f"Total zones listed: {zones_page.total_count}")
for z in zones_page.zones[:3]:
print(f" {z.zone}: {z.count} domains, updated {z.updated}")
# Typed error handling: attempt to fetch a non-existent zone
try:
client.zonefreelists.get(zone="xyz")
except ZoneNotFound as exc:
print(f"Expected error for invalid zone: {exc}")
print("exercised: freelists.get / zonefreelists.get / aggregateddomainses.get / domainzonespages.get / ZoneNotFound")
Scrape the /freelists/ page and extract all domain names shown in the free preview lists for all available zones. Returns a dictionary keyed by zone name (com, net, org, info, gov, edu, de, ru, uk, nl, fr, us) with arrays of sample domains for each zone.
No input parameters required.
{
"type": "object",
"fields": {
"de": "array of sample .de domain strings",
"fr": "array of sample .fr domain strings",
"nl": "array of sample .nl domain strings",
"ru": "array of sample .ru domain strings",
"uk": "array of sample .uk domain strings",
"us": "array of sample .us domain strings",
"com": "array of sample .com domain strings",
"edu": "array of sample .edu domain strings",
"gov": "array of sample .gov domain strings",
"net": "array of sample .net domain strings",
"org": "array of sample .org domain strings",
"info": "array of sample .info domain strings"
},
"sample": {
"data": {
"de": [
"elsenztalschule.de",
"docnawab.de"
],
"fr": [
"lescousinsdebretagne.fr",
"biorrex.fr"
],
"nl": [
"puma-werkschoenen.nl",
"mijnhulpje.nl"
],
"ru": [
"kratex.ru",
"fullfeel.ru"
],
"uk": [
"busymum.co.uk",
"examsmadeeasy.co.uk"
],
"us": [
"usvl.us",
"marknewman.us"
],
"com": [
"theculinarians.com",
"pgi-store.com"
],
"edu": [
"annamaria.edu",
"reach.edu"
],
"gov": [
"ripsga.gov",
"douglas-ma.gov"
],
"net": [
"fit-kit.net",
"indepthconcepts.net"
],
"org": [
"chfoukas.org",
"otvpgamers.org"
],
"info": [
"dodc.info",
"mininglpx.info"
]
},
"status": "success"
}
}About the Domains Monitor API
Free Domain Sample Lists
The get_freelists_page endpoint returns a dictionary keyed by zone name — com, net, org, info, gov, edu, de, ru, uk, nl, fr, us — each containing an array of sample domain strings. No parameters are required. If you only need one TLD at a time, get_freelist_by_zone accepts a zone string and returns that zone's 100-domain sample as a domains array alongside the zone field. To work with all zones at once, aggregate_and_export_freelists pools domains from every zone, randomizes the order, and returns an aggregated_domains array with a total_count and an informational note field.
Zone Metadata
get_domainzones_page retrieves the full zone listing page and returns a zones array where each entry contains the zone name, an updated timestamp string, and a count integer representing total domains in that zone. The accompanying total_count field shows how many zones are listed — currently 1,500+. This endpoint requires no authentication and is suited for auditing coverage before querying specific zones.
Authenticated Endpoints
Three endpoints require a token parameter obtained via subscription. get_all_zones returns a flat array of zone strings and optionally accepts a format parameter (json or xml). search_domains accepts a query string (minimum 3 characters), an optional zone value or 'full' for cross-zone search, and returns a total count plus a results array of matching domains — this endpoint requires a PRO account. get_account_details returns an account usage object and subscription string for verifying token status and plan tier.
The Domains Monitor API is a managed, monitored endpoint for domains-monitor.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when domains-monitor.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official domains-monitor.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a domain availability checker seeded with sample domains from
get_freelist_by_zonefor a specific TLD - Audit zone coverage before downloading full lists by checking
countfields fromget_domainzones_page - Generate a randomized mixed-TLD domain corpus for DNS research using
aggregate_and_export_freelists - Search for brand-related domains across all zones using the
queryparameter insearch_domains - Track when zone lists were last refreshed using the
updatedtimestamps returned byget_domainzones_page - Verify API token validity and subscription status programmatically via
get_account_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Domains Monitor have an official developer API?+
What does `get_domainzones_page` actually return for each zone entry?+
zones array contains three fields: zone (the TLD string, e.g. 'com'), updated (a timestamp string indicating when the zone list was last refreshed), and count (an integer representing total domains tracked in that zone). The response also includes a top-level total_count for the number of zones listed.Are the free sample lists the full zone files, or just previews?+
get_freelists_page, get_freelist_by_zone, and aggregate_and_export_freelists — return sample sets of up to 100 domains per zone, not complete zone file downloads. Full zone data is a separate offering that requires a subscription token and is not currently exposed through these endpoints. You can fork this API on Parse and revise it to add an endpoint for paginated full-zone retrieval once you have the appropriate access.Does the API expose WHOIS data or domain registration details for listed domains?+
What is the minimum query length for `search_domains`, and can it search a single zone?+
query parameter requires at least 3 characters. The zone parameter is optional — set it to a specific TLD string to narrow results to that zone, or pass 'full' to search across all zones. Results include a total integer and a results array of matching domain strings. This endpoint requires a PRO account token.