MCP documentation menu

datapulse_disputedb_lookup

Legal ResearchScope: datapulse:dnsOutput: JSONRead-only

UDRP decisions by case number, disputed domain, complainant, respondent, or panelist

Description

Look up UDRP decisions by case number, disputed domain, complainant, respondent, or panelist. Factual lookup, not semantic search — use datapulse_disputedb_search for questions about legal reasoning, panel views, or policy.

Provide exactly ONE of case_number, domain, complainant, respondent, or panelist.

  • case_number — one decision in full. Retired identifiers still resolve.
  • domain — every dispute over that domain. These are domains a case was brought AGAINST.
  • complainant — what a company has filed. This is the enforcement-history question, and it is NOT answerable from domain: a brand’s own domain is absent from disputed-domain lists precisely because nobody disputed it. Matches complainant records ONLY, so a name appearing on the other side of a dispute does not contaminate the answer.
  • respondent — who a dispute was brought against. Matches respondent records only.
  • panelist — who DECIDED cases. A panelist is the adjudicator, not a party. One panelist is written many ways, so a word search finds them but counting by exact name UNDERCOUNTS.

domain is an EXACT match; complainant, respondent and panelist match by WORDS — every whitespace-separated word of the query must appear somewhere in the recorded name, in any order, as a case-insensitive substring (so “Lyon” finds “Lyons”; there is no stemming). Matching is LITERAL — no fuzzy or phonetic matching, so “Newman” never finds “Neuman”; on zero results retry with the surname alone or a shorter distinctive word before concluding the name is absent. A bare label is rejected (domain: "equifax" is refused as a single label — a label is not a domain name), while complainant: "apple" correctly matches Apple Inc., Snapple and Applebee’s. Case, trailing dots and Unicode (IDN) spelling are normalized away — the punycode and Unicode forms of a name reach the same row. A leading www. is sent as part of the name (query reads domain:www.tesla.com) and the database matches it away itself, so it finds the same decisions. When normalizing changed more than letter case, the response carries submitted_domain with what you sent.

complainant, respondent and panelist need at least 3 characters in the whole query, not in each word (“G. Lyons” is fine; “G.” alone is not). A shorter query matches most of the corpus, so it is refused with an error rather than answered with an arbitrary sample.

Parties are LISTS. A dispute names as many complainants and respondents as it names, each with seq (the provider’s order — first complainant is the lead filer) and source (provider/structural/delimited = read from the provider; llm = a reconstruction of a value whose delimiter was lost). Respondent lists routinely include privacy services and registrars alongside the registrant. kind is reserved to label those (entity, privacy_service, registrar, placeholder) but is currently EMPTY on every row — do not filter on it, and do not read its absence as “not a real party”.

An EMPTY complainants list means “could not be determined”, never “filed nothing”.

panel — the panelists who DECIDED the case, one row each with seq. It is present on about 83% of decisions: metadata-only cases (terminated, withdrawn) never had a panel, and roughly 2,100 decided cases carry a panel line that could not be parsed. An absent panel means “not recorded”, not “no panel”. A UDRP panel is one member or three; anything else is a parsing artifact, not a real panel.

outcome is one of transfer, denied, cancelled, terminated, withdrawn, split decision, or case active (still pending).

A domain marked malformed: true is not one domain name — it is several run together, e.g. “nexusautopartsusa.comnexusautopartsus.com” (about 15 such rows remain after the upstream repair). Cite the case number and omit the domain. Note source is PROVENANCE, not a quality claim: a fused value genuinely came from the provider, so source: "provider" says nothing about whether it is intact. Detection is conservative and cannot be complete — “dolphins.comjets.com” is a valid domain name — so an ABSENT flag is not proof a value is clean.

List results are capped and report the true total, sorted newest first (decision_date DESC). If count exceeds the rows returned, you are seeing the most recent subset — say so rather than presenting it as complete. Page through a long complainant, respondent or panelist history with offset: truncated means rows exist beyond THIS page, and the note names the next offset.

A case number that does not exist returns count: 0 with a note, NOT an error. Treat it as “no such case”, not as a transient failure to retry.

CITATION RULE: cite only what appears in these results, using the citation field verbatim. Do not cite UDRP cases from memory.

Parameters

ParameterTypeDescription
case_numberstring
Exact case number. WIPO looks like D2024-0001; Forum is a bare integer like 1733616. Returns one decision.
Max length: 64
complainantstring
Company or person who FILED disputes, e.g. “Microsoft”. Every word must appear in the recorded name, in any order, each as a case-insensitive substring; at least 3 characters. Returns what they have filed.
Min length: 3Max length: 200
domainstring
Domain name, e.g. example.com. Returns decisions where this was among the DISPUTED domains.
Max length: 253
include_textboolean
With case_number only: include the decision text, truncated to 8000 characters. Off by default because a full decision is large.
Default: false
limitinteger
Max rows for domain, complainant, respondent and panelist lookups (1-100). Omit or pass 0 for the default of 20; values above 100 are capped to 100. Each row is ~1.3 KB, so ask for 100 only when the total warrants it.
Default: 20Min: 0Max: 100
offsetinteger
Rows to skip before the first returned, for paging complainant, respondent and panelist lookups. Default 0. Pages are stable — rows are ordered decision_date DESC then case_number DESC — so offset 0 with limit 20 is rows 1-20 and offset 20 is rows 21-40; the response note names the next offset. Ignored on case_number and domain lookups, which never exceed one page.
Default: 0Min: 0Max: 100000
paneliststring
The panelist who DECIDED cases, e.g. “Neil Anthony Brown”. Give the name’s words in any order: each must appear as a case-insensitive substring, so “Debrett Lyons” finds “Debrett G. Lyons” and “Mr. Debrett Gordon Lyons” alike. A panelist is the adjudicator, NOT a party — these are cases they judged, not cases they were in. COUNTING CAVEAT: one panelist is written many ways (“The Honourable Neil Anthony Brown QC”, “Hon. Neil Brown”, and 200-odd more), so a word search finds them but grouping or counting by exact name UNDERCOUNTS badly. Report what the search returns; do not present a per-panelist total as complete. At least 3 characters.
Min length: 3Max length: 200
respondentstring
Person or entity a dispute was brought AGAINST, e.g. “Fundacion Comercio Electronico”. Every word must appear in the recorded name, in any order, each as a case-insensitive substring. A decision names as many respondents as it names — the registrant, and often the privacy service or registrar alongside them. At least 3 characters.
Min length: 3Max length: 200
Input schema (JSON)
{
  "additionalProperties": false,
  "properties": {
    "case_number": {
      "description": "Exact case number. WIPO looks like D2024-0001; Forum is a bare integer like 1733616. Returns one decision.",
      "maxLength": 64,
      "type": "string"
    },
    "complainant": {
      "description": "Company or person who FILED disputes, e.g. \"Microsoft\". Every word must appear in the recorded name, in any order, each as a case-insensitive substring; at least 3 characters. Returns what they have filed.",
      "maxLength": 200,
      "minLength": 3,
      "type": "string"
    },
    "domain": {
      "description": "Domain name, e.g. example.com. Returns decisions where this was among the DISPUTED domains.",
      "maxLength": 253,
      "type": "string"
    },
    "include_text": {
      "default": false,
      "description": "With case_number only: include the decision text, truncated to 8000 characters. Off by default because a full decision is large.",
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "description": "Max rows for domain, complainant, respondent and panelist lookups (1-100). Omit or pass 0 for the default of 20; values above 100 are capped to 100. Each row is ~1.3 KB, so ask for 100 only when the total warrants it.",
      "maximum": 100,
      "minimum": 0,
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "description": "Rows to skip before the first returned, for paging complainant, respondent and panelist lookups. Default 0. Pages are stable — rows are ordered decision_date DESC then case_number DESC — so offset 0 with limit 20 is rows 1-20 and offset 20 is rows 21-40; the response note names the next offset. Ignored on case_number and domain lookups, which never exceed one page.",
      "maximum": 100000,
      "minimum": 0,
      "type": "integer"
    },
    "panelist": {
      "description": "The panelist who DECIDED cases, e.g. \"Neil Anthony Brown\". Give the name's words in any order: each must appear as a case-insensitive substring, so \"Debrett Lyons\" finds \"Debrett G. Lyons\" and \"Mr. Debrett Gordon Lyons\" alike. A panelist is the adjudicator, NOT a party — these are cases they judged, not cases they were in. COUNTING CAVEAT: one panelist is written many ways (\"The Honourable Neil Anthony Brown QC\", \"Hon. Neil Brown\", and 200-odd more), so a word search finds them but grouping or counting by exact name UNDERCOUNTS badly. Report what the search returns; do not present a per-panelist total as complete. At least 3 characters.",
      "maxLength": 200,
      "minLength": 3,
      "type": "string"
    },
    "respondent": {
      "description": "Person or entity a dispute was brought AGAINST, e.g. \"Fundacion Comercio Electronico\". Every word must appear in the recorded name, in any order, each as a case-insensitive substring. A decision names as many respondents as it names — the registrant, and often the privacy service or registrar alongside them. At least 3 characters.",
      "maxLength": 200,
      "minLength": 3,
      "type": "string"
    }
  },
  "type": "object"
}

Generated from the live server (DataPulse MCP 1.0.0) on October 1, 2026.