dotDB APIdotdb.com ↗
Access dotDB domain registration data via API. Search domains by keyword, get TLD coverage, keyword trend reports, and domain metadata in structured JSON.
What is the dotDB API?
The dotDB API exposes 4 endpoints for domain research and keyword trend data sourced from dotDB.com. Use search_domains to find which TLD extensions are registered for any keyword, pull emerging and top keyword reports via get_keywords_report, fetch live metadata from any external domain with get_domain_metadata, or retrieve the full dotDB subscription plan comparison table with get_pricing.
curl -X GET 'https://api.parse.bot/scraper/4a146fac-5533-4ef5-84b0-5c1ef18df209/search_domains?keyword=pizza' \ -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 dotdb-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.
"""dotDB Domain Intelligence — domain research and keyword insights."""
from parse_apis.dotdb_domain_intelligence_api import DotDB, DomainNotReachable
client = DotDB()
# Fetch keyword trends report — no params needed
report = client.keywordsreports.fetch()
print("Top keywords by EMD count:")
for entry in report.top_keywords[:5]:
print(f" {entry.rank} {entry.keyword} — {entry.emd_count} domains")
# Search domains by keyword — returns the first match and its TLDs
result = client.domains.search(keyword="cloud")
print(f"\nSearch result: {result.keyword} registered on {len(result.tlds)} TLDs: {', '.join(result.tlds[:5])}")
# Get metadata for a known domain
try:
domain = client.domains.get(domain="google.com")
print(f"\nDomain: {domain.domain}")
print(f" Title: {domain.title}")
print(f" Favicon: {domain.favicon}")
except DomainNotReachable as exc:
print(f"Domain unreachable: {exc}")
# List pricing rows — bounded iteration
for row in client.pricingrows.list(limit=3):
print(f"\n{row.feature}: Guest={row.guest}, Pro={row.pro}, Expert={row.expert}")
print("\nExercised: domains.search / domains.get / keywordsreports.fetch / pricingrows.list")
Search for domains by keyword on dotDB. Returns the first matching keyword from the database and its registered TLD extensions. The match may be a longer string containing the keyword (e.g. searching 'pizza' may return '00100pizza'). Position is fixed to 'any'.
| Param | Type | Description |
|---|---|---|
| keywordrequired | string | Search keyword to find matching domain registrations (e.g. 'pizza', 'saas', 'cloud'). |
{
"type": "object",
"fields": {
"tlds": "array of strings — registered TLD extensions for the keyword (e.g. '.com', '.net')",
"keyword": "string — the matched keyword from the first search result"
},
"sample": {
"data": {
"tlds": [
".com"
],
"keyword": "00100pizza"
},
"status": "success"
}
}About the dotDB API
Domain Search and TLD Coverage
The search_domains endpoint accepts a keyword string and returns the matched keyword alongside an array of registered TLD extensions (tlds). For example, querying pizza tells you which extensions — .com, .net, .io, and others — already have registrations tied to that keyword. This is useful for competitive domain research, brand availability checks, and understanding how saturated a keyword is across the domain namespace.
Keyword Trend Reports
get_keywords_report requires no inputs and returns two arrays: top_keywords and emerging_keywords. Each entry in either array includes rank, keyword, and emd_count — the count of exact-match domain registrations for that keyword. The distinction between top and emerging keywords reflects dotDB's registration trend data, making this endpoint useful for spotting keywords that are gaining traction in the domain market before they peak.
External Domain Metadata
get_domain_metadata takes a full domain name such as pizza.com and returns four fields: title (the HTML page title), description (meta description content), favicon (favicon URL or empty string), and domain (the input domain echoed back). This endpoint is useful for enriching domain lists with human-readable context — for instance, checking whether a registered domain is actively used and has descriptive metadata.
Pricing Table
get_pricing returns feature_rows, an array of objects where each row maps dotDB subscription tiers — Guest, Free Member, Basic, Pro, Expert, and Enterprise — to their respective feature values and limits. This is a structured representation of dotDB's own plan comparison table, covering the full feature matrix across all tiers.
The dotDB API is a managed, monitored endpoint for dotdb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dotdb.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 dotdb.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?+
- Check which TLD extensions are registered for a target brand keyword before purchasing a domain
- Monitor the
emd_countfield in keyword reports to identify exact-match domain trends for SEO research - Enrich a bulk domain list with page titles and meta descriptions using
get_domain_metadata - Detect whether a parked or newly registered domain has active content by inspecting its favicon and description fields
- Build a keyword-to-domain-availability pipeline using
search_domainswith dynamic keyword inputs - Compare dotDB plan tiers programmatically using the
feature_rowsresponse fromget_pricing - Track emerging keyword rankings week-over-week by storing
get_keywords_reportresponses over time
| 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 dotDB have an official developer API?+
What does `search_domains` return, and does it cover multiple keywords per request?+
tlds array from the first search result for the given keyword input. It covers one keyword per call. If you need to search multiple keywords, you will need to make separate requests for each.Does `get_keywords_report` allow filtering by category, date range, or TLD?+
rank, keyword, and emd_count fields only. You can fork this API on Parse and revise it to add a filtering or date-range endpoint if your use case requires it.Does the API return historical domain registration data or WHOIS records?+
search_domains, keyword trend snapshots via get_keywords_report, and live homepage metadata via get_domain_metadata. WHOIS records, registration dates, registrar details, and historical snapshots are not included. You can fork it on Parse and revise to add an endpoint pulling that data if needed.