datapulse_disputedb_lookup
datapulse:dnsOutput: JSONRead-onlyUDRP 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 fromdomain: 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
| Parameter | Type | Description |
|---|---|---|
case_number | string | Exact case number. WIPO looks like D2024-0001; Forum is a bare integer like 1733616. Returns one decision. Max length: 64 |
complainant | string | 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 |
domain | string | Domain name, e.g. example.com. Returns decisions where this was among the DISPUTED domains. Max length: 253 |
include_text | boolean | With case_number only: include the decision text, truncated to 8000 characters. Off by default because a full decision is large. Default: false |
limit | integer | 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 |
offset | integer | 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 |
panelist | string | 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 |
respondent | string | 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.