MCP-Server

DomainKits

io.github.ABTdomain/domainkits-mcp
Cloud & Infrastruktur Marketing & Werbung Sicherheit Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Searches and monitors domains and DNS, checks availability and pricing, analyzes backlinks and keywords, and supports domain safety, typosquat, WHOIS, and registration research.

active
Active Domain Search
Search active gTLD domains from a database of ~240 million registered domains, filtered by keyword, TLD, length, and character set. A market-analysis instrument for keyword distribution and saturation; results are registered domains, not available for registration. Related: expired, whois, dns.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "Filter by TLD (e.g., 'com', 'net', 'org'); when keyword is omitted, this is the browse target (TLD browse mode requires a registered account)"}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['length_asc', 'length_desc', 'alpha'], 'type': 'string', 'description': 'Sort order'}, 'type': {'enum': ['all_alpha', 'all_number'], 'type': 'string', 'description': 'Character set filter'}, 'length': {'enum': ['<5', '5-10', '11-15', '15+'], 'type': 'string', 'description': 'Domain name length filter'}, 'status': {'enum': ['forsale'], 'type': 'string', 'description': "Filter by status: 'forsale' for domains listed for sale"}, 'keyword': {'type': 'string', 'description': 'Brand or industry term (min 2 chars). Omit to use TLD browse mode, which requires a registered account.'}, 'position': {'enum': ['start', 'end', 'middle', 'all'], 'type': 'string', 'description': "Keyword placement in domain name. Default is 'all' (substring match). Unlike the other search tools, this one has no minimum-length restriction on substring matching."}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphenated domains (true/false)'}, 'no_number': {'type': 'string', 'description': 'Exclude domains containing numbers (true/false)'}, 'tld_count_max': {'type': 'string', 'description': 'Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.'}, 'tld_count_min': {'type': 'string', 'description': 'Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'price': {'type': 'string', 'description': 'Listing price with currency, e.g. 1500 USD. Only present for Atom/Sedo listings'}, 'domain': {'type': 'string'}, 'marketplace': {'type': 'string', 'description': 'Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale.'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matching results across all pages; the primary metric for comparative analysis'}}}
aged
Aged Domains Search
Search currently registered domains with 5-20+ years of history, filtered by keyword, TLD, age range, length, and sale status. These are live domains owned by someone, not free to register. Related: expired, whois, dns.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "Filter by TLD (e.g., 'com', 'net', 'org')"}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['age_desc', 'age_asc', 'length_asc', 'length_desc', 'reg_date_asc', 'reg_date_desc', 'alpha', 'tld_counter_asc', 'tld_counter_desc'], 'type': 'string', 'description': 'Sort order'}, 'type': {'enum': ['all_alpha', 'all_number'], 'type': 'string', 'description': 'Character set filter'}, 'length': {'enum': ['<5', '5-10', '10-15', '15+'], 'type': 'string', 'description': 'Domain name length filter'}, 'exclude': {'type': 'string', 'description': 'Negative keywords to exclude'}, 'keyword': {'type': 'string', 'description': 'Search term (min 2 chars). Substring matching applies at every length, including 2-character terms.'}, 'has_sale': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Filter to domains listed for sale by their owner'}, 'position': {'enum': ['start', 'end', 'middle', 'all'], 'type': 'string', 'description': "Keyword placement in domain name. Default is 'all' (substring match)."}, 'age_range': {'enum': ['5-10', '10-15', '15-20', '20+', '5-10,10-15', '10-15,15-20', '15-20,20+'], 'type': 'string', 'description': 'Domain age filter in years'}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphenated domains'}, 'no_number': {'type': 'string', 'description': 'Exclude domains containing numbers'}, 'tld_count_max': {'type': 'string', 'description': 'Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.'}, 'tld_count_min': {'type': 'string', 'description': 'Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'price': {'type': 'string', 'description': 'Listing price with currency, e.g. 1500 USD. Only present for Atom/Sedo listings'}, 'domain': {'type': 'string'}, 'age_years': {'type': 'integer', 'description': 'Domain age in years'}, 'marketplace': {'type': 'string', 'description': 'Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale.'}, 'registered_date': {'type': 'string', 'description': 'First registration year (YYYY)'}, 'prefix_tld_count': {'type': 'integer', 'description': 'Number of TLDs the same prefix is registered under'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matching results across all pages'}}}
available
Domain Availability Check
Confirm a single domain's registrability and price. The definitive availability check for one domain. Related: bulk_available, whois, monitor.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': "Full domain with TLD (e.g., 'example.com')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success', 'domain', 'status'], 'properties': {'price': {'type': 'string', 'description': "Registration price with currency (e.g., '9.99 USD'). Only present when status=available."}, 'domain': {'type': 'string'}, 'status': {'enum': ['available', 'registered', 'expiring', 'reserved', 'invalid', 'unknown'], 'type': 'string', 'description': 'Domain status: available = registrable, registered = taken, expiring = in the expiration pipeline, reserved = registry-reserved, invalid = malformed input, unknown = inconclusive'}, 'success': {'type': 'boolean'}}}
backlink_summary
SEO Backlink Analysis
Return a domain's backlink profile: domain rank, total backlinks, referring domains, spam score, and link distribution. Related: whois.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'Bare domain name such as example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'cms': {'type': 'string'}, 'rank': {'type': 'integer', 'description': 'Domain rank (0-1000 logarithmic scale)'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'cached': {'type': 'boolean'}, 'domain': {'type': 'string'}, 'server': {'type': 'string'}, 'country': {'type': 'string'}, 'success': {'type': 'boolean'}, 'backlinks': {'type': 'integer', 'description': 'Total number of backlinks'}, 'first_seen': {'type': 'string'}, 'ip_address': {'type': 'string'}, 'broken_pages': {'type': 'integer'}, 'crawled_pages': {'type': 'integer'}, 'referring_ips': {'type': 'integer'}, 'referring_pages': {'type': 'integer'}, 'broken_backlinks': {'type': 'integer'}, 'referring_domains': {'type': 'integer'}, 'referring_subnets': {'type': 'integer'}, 'target_spam_score': {'type': 'integer', 'description': 'Spam score of domain itself (0-100)'}, 'referring_links_tld': {'type': 'object', 'description': 'Backlink count by referring TLD'}, 'backlinks_spam_score': {'type': 'integer', 'description': 'Spam score of incoming backlinks (0-100)'}, 'external_links_count': {'type': 'integer'}, 'internal_links_count': {'type': 'integer'}, 'referring_links_types': {'type': 'object', 'description': 'Backlink count by link type (anchor, image, redirect, etc.)'}, 'referring_main_domains': {'type': 'integer'}, 'referring_pages_nofollow': {'type': 'integer'}, 'referring_links_attributes': {'type': 'object', 'description': 'Backlink count by link attribute (nofollow, sponsored, ugc, etc.)'}, 'referring_links_platform_types': {'type': 'object', 'description': 'Backlink count by platform type (blogs, news, ecommerce, etc.)'}, 'referring_main_domains_nofollow': {'type': 'integer'}, 'referring_links_semantic_locations': {'type': 'object', 'description': 'Backlink count by semantic HTML location'}}}
bulk_available
Batch Domain Availability Check
Check the registration status of up to 50 domains at a point in time. available means the domain can be registered; registered means it is already registered; expiring means it is in an expiry-related lifecycle and is not directly registrable; reserved means it is reserved by the registry; unknown means no check produced a reliable conclusion. Availability is never assumed from a failed check.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['domains'], 'properties': {'domains': {'type': 'string', 'description': 'Comma-separated fully qualified domain names, maximum 50.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain', 'status'], 'properties': {'price': {'type': 'string', 'description': 'Registration price including currency, when available.'}, 'domain': {'type': 'string'}, 'status': {'enum': ['available', 'registered', 'expiring', 'reserved', 'unknown'], 'type': 'string'}}}}, 'error': {'type': 'string', 'description': 'Error message when success is false.'}, 'total': {'type': 'integer', 'minimum': 0}, 'success': {'type': 'boolean'}}}
bulk_tld
Keyword TLD Popularity Check
For up to 50 keywords, count how many TLDs each exact name is registered in (keyword.tld), among the TLDs DomainKits tracks, split into popular TLDs, country-code TLDs, and other gTLDs. Returns counts only: it does not list individual TLDs, check availability, or report sale status. Related: tld_check (per-TLD status for one keyword), bulk_available (status of specific domains).
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['keywords'], 'properties': {'keywords': {'type': 'string', 'description': 'Comma-separated keywords to check (max 50)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['keyword'], 'properties': {'cctld': {'type': 'integer', 'description': 'Count in country-code TLDs outside the popular set'}, 'other': {'type': 'integer', 'description': 'Count in other gTLDs outside the popular set'}, 'total': {'type': 'integer', 'description': 'Number of TLDs where keyword.tld is registered (popular + cctld + other)'}, 'keyword': {'type': 'string'}, 'popular': {'type': 'integer', 'description': 'Count in popular TLDs (com, net, org, io, ai, app, and similar; io and ai count here, not in cctld)'}}}}, 'error': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Number of keywords checked'}, 'success': {'type': 'boolean'}}}
deleted
Deleted Domains Search
Search domains that were deleted after expiring, filtered by keyword, TLD, age before deletion, length, character set, and registry hold flag. Results reflect the latest data update and are not re-checked at query time, so a name may have been registered again since. Confirm with available or bulk_available before registering. Related: available, bulk_available, whois.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['keyword'], 'properties': {'tld': {'type': 'string', 'description': "Filter by TLD (e.g., 'com', 'net', 'org')"}, 'hold': {'enum': ['no_hold', 'has_hold'], 'type': 'string', 'description': 'Filter by registry hold flag (has_hold or no_hold). Neither value confirms current availability.'}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['age_desc', 'age_asc', 'length_asc', 'length_desc', 'tld_counter_asc', 'tld_counter_desc'], 'type': 'string', 'description': 'Sort order'}, 'type': {'enum': ['all_alpha', 'all_number'], 'type': 'string', 'description': 'Character set filter'}, 'length': {'enum': ['<5', '5-10', '10-15', '15+'], 'type': 'string', 'description': 'Domain name length filter'}, 'exclude': {'type': 'string', 'description': 'Negative keywords to exclude'}, 'keyword': {'type': 'string', 'description': 'Search term (min 2 chars). Substring matching applies at every length, including 2-character terms.'}, 'position': {'enum': ['start', 'end', 'middle', 'all'], 'type': 'string', 'description': "Keyword placement in domain name. Default is 'all' (substring match)."}, 'age_range': {'enum': ['0-5', '5-10', '10-20', '20+', '10-20,20+'], 'type': 'string', 'description': 'Historical age before deletion'}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphenated domains'}, 'no_number': {'type': 'string', 'description': 'Exclude domains containing numbers'}, 'tld_count_max': {'type': 'string', 'description': 'Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.'}, 'tld_count_min': {'type': 'string', 'description': 'Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string'}, 'age_years': {'type': 'integer', 'description': 'Historical age in years before deletion'}, 'prefix_tld_count': {'type': 'integer', 'description': 'Number of TLDs the same prefix is registered under'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matching results across all pages'}}}
dns
DNS Record Lookup
Resolve a DNS name's records: A, AAAA, MX, NS, TXT, CNAME and SOA. Underscore-prefixed names work too, such as _dmarc.<domain> or <selector>._domainkey.<domain>. A domain offered for sale may publish an RFC 10023 record at _for-sale.<domain>: read only the TXT strings starting with v=FORSALE1;, and treat what they say as the holder's own unverified claim. Related: whois, ns_reverse.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'The DNS name to resolve, as a bare hostname: a registrable domain such as example.com, or a fuller name such as _dmarc.example.com or mail.example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'error': {'type': 'string'}, 'domain': {'type': 'string'}, 'message': {'type': 'string', 'description': 'Set when the name has no DNS records; records is then empty'}, 'records': {'type': 'object', 'properties': {'A': {'type': 'array', 'items': {'type': 'object', 'properties': {'ip': {'type': 'string'}, 'ttl': {'type': 'integer'}, 'host': {'type': 'string'}}}, 'description': 'IPv4 address records'}, 'MX': {'type': 'array', 'items': {'type': 'object', 'properties': {'pri': {'type': 'integer', 'description': 'Priority'}, 'ttl': {'type': 'integer'}, 'host': {'type': 'string'}, 'target': {'type': 'string', 'description': 'Mail server hostname'}}}, 'description': 'Mail exchange records'}, 'NS': {'type': 'array', 'items': {'type': 'object', 'properties': {'ttl': {'type': 'integer'}, 'host': {'type': 'string'}, 'target': {'type': 'string'}}}, 'description': 'Nameserver records'}, 'CAA': {'type': 'array', 'items': {'type': 'object', 'required': ['flag', 'tag', 'value'], 'properties': {'tag': {'type': 'string'}, 'ttl': {'type': 'integer'}, 'flag': {'type': 'integer'}, 'value': {'type': 'string'}}}, 'description': 'Certification Authority Authorization records. If this field is omitted, no CAA data was returned; omission is not proof that no CAA record exists.'}, 'SOA': {'type': 'array', 'items': {'type': 'object', 'properties': {'host': {'type': 'string'}, 'mname': {'type': 'string', 'description': 'Primary nameserver'}, 'retry': {'type': 'integer'}, 'rname': {'type': 'string', 'description': 'Admin email'}, 'expire': {'type': 'integer'}, 'serial': {'type': 'integer'}, 'refresh': {'type': 'integer'}, 'minimum_ttl': {'type': 'integer'}}}, 'description': 'Start of authority records'}, 'TXT': {'type': 'array', 'items': {'type': 'object', 'properties': {'ttl': {'type': 'integer'}, 'txt': {'type': 'string'}, 'host': {'type': 'string'}}}, 'description': 'Text records (SPF, DKIM, verification tokens)'}, 'AAAA': {'type': 'array', 'items': {'type': 'object', 'properties': {'ttl': {'type': 'integer'}, 'host': {'type': 'string'}, 'ipv6': {'type': 'string'}}}, 'description': 'IPv6 address records'}, 'CNAME': {'type': 'array', 'items': {'type': 'object', 'properties': {'ttl': {'type': 'integer'}, 'host': {'type': 'string'}, 'target': {'type': 'string'}}}, 'description': 'Canonical name records'}}, 'description': 'DNS records grouped by type'}, 'success': {'type': 'boolean'}}}
domain_changes
Premium Domain Changes Monitor (7d)
List registration and status changes to premium .com domains (short 1-4 letter and high-value single-word names) over a rolling 7-day window, filtered by change reason and length. Related: whois, ns_reverse.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "TLD filter (e.g., 'com')"}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['length_asc', 'length_desc', 'tld_count_desc', 'tld_count_asc', 'prefix_asc', 'prefix_desc'], 'type': 'string', 'description': 'Sort order'}, 'length': {'enum': ['all', '1-3', '4', '5-8', '9+'], 'type': 'string', 'description': 'Prefix length filter (characters before TLD)'}, 'reason': {'enum': ['all', 'Domain Transfer', 'Domain Expired', 'New Registration', 'Nameserver Change'], 'type': 'string', 'description': 'Filter by change type'}, 'keyword': {'type': 'string', 'description': 'Search by domain or keyword within the monitored pool'}, 'has_digit': {'enum': ['false', 'true', 'all'], 'type': 'string', 'description': 'false = letters only (default), true = contains digits, all = digits only'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'tld': {'type': 'string'}, 'domain': {'type': 'string'}, 'length': {'type': 'integer', 'description': 'Prefix character length'}, 'prefix': {'type': 'string', 'description': 'Domain prefix without TLD'}, 'reason': {'type': 'string', 'description': 'Change type: Domain Transfer, Domain Expired, New Registration, or Nameserver Change'}, 'tld_count': {'type': 'integer', 'description': 'Number of TLDs the same prefix is registered under'}, 'combination': {'type': 'string', 'description': 'Word segmentation of the prefix'}, 'details_new': {'type': 'string', 'description': 'New state (registrar for Transfer, expiration date for Expired, nameservers for NS Change)'}, 'details_old': {'type': 'string', 'description': 'Previous state (registrar for Transfer/Expired, nameservers for NS Change)'}}}}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}}}
epp_status
EPP Status Code Reference
Explain domain EPP status codes: what a code means, why it is set, how serious it is, and what the holder can do. Matches on the code, its aliases, or a category name; call with no query to list every code. Use this to interpret the status field returned by whois instead of relying on recall. Related: whois, expired, monitor.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'query': {'type': 'string', 'description': "Status code, alias, or category (e.g. 'clientHold', 'redemption period', 'Grace Period'). Omit to list every code"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'action': {'type': 'string', 'description': 'What the domain holder can do about it'}, 'status': {'type': 'string', 'description': 'Canonical EPP status code, e.g. clientTransferProhibited'}, 'aliases': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Other spellings this code appears under, including the spaced form whois returns'}, 'category': {'type': 'string', 'description': 'e.g. Security Protection, Domain Not Working, Grace Period'}, 'severity': {'type': 'string', 'description': 'none, low, medium, high, or critical'}, 'description': {'type': 'string', 'description': 'Plain-language meaning'}, 'possible_reasons': {'type': 'string', 'description': 'Why this status is usually set. Empty for codes where it does not apply'}}}, 'description': 'Matching status codes'}, 'error': {'type': 'string'}, 'total': {'type': 'integer'}, 'success': {'type': 'boolean'}}}
expired
Expiring Domains Search
Search domains in the deletion cycle: expired, in redemption, or pending delete. Still held by the current registrant, with time-sensitive acquisition windows. Filter by lifecycle status, TLD, age range, length, and character set. Note: registrars may renew a domain after it expires, and expiry information here is gathered through multiple channels, so some domain statuses may not match live WHOIS. Related: monitor, deleted, whois.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "Filter by TLD (e.g., 'com', 'net', 'org')"}, 'hold': {'enum': ['no_hold', 'has_hold'], 'type': 'string', 'description': 'Registry hold status'}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['age_desc', 'age_asc', 'length_asc', 'length_desc'], 'type': 'string', 'description': 'Sort order'}, 'type': {'enum': ['all_alpha', 'all_number'], 'type': 'string', 'description': 'Character set filter'}, 'length': {'enum': ['<5', '5-10', '10-15', '15+'], 'type': 'string', 'description': 'Domain name length filter'}, 'status': {'enum': ['pending_delete', 'redemption', 'expired'], 'type': 'string', 'description': 'expired = in registrar auction, redemption = owner can reclaim, pending_delete = drops in 1-5 days'}, 'exclude': {'type': 'string', 'description': 'Negative keywords to exclude'}, 'keyword': {'type': 'string', 'description': 'Search term (min 2 chars). Substring matching applies at every length, including 2-character terms.'}, 'position': {'enum': ['start', 'end', 'middle', 'all'], 'type': 'string', 'description': "Keyword placement in domain name. Default is 'all' (substring match)."}, 'age_range': {'enum': ['0-5', '5-10', '10-20', '20+', '5-10,10-15', '10-20,20+'], 'type': 'string', 'description': 'Historical age of the domain'}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphenated domains'}, 'no_number': {'type': 'string', 'description': 'Exclude domains containing numbers'}, 'tld_count_max': {'type': 'string', 'description': 'Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.'}, 'tld_count_min': {'type': 'string', 'description': 'Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string'}, 'status': {'type': 'string', 'description': 'Lifecycle stage: expired, redemption, or pending delete'}, 'age_years': {'type': 'integer', 'description': 'Domain age in years'}, 'registered_date': {'type': 'string', 'format': 'date'}, 'prefix_tld_count': {'type': 'integer', 'description': 'Number of TLDs the same prefix is registered under'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matching results across all pages'}}}
ip_lookup
IP and Host Geolocation
Resolve an IP address or domain name to its network operator and approximate location: ASN, organization, country, region, city, coordinates, and timezone. Domains are resolved to their first IPv4 address before lookup. Location is IP-level and approximate; it is not the address of the site owner. Related: dns, whois, ns_reverse.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'IP address or domain name. Scheme, port, path, and a leading www. are stripped automatically'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'ip': {'type': 'string', 'description': 'Resolved IP address'}, 'asn': {'type': ['integer', 'null'], 'description': 'Autonomous system number, null when the ASN database has no entry'}, 'city': {'type': 'string'}, 'type': {'type': 'string', 'description': 'IPv4 or IPv6'}, 'is_eu': {'type': 'boolean'}, 'postal': {'type': 'string'}, 'region': {'type': 'string'}, 'country': {'type': 'string', 'description': 'Falls back to the registered country when the location country is absent'}, 'latitude': {'type': ['number', 'null'], 'description': 'Null when unknown, never 0 (which is a real coordinate)'}, 'timezone': {'type': 'string', 'description': 'IANA timezone identifier'}, 'continent': {'type': 'string'}, 'longitude': {'type': ['number', 'null'], 'description': 'Null when unknown, never 0 (which is a real coordinate)'}, 'region_code': {'type': 'string'}, 'country_code': {'type': 'string'}, 'continent_code': {'type': 'string'}, 'as_organization': {'type': 'string', 'description': 'Network operator name'}}}, 'description': 'Zero or one record'}, 'error': {'type': 'string'}, 'total': {'type': 'integer', 'description': '1 when the address is in the database, 0 when it is not'}, 'success': {'type': 'boolean'}}}
keyword_data
Keyword Search Volume & CPC
Return search-volume, CPC, and competition data for a keyword. Related: keywords_trends.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['keyword'], 'properties': {'country': {'enum': ['US-EN', 'DE-DE', 'CA-FR', 'IT-IT'], 'type': 'string', 'description': 'Market. Default: US-EN'}, 'keyword': {'type': 'string', 'description': 'Keyword to research'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'error': {'type': 'string', 'description': 'Error message when success is false'}, 'keyword': {'type': 'string'}, 'low_cpc': {'type': 'number', 'description': 'Low range cost-per-click in USD'}, 'success': {'type': 'boolean'}, 'high_cpc': {'type': 'number', 'description': 'High range cost-per-click in USD'}, 'competition': {'type': 'number', 'description': 'Competition index (0 to 1)'}, 'search_volume': {'type': 'integer', 'description': 'Average monthly search volume'}, 'competition_level': {'type': 'string', 'description': 'LOW, MEDIUM, or HIGH'}}}
keywords_trends
Keyword Registration Trends
Return provider-computed keyword registration statistics. hot and emerging cover rolling keyword cohorts; prefix returns prefix activity buckets. scope=all represents the provider's filtered all-gTLD sample, while scope=com represents its pure-letter .com subset and is not available for prefix. Results are representative samples, not a complete registry feed, demand measurement, valuation, or investment recommendation.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'type': {'enum': ['hot', 'emerging', 'prefix'], 'type': 'string', 'description': 'Trend dataset to return.'}, 'scope': {'enum': ['all', 'com'], 'type': 'string', 'description': 'all = filtered all-gTLD sample; com = pure-letter .com subset. prefix supports all only.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'w1': {'type': 'integer', 'minimum': 0}, 'w2': {'type': 'integer', 'minimum': 0}, 'w3': {'type': 'integer', 'minimum': 0}, 'w4': {'type': 'integer', 'minimum': 0}, 'rank': {'type': 'integer', 'minimum': 1}, 'word': {'type': 'string', 'description': 'Keyword for hot and emerging rows.'}, 'trend': {'type': 'string', 'description': 'Provider status for prefix rows.'}, 'prefix': {'type': 'string', 'description': 'Prefix for prefix rows.'}, 'top_ns': {'type': 'string', 'description': 'Most frequent nameserver in the provider sample.'}, 'count_7d': {'type': 'integer', 'minimum': 0, 'description': 'Prefix rows only.'}, 'most_tld': {'type': 'string', 'description': 'Most frequent TLD in the provider sample.'}, 'peak_day': {'type': 'string', 'description': 'Provider-supplied peak date.'}, 'com_count': {'type': 'integer', 'minimum': 0, 'description': 'Absolute .com count when supplied directly by the provider.'}, 'com_ratio': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of registrations in the provider sample that are .com.'}, 'count_28d': {'type': 'integer', 'minimum': 0, 'description': 'Provider sample count over 28 days for hot and emerging rows.'}, 'count_30d': {'type': 'integer', 'minimum': 0, 'description': 'Prefix rows only.'}, 'count_48h': {'type': 'integer', 'minimum': 0, 'description': 'Prefix rows only.'}, 'tld_count': {'type': 'integer', 'minimum': 0, 'description': 'Prefix rows only.'}, 'digit_ratio': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of sampled labels containing digits when supplied.'}, 'forsale_pct': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': "Percentage of the sample whose nameservers match the provider's configured sale-platform set."}, 'top_ns_ratio': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of the most frequent nameserver in the provider sample.'}, 'pos_end_ratio': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of sampled labels with the keyword at the end.'}, 'top_registrar': {'type': 'object', 'properties': {'pct': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'name': {'type': 'string'}}, 'description': 'Deprecated: the first entry of top_registrars, kept for compatibility.'}, 'most_tld_ratio': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of the most frequent TLD in the provider sample.'}, 'top_registrars': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'pct'], 'properties': {'pct': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'name': {'type': 'string'}}}, 'description': 'Registrar ranking computed by the data source; not derived from nrds.'}, 'might_use_count': {'type': 'integer', 'minimum': 0, 'description': 'Provider-supplied usage-status count under its own classification.'}, 'pos_start_ratio': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of sampled labels with the keyword at the start.'}}}}, 'type': {'enum': ['hot', 'emerging', 'prefix'], 'type': 'string'}, 'error': {'type': 'string', 'description': 'Error message when success is false.'}, 'scope': {'enum': ['all', 'com'], 'type': 'string'}, 'total': {'type': 'integer', 'minimum': 0}, 'success': {'type': 'boolean'}, 'coverage': {'type': 'string', 'description': 'Provider coverage identifier, such as all_gTLDs or com_letters_only.'}, 'data_date': {'type': 'string', 'description': 'Provider data date when supplied; never synthesized from request time.'}, 'updated_at': {'type': 'string', 'description': 'Provider update timestamp when supplied; never synthesized from request time.'}, 'sample_type': {'type': 'string', 'description': 'Provider sampling description, such as filtered_representative_sample.'}, 'window_days': {'type': 'integer', 'minimum': 1, 'description': 'Provider-defined rolling observation window when supplied.'}}}
market
Domain Marketplace Search
Search currently registered domains that carry marketplace listing data, filtered by keyword, TLD, listing status, length, and character set. Results are live domains owned by someone. Related: keyword_data, tld_check.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "Filter by TLD (e.g., 'com', 'net', 'org'). Provide WITHOUT keyword to enter TLD browse mode (gTLDs only; requires a registered account)"}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['length_asc', 'length_desc', 'alpha', 'tld_counter_asc', 'tld_counter_desc'], 'type': 'string', 'description': 'Sort order'}, 'type': {'enum': ['all_alpha', 'all_number'], 'type': 'string', 'description': 'Character set filter'}, 'length': {'enum': ['<5', '5-10', '10-15', '15+'], 'type': 'string', 'description': 'Domain name length filter'}, 'status': {'enum': ['forsale'], 'type': 'string', 'description': "Filter by status: 'forsale' for domains listed for sale"}, 'exclude': {'type': 'string', 'description': 'Negative keywords to exclude'}, 'keyword': {'type': 'string', 'description': 'Brand or industry term (min 2 chars). Substring matching applies at every length, including 2-character terms.'}, 'position': {'enum': ['start', 'end', 'middle', 'all'], 'type': 'string', 'description': "Keyword placement in domain name. Default is 'all' (substring match)."}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphenated domains (true/false)'}, 'no_number': {'type': 'string', 'description': 'Exclude domains containing numbers (true/false)'}, 'tld_count_max': {'type': 'string', 'description': 'Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.'}, 'tld_count_min': {'type': 'string', 'description': 'Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'tld': {'type': 'string'}, 'price': {'type': 'string', 'description': 'Listing price with currency, e.g. 1500 USD. Only present for Atom/Sedo listings'}, 'domain': {'type': 'string'}, 'length': {'type': 'integer'}, 'components': {'type': 'string', 'description': 'Word segmentation of the domain prefix'}, 'marketplace': {'type': 'string', 'description': 'Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale.'}, 'prefix_tld_count': {'type': 'integer', 'description': 'Number of TLDs this prefix is registered across'}}}}, 'page': {'type': 'integer'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matching results across all pages'}}}
market_price
Domain Market Price Check
Check whether a domain is listed for sale on a supported aftermarket and, if it is, the asking price. Returns for_sale with the asking price in USD, make_offer when it is listed without a fixed price, or not_found when no listing was found. Coverage is limited to a few marketplaces, so not_found does not mean the domain is not for sale elsewhere. Related: available, aged.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': "Domain name (e.g., 'example.com')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success', 'domain', 'status'], 'properties': {'error': {'type': 'string'}, 'domain': {'type': 'string'}, 'status': {'enum': ['for_sale', 'make_offer', 'not_found'], 'type': 'string', 'description': 'Market status: for_sale, make_offer, or not_found'}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'currency': {'type': 'string', 'description': 'Price currency (e.g., USD)'}, 'estimated_price': {'type': 'number', 'description': "Seller's listing price (only when status=for_sale)"}}}
monitor
Personalized Domain Monitor
Manage cross-platform domain monitoring tasks that track changes in WHOIS, DNS, and host-supplied page content. Data is encrypted at rest (AES-256-GCM) in a private per-user directory. Actions: - get: retrieve monitors and check eligible WHOIS/DNS targets, returning current and previous data with change flags. - set: create a monitor, subject to the account tier's maximum. - update: save host-supplied page, WHOIS, or DNS state for a monitor. - delete: remove a monitor. - history: list the changes actually observed over time, optionally for one domain. get compares against the previous check only; history answers when a domain changed and what it changed from. Requires a registered account with memory enabled.
Destruktiv Externer Zugriff
Eingabeschema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Monitor task ID (update and delete)'}, 'dns': {'type': 'string', 'description': 'DNS result, backward compatibility (update only)'}, 'days': {'type': 'string', 'description': 'history only: how far back to look, in days. Default 30, maximum 365.'}, 'note': {'type': 'string', 'description': "What to watch for: the user's intent in natural language (set only)"}, 'page': {'type': 'string', 'description': 'Page content summary from web_fetch (update only)'}, 'tools': {'type': 'string', 'description': 'Comma-separated: whois, dns, web_fetch. Default: whois,dns (set only)'}, 'whois': {'type': 'string', 'description': 'WHOIS result, backward compatibility (update only)'}, 'action': {'type': 'string', 'description': "'get', 'set', 'update', 'delete', or 'history'. Defaults to 'get' if not specified."}, 'domain': {'type': 'string', 'description': 'Domain to monitor (set; also optional on history to filter to one domain)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of active monitors (get only)'}, 'message': {'type': 'string', 'description': 'Human-readable result message'}, 'monitor': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'note': {'type': 'string'}, 'tools': {'type': 'string'}, 'domain': {'type': 'string'}, 'created_at': {'type': 'string'}, 'checks_today': {'type': 'integer', 'minimum': 0}}, 'description': 'Created monitor details (set only)'}, 'success': {'type': 'boolean', 'description': 'Whether the request was successful'}, 'monitors': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'domain', 'can_check'], 'properties': {'id': {'type': 'string'}, 'note': {'type': 'string'}, 'tools': {'type': 'string'}, 'domain': {'type': 'string'}, 'last_dns': {'type': 'string'}, 'can_check': {'type': 'boolean'}, 'last_page': {'type': 'string'}, 'last_check': {'type': 'string'}, 'last_whois': {'type': 'string'}, 'next_check': {'type': 'string'}, 'current_dns': {'type': 'string'}, 'dns_changed': {'type': 'boolean'}, 'checks_today': {'type': 'integer', 'minimum': 0}, 'previous_dns': {'type': 'string'}, 'current_whois': {'type': 'string'}, 'whois_changed': {'type': 'boolean'}, 'previous_whois': {'type': 'string'}}}, 'description': 'List of monitors with auto-check results (get only)'}}}
nrds
Newly Registered Domains Search
Search newly registered domains from the last 60 days by keyword, or browse a single TLD without a keyword (browsing requires a registered account). Filter by recency, registration term, length, character set, and sale status; returns the cross-TLD count for each name. New registrations are folded in continuously, typically 15 to 20 minutes after registration. Two coverage limits worth knowing: dates here are day-level, not clock times, and the 60-day history is gTLD-based, so country-code TLDs such as .ai and .io are present only for the last few days. When you need the exact registration time, the name split into words, or full country-code coverage, use nrds_live, which holds the last three days. Related tools: nrds_live, whois, dns, ns_reverse, typosquat
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "Filter by TLD (e.g., 'com', 'ai', 'io')"}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['reg_date_desc', 'reg_date_asc', 'length_asc', 'length_desc', 'period_asc', 'period_desc', 'tld_counter_asc', 'tld_counter_desc', 'alpha'], 'type': 'string', 'description': 'Sort order'}, 'type': {'enum': ['all_alpha', 'all_number'], 'type': 'string', 'description': 'Character set filter'}, 'length': {'enum': ['<5', '5-10', '10-15', '15+'], 'type': 'string', 'description': 'Domain name length filter'}, 'period': {'enum': ['1', '2-5', '6+'], 'type': 'string', 'description': 'Registration term length in years'}, 'exclude': {'type': 'string', 'description': 'Negative keywords to exclude'}, 'keyword': {'type': 'string', 'description': 'Search term (min 2 chars). Substring matching applies at every length, including 2-character terms.'}, 'has_sale': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Filter to domains listed for sale'}, 'position': {'enum': ['start', 'end', 'middle', 'all'], 'type': 'string', 'description': "Keyword placement in domain name. Default is 'all' (substring match)."}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphenated domains'}, 'no_number': {'type': 'string', 'description': 'Exclude domains containing numbers'}, 'days_range': {'enum': ['0-10', '10-20', '20+'], 'type': 'string', 'description': 'Registration recency'}, 'tld_count_max': {'type': 'string', 'description': 'Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.'}, 'tld_count_min': {'type': 'string', 'description': 'Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results. Domains first seen only hours ago (live rows) carry a count of 1.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'price': {'type': 'string', 'description': 'Listing price with currency, e.g. 1500 USD. Only present for Atom/Sedo listings'}, 'domain': {'type': 'string'}, 'marketplace': {'type': 'string', 'description': 'Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale.'}, 'registered_date': {'type': 'string', 'format': 'date'}, 'prefix_tld_count': {'type': 'integer', 'description': 'Number of TLDs the same prefix is registered under'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matching results across all pages'}}}
nrds_live
Live Newly Registered Domains
Search domains registered in the last three days from a live feed covering all TLDs, including country-code ones such as .ai and .io. Returns exact registration and expiry timestamps plus the name split into words; names usually appear within minutes of registration. Use nrds instead for history beyond three days, for registration-term or for-sale filters, for the cross-TLD count, or for deeper paging. nrds carries most of the same recent names, but with day-level dates and a 60-day history that is gTLD-based. Related tools: nrds, whois, dns, typosquat
Nur Lesen
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "Filter by a single TLD (e.g., 'com', 'ai', 'io'). One TLD per call; omit to cover all TLDs."}, 'page': {'type': 'string', 'description': 'Page number for pagination. The live feed pages through the first 10000 matches; narrow the filters to reach beyond that.'}, 'sort': {'enum': ['reg_date_desc', 'reg_date_asc', 'length_asc', 'length_desc', 'alpha'], 'type': 'string', 'description': 'Sort order. Default is reg_date_desc (most recent first).'}, 'type': {'enum': ['all_alpha', 'all_number'], 'type': 'string', 'description': 'Character set filter'}, 'length': {'enum': ['<5', '5-10', '10-15', '15+'], 'type': 'string', 'description': 'Domain name length filter'}, 'exclude': {'type': 'string', 'description': 'Negative keywords to exclude, comma-separated'}, 'keyword': {'type': 'string', 'description': 'Search term, 2-64 characters, letters/digits/hyphens only. Matches anywhere in the name unless position is set.'}, 'position': {'enum': ['start', 'end', 'middle', 'all'], 'type': 'string', 'description': "Keyword placement in domain name. Default is 'all' (substring match). Requires keyword."}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphenated domains'}, 'no_number': {'type': 'string', 'description': 'Exclude domains containing numbers'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'tld': {'type': 'string'}, 'domain': {'type': 'string'}, 'length': {'type': 'integer', 'description': 'Character length of the name before the TLD'}, 'components': {'type': 'string', 'description': 'Word segmentation of the name, space-separated. Absent when the feed supplies none.'}, 'expiry_date': {'type': 'string', 'description': 'Expiry timestamp; the gap from registered_date is the registration term'}, 'registered_date': {'type': 'string', 'description': 'Registration timestamp as supplied by the live feed'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matching results across all pages'}}}
ns_reverse
Reverse NS Lookup
Reverse NS lookup: find gTLD domains hosted on a specific nameserver, filtered by TLD and keyword. Give several nameservers to find domains that use all of them at once (intersection; available on higher plans). Related: whois, dns.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['ns'], 'properties': {'ns': {'type': 'string', 'description': "Target nameserver hostname (e.g., 'ns1.example.com'). Comma-separate up to 10 to match only domains that use all of them (intersection, unlike tld where commas mean any); multiple nameservers are available on higher plans."}, 'tld': {'type': 'string', 'description': "Filter by TLD (e.g., 'com')"}, 'page': {'type': 'string', 'description': 'Page number for pagination'}, 'sort': {'enum': ['length_asc', 'length_desc', 'alpha_asc', 'alpha_desc'], 'type': 'string', 'description': 'Sort order'}, 'keyword': {'type': 'string', 'description': 'Substring filter within domain names'}, 'max_len': {'type': 'string', 'description': 'Maximum domain name length (integer)'}, 'min_len': {'type': 'string', 'description': 'Minimum domain name length (integer)'}, 'no_hyphen': {'type': 'string', 'description': 'Exclude hyphens'}, 'no_number': {'type': 'string', 'description': 'Exclude numbers'}, 'pure_alpha': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Letters only (strictest quality filter)'}, 'pure_digit': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Numbers only'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'Full domain name including TLD'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}}}
preferences
User Preferences & Memory
Manage user preferences and memory settings. Data is encrypted at rest (AES-256-GCM) in isolated per-user directories. Actions: - get: report whether memory is enabled and return saved preferences. - set: save preferences; memory_enabled must be true before any preferences, monitors, or strategies can be stored, and requires explicit user consent. - delete: permanently erase all stored user data (GDPR Article 17). Related: monitor, strategy.
Destruktiv Idempotent
Eingabeschema
{'type': 'object', 'properties': {'style': {'type': 'string', 'description': "'short', 'brandable', 'keyword' (set only)"}, 'action': {'type': 'string', 'description': "'get', 'set', or 'delete'. Defaults to 'get' if not specified."}, 'budget': {'type': 'string', 'description': "'low', 'medium', 'high' (set only)"}, 'industry': {'type': 'string', 'description': 'Industry type (set only)'}, 'memory_enabled': {'type': 'string', 'description': "'true' to enable memory, 'false' to disable. Must be enabled before using monitors or strategies. (set only)"}, 'preferred_tlds': {'type': 'string', 'description': "Comma-separated TLDs, e.g. 'com,net,io' (set only)"}, 'exclude_hyphens': {'type': 'string', 'description': "'true' or 'false' (set only)"}, 'exclude_numbers': {'type': 'string', 'description': "'true' or 'false' (set only)"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'object', 'properties': {'style': {'type': 'string'}, 'budget': {'type': 'string'}, 'industry': {'type': 'string'}, 'memory_enabled': {'type': 'boolean'}, 'preferred_tlds': {'type': 'array'}, 'exclude_hyphens': {'type': 'boolean'}, 'exclude_numbers': {'type': 'boolean'}}, 'description': 'Saved preference data (get only, when memory is enabled)'}, 'message': {'type': 'string', 'description': 'Human-readable result message'}, 'success': {'type': 'boolean', 'description': 'Whether the request was successful'}, 'memory_enabled': {'type': 'boolean', 'description': 'Whether memory is enabled for this user'}, 'monitors_count': {'type': 'integer', 'description': 'Number of active monitors (get only)'}, 'monitors_summary': {'type': 'object', 'properties': {'max': {'type': 'integer'}, 'total': {'type': 'integer'}, 'domains': {'type': 'array', 'items': {'type': 'string'}}, 'last_check': {'type': 'string'}, 'next_check': {'type': 'string'}, 'can_check_count': {'type': 'integer'}}, 'description': 'Monitor overview (get only, when monitors_count > 0)'}, 'strategies_count': {'type': 'integer', 'description': 'Number of active strategies (get only)'}}}
price
TLD Pricing
Return standard registration and renewal price for a TLD. Related: available.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['tld'], 'properties': {'tld': {'type': 'string', 'description': "TLD to query, comma-separated for multiple (e.g., 'com', 'com,io,ai')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['tld'], 'properties': {'tld': {'type': 'string'}, 'currency': {'type': 'string'}, 'renewal_price': {'type': 'number', 'description': 'Annual renewal price (USD)'}, 'register_price': {'type': 'number', 'description': 'First-year registration price (USD)'}, 'transfer_price': {'type': 'number', 'description': 'Transfer price (USD)'}}}}, 'error': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Number of TLDs returned'}, 'success': {'type': 'boolean'}}}
registrar
ICANN Registrar Directory
Look up ICANN-accredited registrars by name, alias, or IANA ID. Returns accreditation status, RDAP endpoint, business contact details, a drop-catch flag, and the parent entity for reseller shells. Around 60 percent of accredited registrars are shells operated by a handful of parents, so parent_id is what tells you who actually runs a name. Related: whois, available, expired.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'page': {'type': 'string', 'description': 'Page number for pagination'}, 'query': {'type': 'string', 'description': "Registrar name, alias, or IANA ID (e.g. 'namecheap', 'gname', '1441')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'IANA registrar ID'}, 'name': {'type': 'string', 'description': 'Registrar name as published by IANA'}, 'email': {'type': 'string', 'description': 'Business email from RDAP'}, 'phone': {'type': 'string', 'description': 'Business phone from RDAP, formatted as tel:...'}, 'status': {'type': 'string', 'description': 'IANA accreditation status, e.g. Accredited, Terminated'}, 'address': {'type': 'string', 'description': 'Business address from the registrar RDAP record, empty when rdap_fetched is false'}, 'contact': {'type': 'string', 'description': 'Registrar contact name, empty when not on file'}, 'country': {'type': 'string', 'description': 'Registrar country, empty when not on file'}, 'website': {'type': 'string', 'description': 'Registrar website, empty when not on file'}, 'rdap_url': {'type': 'string', 'description': 'Registrar RDAP base endpoint, empty when IANA lists none'}, 'parent_id': {'type': 'string', 'description': "Parent entity this registrar belongs to. Usually an IANA ID, but can be a platform label such as 'NameJet / SnapNames.com' when the parent is not itself an accredited registrar. Do not parse as an integer. Empty when the registrar is not a subsidiary"}, 'parent_name': {'type': 'string', 'description': 'Parent entity name, empty when there is no parent'}, 'rdap_fetched': {'type': 'boolean', 'description': 'False means the RDAP record could not be retrieved this time (time budget or source unavailable). It does NOT mean the registrar has no address on file'}, 'is_drop_catch': {'type': 'boolean', 'description': 'True for drop-catch operators and for any registrar whose RDAP host is snapnames.com'}}}, 'description': 'Matching registrars'}, 'page': {'type': 'integer'}, 'error': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Rows on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}, 'total_found': {'type': 'integer', 'description': 'Total matches across all pages'}}}
strategy
Saved User Strategy State
Store user-authored strategy text, execution timestamps, and the most recent result in encrypted per-user storage. This tool does not provide presets, define opportunities, choose domains, or execute a workflow. Requires a registered account with memory enabled.
Destruktiv
Eingabeschema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Saved strategy ID for update or delete.'}, 'name': {'type': 'string', 'description': 'Optional user-defined name for set.'}, 'action': {'enum': ['get', 'set', 'update', 'delete'], 'type': 'string', 'description': 'get, set, update, or delete. Defaults to get.'}, 'result': {'type': 'string', 'description': 'Latest user- or host-supplied result summary for update.'}, 'strategy': {'type': 'string', 'description': 'User-authored text, maximum 500 characters, for set.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'max': {'type': 'integer', 'minimum': 0}, 'error': {'type': 'string'}, 'total': {'type': 'integer', 'minimum': 0}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'strategy': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'strategy': {'type': 'string'}, 'created_at': {'type': 'string'}}}, 'strategies': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'strategy', 'can_run'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'reason': {'type': 'string'}, 'can_run': {'type': 'boolean'}, 'last_run': {'type': 'string'}, 'strategy': {'type': 'string'}, 'runs_today': {'type': 'integer', 'minimum': 0}, 'last_result': {'type': 'string'}}}}}}
tld_check
Cross-TLD Registration Check
Check how a prefix is registered across core TLDs, returning per-TLD status and aggregate counts. Related: bulk_tld, available.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['prefix'], 'properties': {'prefix': {'type': 'string', 'description': "Keyword without extension (e.g., 'openai')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success', 'prefix'], 'properties': {'tlds': {'type': 'object', 'description': 'Status of core TLDs (com, net, org, io, ai, de). Values: registered, for_sale, expiring, or might_available'}, 'count': {'type': 'integer', 'description': 'Total number of TLDs with this prefix registered'}, 'error': {'type': 'string', 'description': 'Error message when success is false'}, 'prefix': {'type': 'string'}, 'success': {'type': 'boolean'}, 'gtlds_count': {'type': 'integer', 'description': 'Number of gTLDs with this prefix registered'}, 'cctlds_count': {'type': 'integer', 'description': 'Number of ccTLDs with this prefix registered'}}}
tld_rank
gTLD Rankings
Rank TLDs by registration volume and related metrics over a chosen period. Related: tld_trends.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'type': {'enum': ['newly', 'active'], 'type': 'string', 'description': "Ranking type: 'newly' for today's new registrations, 'active' for total active domains"}, 'limit': {'type': 'string', 'description': 'Number of results (default 20, max 100)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'tld', 'count'], 'properties': {'tld': {'type': 'string'}, 'rank': {'type': 'integer'}, 'count': {'type': 'integer', 'description': 'New registrations or total active domains'}}}}, 'date': {'type': 'string', 'description': 'Data date (YYYY-MM-DD)'}, 'type': {'type': 'string', 'description': "Ranking type: 'newly' or 'active'"}, 'error': {'type': 'string'}, 'total': {'type': 'integer'}, 'success': {'type': 'boolean'}}}
tld_trends
gTLD Registration Trends
Return registration trend data for a TLD over time, or compare multiple TLDs, in active-total or newly-registered mode. Related: tld_rank, keywords_trends.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'tld': {'type': 'string', 'description': "Single TLD for 'data' mode, gTLDs only (e.g., 'com', 'xyz'). Country-code TLDs are not covered and return an error."}, 'days': {'enum': ['7', '14', '30', '60', '90', '180'], 'type': 'string', 'description': 'Time horizon'}, 'tlds': {'type': 'string', 'description': "Comma-separated TLDs for 'compare' mode (max 5, gTLDs only, e.g. 'xyz,online,shop,store'). Country-code TLDs such as io, ai, co are not covered by this dataset."}, 'type': {'enum': ['active', 'newly'], 'type': 'string', 'description': "'newly' for daily new registrations, 'active' for total active domains"}, 'action': {'enum': ['data', 'compare'], 'type': 'string', 'description': "'data' for single TLD deep-dive, 'compare' for multi-TLD comparison"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'tld': {'type': 'string', 'description': 'TLD name (data mode only)'}, 'data': {'oneOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['date', 'original', 'ma7', 'ma14'], 'properties': {'ma7': {'type': 'integer', 'description': '7-day moving average'}, 'date': {'type': 'string'}, 'ma14': {'type': 'integer', 'description': '14-day moving average'}, 'original': {'type': 'integer', 'description': 'Raw daily count'}}}, 'description': 'Data mode: single TLD trend'}, {'type': 'object', 'description': 'Compare mode: keyed by TLD name', 'additionalProperties': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'original', 'ma7', 'ma14'], 'properties': {'ma7': {'type': 'integer'}, 'date': {'type': 'string'}, 'ma14': {'type': 'integer'}, 'original': {'type': 'integer'}}}}}], 'description': "In 'data' mode: array of data points. In 'compare' mode: object keyed by TLD name, each value is an array of data points."}, 'days': {'type': 'integer'}, 'type': {'type': 'string', 'description': "'newly' or 'active'"}, 'error': {'type': 'string'}, 'notice': {'type': 'string', 'description': 'Compare mode only: present when some requested TLDs had no data; explains which and why.'}, 'success': {'type': 'boolean'}, 'tlds_missing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Compare mode only: requested TLDs that returned no trend data.'}}}
typosquat
Typosquat Scanner
Generate typosquat permutations for a domain and check which variants are registered. Produces omission, transposition, keyboard-adjacent replacement, insertion, repetition, hyphenation, vowel-swap, homoglyph, plural/singular, and TLD-swap variants. Each result includes the variant domain, mutation type, prefix TLD count (how many TLDs the prefix is registered under), and registration date if known. Use for brand protection, phishing detection, and defensive registration planning. Related tools: nrds, ns_reverse, dns, whois.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'Domain to scan (e.g. example.com)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Mutation type: omission, transposition, replacement, insertion, repetition, hyphenation, vowel-swap, homoglyph, plural, tld-swap'}, 'domain': {'type': 'string', 'description': 'Permutation domain'}, 'registered_date': {'type': 'string', 'description': 'WHOIS registration date if the domain is registered (omitted if unregistered or unknown)'}, 'prefix_tld_count': {'type': 'integer', 'description': 'Number of TLDs where this prefix is registered. High count means the prefix is widely claimed.'}}}}, 'total': {'type': 'integer', 'description': 'Number of permutations generated'}, 'domain': {'type': 'string', 'description': 'The input domain'}, 'success': {'type': 'boolean'}}}
unregistered_ai
Unregistered Short .AI Domain Finder
Search short .ai names that were unregistered at the latest data update: 3-letter names and 4-letter CVCV, VCVC, and CCVV shapes (C = consonant, V = vowel), with how many other TLDs each name is registered in. Not re-checked at query time; confirm with available or bulk_available before registering. Related: available, bulk_available.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'page': {'type': 'integer', 'description': 'Page number, 10 results per page. Page depth depends on your plan.'}, 'sort': {'enum': ['length_asc', 'length_desc', 'count_asc', 'count_desc'], 'type': 'string', 'description': 'Sort order'}, 'type': {'enum': ['3letter', 'CVCV', 'VCVC', 'CCVV'], 'type': 'string', 'description': 'Pattern type filter'}, 'exclude': {'type': 'string', 'description': 'Exclude characters (comma-separated)'}, 'keyword': {'type': 'string', 'description': 'Filter by characters in prefix'}, 'no_hyphen': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Exclude hyphens'}, 'no_number': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Exclude numbers'}, 'tld_count': {'enum': ['0-10', '10-50', '50-100', '100+'], 'type': 'string', 'description': 'Filter by cross-TLD registration count'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['success'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['prefix'], 'properties': {'tld': {'type': 'string', 'description': 'Top-level domain (always ai)'}, 'length': {'type': 'integer', 'description': 'Prefix character length (3 or 4)'}, 'prefix': {'type': 'string', 'description': 'Short name without the .ai extension (e.g., tuyu, hamu)'}, 'tld_count': {'type': 'integer', 'description': 'Number of other TLDs this prefix is registered under'}}}}, 'page': {'type': 'integer'}, 'error': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Number of results on this page'}, 'success': {'type': 'boolean'}, 'max_page': {'type': 'integer'}}}
usage
Usage and Quota
Return the current account tier, per-tool-group usage, rate limits, and stateful Monitor and Strategy quotas.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tier', 'tools', 'monitor', 'strategy'], 'properties': {'tier': {'enum': ['guest', 'member', 'lite', 'premium', 'platinum'], 'type': 'string', 'description': 'Account tier.'}, 'tools': {'type': 'array', 'items': {'type': 'object', 'required': ['tool_group', 'tools'], 'properties': {'tools': {'type': 'array', 'items': {'type': 'string'}}, 'unmetered': {'type': 'boolean'}, 'daily_used': {'type': 'integer', 'minimum': 0}, 'tool_group': {'type': 'string'}, 'daily_limit': {'type': 'integer', 'minimum': 0}, 'rate_unlimited': {'type': 'boolean'}, 'daily_remaining': {'type': 'integer', 'minimum': 0}, 'daily_unlimited': {'type': 'boolean'}, 'rate_per_minute': {'type': 'integer', 'minimum': 0}}}, 'description': 'Usage and quota information grouped by tools that share a limit.'}, 'monitor': {'type': 'object', 'required': ['max_items', 'daily_checks', 'min_interval_min'], 'properties': {'max_items': {'type': 'integer', 'minimum': 0}, 'daily_checks': {'type': 'integer', 'minimum': 0}, 'min_interval_min': {'type': 'integer', 'minimum': 0}}}, 'strategy': {'type': 'object', 'required': ['max_items', 'daily_runs', 'min_interval_min'], 'properties': {'max_items': {'type': 'integer', 'minimum': 0}, 'daily_runs': {'type': 'integer', 'minimum': 0}, 'min_interval_min': {'type': 'integer', 'minimum': 0}}}, 'upgrade_hint': {'type': 'string', 'description': 'Optional account-capacity information for tiers that have an upgrade path.'}}}
whois
RDAP WHOIS Registration Info
Return WHOIS/RDAP registration data for a domain: registrar, dates, status, and nameservers. Related: dns.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'Bare domain name such as example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['domain', 'registered'], 'properties': {'domain': {'type': 'string'}, 'status': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Domain status codes'}, 'created': {'type': 'string', 'format': 'date-time', 'description': 'Registration creation date'}, 'expires': {'type': 'string', 'format': 'date-time', 'description': 'Expiration date'}, 'updated': {'type': 'string', 'format': 'date-time', 'description': 'Last updated date'}, 'registered': {'type': 'boolean', 'description': 'Whether the domain is currently registered'}, 'nameservers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Configured nameservers'}, 'registrar_name': {'type': 'string', 'description': 'Registrar name'}}}
Entfernt
safety
1. October 2026 02:44
Geändert
whois
1. October 2026 02:44
Geändert
unregistered_ai
1. October 2026 02:44
Geändert
typosquat
1. October 2026 02:44
Geändert
strategy
1. October 2026 02:44
Geändert
registrar
1. October 2026 02:44
Geändert
preferences
1. October 2026 02:44
Geändert
ns_reverse
1. October 2026 02:44
Geändert
monitor
1. October 2026 02:44
Geändert
market_price
1. October 2026 02:44
Geändert
keyword_data
1. October 2026 02:44
Geändert
ip_lookup
1. October 2026 02:44
Geändert
dns
1. October 2026 02:44
Geändert
deleted
1. October 2026 02:44
Geändert
bulk_tld
1. October 2026 02:44
Geändert
backlink_summary
1. October 2026 02:44
Geändert
active
1. October 2026 02:44
Geändert
whois
29. September 2026 02:51
Geändert
safety
29. September 2026 02:51
Geändert
registrar
29. September 2026 02:51
Geändert
ns_reverse
29. September 2026 02:51
Geändert
nrds
29. September 2026 02:51
Geändert
market
29. September 2026 02:51
Geändert
keywords_trends
29. September 2026 02:51
Geändert
dns
29. September 2026 02:51
Geändert
bulk_available
29. September 2026 02:51
Geändert
backlink_summary
29. September 2026 02:51
Geändert
active
29. September 2026 02:51
Geändert
preferences
25. September 2026 02:51
Geändert
monitor
25. September 2026 02:51