Skip to main content
Glama

Expiring Domains Search

expired
Read-onlyIdempotent

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, character set, and registrar.

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.

Input Schema

NameRequiredDescriptionDefault
tldNoFilter by TLD (e.g., 'com', 'net', 'org')
pageNoPage number for pagination
sortNoSort order
typeNoCharacter set filter
lengthNoDomain name length filter
statusNoexpired = in registrar auction, redemption = owner can reclaim, pending_delete = drops in 1-5 days
excludeNoNegative keywords to exclude
keywordNoSearch term (min 2 chars). Substring matching applies at every length, including 2-character terms.
positionNoKeyword placement in domain name. Default is 'all' (substring match).
age_rangeNoHistorical age of the domain
no_hyphenNoExclude hyphenated domains
no_numberNoExclude domains containing numbers
tld_count_maxNoMaximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.
tld_count_minNoMinimum 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.
registrar_nameNoRegistrar name or part of it, case-insensitive, one value (e.g. 'namecheap' matches 'NameCheap Inc.').

Output Schema

NameRequiredDescriptionDefault
dataNo
pageNo
errorNoError message when success is false
totalNoNumber of results on this page
successYes
max_pageNo
total_foundNoTotal matching results across all pages

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedInput schema / properties / hold
      Removed value: -{
      -  "description": "Registry hold status",
      -  "enum": [
      -    "no_hold",
      -    "has_hold"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / registrar_name
      Added value: +{
      +  "description": "Registrar name or part of it, case-insensitive, one value (e.g. 'namecheap' matches 'NameCheap Inc.').",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / items / properties / registrar_name
      Added value: +{
      +  "description": "Registrar of the domain, empty when unknown. Present on plans that include the registrar_name filter.",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / keyword / description
      Previous value: -"Search term (min 2 chars). IMPORTANT: 2-character keywords match the START of the name only; 'contain' and 'end' are unavailable at this length and total_found will exclude mid-name matches. Use 3+ characters for true substring matching."New value: +"Search term (min 2 chars). Substring matching applies at every length, including 2-character terms."
    • changedInput schema / properties / position / description
      Previous value: -"Keyword placement in domain name. Default is 'all' (substring match). Ignored when keyword is 2 characters (always start)."New value: +"Keyword placement in domain name. Default is 'all' (substring match)."
  3. Changed2 schema fields changed
    • addedInput schema / properties / tld_count_max
      Added value: +{
      +  "description": "Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.",
      +  "type": "string"
      +}
    • addedInput schema / properties / tld_count_min
      Added value: +{
      +  "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.",
      +  "type": "string"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / position / description
      Previous value: -"Keyword placement in domain name. Default is 'contain'. Ignored when keyword is 2 characters (always start)."New value: +"Keyword placement in domain name. Default is 'all' (substring match). Ignored when keyword is 2 characters (always start)."
    • changedInput schema / properties / position / enum
      Previous value: -[
      -  "start",
      -  "end",
      -  "middle",
      -  "contain"
      -]New value: +[
      +  "start",
      +  "end",
      +  "middle",
      +  "all"
      +]
  5. Changed2 schema fields changed
    • changedInput schema / properties / keyword / description
      Previous value: -"Search term (min 2 chars)"New value: +"Search term (min 2 chars). IMPORTANT: 2-character keywords match the START of the name only; 'contain' and 'end' are unavailable at this length and total_found will exclude mid-name matches. Use 3+ characters for true substring matching."
    • changedInput schema / properties / position / description
      Previous value: -"Keyword placement in domain name"New value: +"Keyword placement in domain name. Default is 'contain'. Ignored when keyword is 2 characters (always start)."
  6. Added

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely non-obvious context: registrars may renew after expiry and statuses come from multiple channels, so results can diverge from live WHOIS. It stops short of describing pagination behavior despite a 'page' parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight blocks: the capability and scope come first, the reliability caveat second, then a one-line pointer to related tools. Every sentence carries distinct information and nothing is repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 optional params, rich annotations and an output schema, the description covers what an agent most needs: what population is searched, why timing matters, and that data may be stale versus WHOIS. The main omission is any note on result volume/pagination, which matters for a 15-filter search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the enums are already well documented (e.g. the status enum explains auction/redemption/drop timing). The description's 'Filter by lifecycle status, TLD, age range, length, character set, and registrar' merely recaps a subset of the filters without adding syntax or interaction details. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search domains in the deletion cycle') and enumerates the exact lifecycle states covered (expired, redemption, pending delete). The phrase 'Still held by the current registrant' is the key differentiator from the sibling 'deleted' tool, so an agent can separate them without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: 'time-sensitive acquisition windows' signals the acquisition use case, and the trailing 'Related: monitor, deleted, whois' points at alternatives. However, it never says when to pick monitor/deleted/whois over this tool or when this tool is the wrong choice, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.