ParseForge Scrapers

Domain Dispute Decisions Scraper

parseforge/domain-dispute-decisions-scraper

Lead generationDeveloper tools

Scrape UDRP and domain dispute decisions from FORUM and the Czech Arbitration Court: parties, disputed domains, panelists, outcomes, registrars and the full decision text, filtered by brand, domain, panelist or legal issue.

Run this scraper See the API call
Total runs
14
Bookmarked
0
Last modified
7 days ago

This scraper was last updated on .

What does the Domain Dispute Decisions Scraper return?

ParseForge

UDRP Decisions Scraper - National Arbitration Forum & ADR.eu

Every domain name dispute decided by FORUM and the Czech Arbitration Court, in one schema. 44,269 cases at FORUM going back to February 2000 across 82,204 disputed domains, about 6,200 UDRP cases and 1,600 .eu ADR cases at the Czech court. Parties, domains, panelists, registrars, outcomes and the full text of the decision. No login, no browser, no proxy. Export to CSV, JSON, Excel, or XML.

WIPO decides roughly 60% of UDRP cases. This Actor covers the rest: FORUM (formerly the National Arbitration Forum) handles most US filings, and the Czech Arbitration Court runs both a UDRP docket and the sole .eu ADR docket. Both publish to anonymous visitors through the same interfaces their own sites call.

Who uses it What they use dispute decisions for
Trademark and domain lawyers Precedent search by issue, panelist, registrar and outcome before filing
Brand protection teams Every case naming their brand, their competitors, or a repeat cybersquatter
Domain investors Which panelists deny complaints, and the cases where the panel found reverse domain name hijacking
Legal analytics and academics A structured corpus with the reasoning sections separated out
Registrars and registries Which of their names show up in disputes and how those cases end

What it does

Three row shapes across the two providers:

  • โš–๏ธ Decisions (default): one row per case. Provider, case number, policy, case name, every disputed domain with its TLD, complainant and respondent with their domiciles, the panelist, the outcome in the provider's own words and normalised to who won, the decision and filing dates, the proceeding language, the URS stage, and the link to the published decision.
  • ๐Ÿ‘ค Panelists: the Czech Arbitration Court's arbitrator directory with country, the languages they hear cases in and a link to each CV.
  • ๐ŸŒ Disputed domains: the court's register of every domain name that has ever been in a dispute, with the state of that dispute.

And four blocks you can switch on, all read out of the published decision itself:

  • ๐Ÿ“„ Parsed decision: the registrar, the panelists and the panel size, the relief sought and the relief ordered, the outcome per domain, the default and dissent flags, the reverse domain name hijacking finding, and the reasoning split into its sections (findings, discussion, bad faith, rights, legitimate interests, principal reasons).
  • ๐Ÿ“… Case timeline: filing date, response deadline, response received date, the date the panel signed, and the days from filing to decision.
  • ๐Ÿง‘โ€โš–๏ธ Party representatives: counsel and law firm for each side.
  • ๐Ÿ“ Full decision text: the whole decision as plain text with a word count, 2,000 to 6,000 words a case.

Search by what the panel actually decided

FORUM indexes every decision against its own taxonomy of legal issues. Forty of those tags are exposed as a filter, so you can pull only the cases where the panel dealt with phishing, typosquatting, pay per click parking, a gripe site, a parody, a former employee, a celebrity name, a privacy or proxy registration, a pattern of cybersquatting, a domain registered before the trademark, or a finding of reverse domain name hijacking. No other public interface lets you slice UDRP case law that way.

Every decision row contains: source, provider, caseNumber, caseId, policy, caseName, domains, primaryDomain, domainCount, tlds, complainant, complainantDomicile, respondent, respondentDomicile, panelist, outcome, outcomeNormalised, decisionDate, submissionDate, publishedAt, language, ursStage, decisionUrl, caseUrl and scrapedAt. With every block switched on a row carries up to 62 fields.

What you can do with dispute data

Watch a brand.

complainantContains pulls every case a company has brought across both providers, with the domains, the outcomes and the counsel who filed them.

Find the precedent.

legalIssues plus outcomes gives you, for example, every case in which a panel found reverse domain name hijacking, or every phishing case that ended in a transfer.

Profile a panelist.

panelistContains returns their whole docket, and the outcome column shows how often they deny.

Track a registrar.

Switch on the parsed decision and the registrar appears on every FORUM row, so you can count which registrars carry the disputed names.

Check a domain.

domainContains searches the disputed name itself, and the disputed-domain mode gives you the court's whole register to join against your own portfolio.

Why choose this scraper

What you get
The 40% WIPO does not decide FORUM and the Czech Arbitration Court, the two providers missing from every WIPO dataset
One schema across providers Both houses' vocabularies folded onto a single outcome axis, so the rows are comparable
Forty legal issue filters FORUM's own case index, exposed as a filter rather than as a field
The reasoning, not just the result Findings, discussion, bad faith and rights sections separated out per case
Twelve policies UDRP, USDRP, URS, CDRP, STOP, ERDRP, RDRP, .usRS, TDRP and the .eu ADR rules
Back to February 2000 The full FORUM archive, not a recent window
No key, no proxy, no browser Both providers answer anonymous plain HTTP, which is why this costs $5 per 1,000

How it compares

Our WIPO UDRP Decisions Scraper covers the other side of the same market. Run both and you have the whole UDRP record.

Feature ParseForge FORUM & CAC ParseForge WIPO Other actors
FORUM decisions Yes No No
Czech Arbitration Court UDRP Yes No No
.eu ADR decisions Yes No No
WIPO decisions No Yes No
Legal issue filters 40 No No
Full decision text Yes Yes No
Registrar per case Yes Yes No
Price per case $0.005 $0.021 Not sold

What a decision looks like

{
  "source": "FORUM",
  "provider": "FORUM (formerly the National Arbitration Forum)",
  "caseNumber": "2235578",
  "policy": "UDRP",
  "caseName": "Carol Cole Company, Inc. v. Weijie Xu",
  "domains": ["nuface.xyz"],
  "primaryDomain": "nuface.xyz",
  "domainCount": 1,
  "tlds": ["xyz"],
  "complainant": "Carol Cole Company, Inc.",
  "complainantDomicile": "Vista CA US",
  "respondent": "Weijie Xu",
  "respondentDomicile": "Huaian, Jiangsu II CN",
  "panelist": "Steven M. Levy",
  "outcome": "Claim Denied",
  "outcomeNormalised": "Respondent won",
  "decisionDate": "2026-08-27",
  "submissionDate": "2026-07-28",
  "decisionUrl": "https://www.adrforum.com/DomainDecisions/2235578.htm",
  "registrar": "Dominet (HK) Limited.",
  "panelSize": "Single-member",
  "relief": "Denied",
  "orderMade": "Remains with Respondent",
  "reverseDomainNameHijacking": "Not raised",
  "findings": "- Complainant owns trademark rights to the NUFACE mark and the <nuface.xyz> domain name is identical to the mark; - Complainant has not established that Respondent lacks rights or legitimate interests in the disputed domain name where the only use shown by the record is a general offer to sell the domain name..."
}

Configure the run

Run it with no input for the last twelve months across all three dockets.

The last year, all providers:

{ "maxItems": 500 }

Every case a brand has brought, with the reasoning and the counsel:

{
  "complainantContains": "Google",
  "dateFrom": "2015-01-01",
  "includeParsedDecision": true,
  "includeRepresentatives": true,
  "maxItems": 500
}

Reverse domain name hijacking findings at FORUM:

{
  "sources": ["forum"],
  "legalIssues": ["reverseDomainNameHijackingFound"],
  "dateFrom": "2020-01-01",
  "includeParsedDecision": true,
  "maxItems": 300
}

Phishing cases that ended in a transfer, with the full text:

{
  "fullTextSearch": "phishing",
  "outcomes": ["Complainant won"],
  "includeDecisionText": true,
  "maxItems": 200
}

One panelist's whole docket:

{ "panelistContains": "Neil Anthony Brown", "dateFrom": "2010-01-01", "maxItems": 1000 }

Free users

Free-plan runs return up to 10 rows as a preview. Upgrade your Apify plan to pull a whole docket.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the UDRP & Domain Dispute Decisions Scraper.
  3. Pick the providers, the date range and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab, or schedule it weekly to catch new decisions.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent the UDRP record through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/domain-dispute-decisions-scraper"

Then ask: "Which panelists have found reverse domain name hijacking in the last two years?", "Show me every UDRP case brought against a .shop domain in 2026" or "How often does a respondent who files a response actually win?"

Troubleshooting

Why did an empty run return nothing?

FORUM's search matches nothing without a date window, so a run with no dates is defined as the last twelve months. Set dateFrom to go further back; the archive starts on 4 February 2000.

Why is the panelist blank on FORUM rows?

FORUM's case index does not carry it. Switch on the parsed decision and the panelist, the panel size and the registrar are read out of the decision itself.

Why is the registrar N/A on Czech Arbitration Court rows?

The court does not name the registrar in its published decisions. FORUM does.

Why does a legal issue filter return a case whose text never mentions the issue?

The filter uses FORUM's own index of its decisions, which is occasionally broader than the text. The reverseDomainNameHijacking field reports what the decision actually says, so use the filter to narrow and the field to confirm.

Why do the Czech Arbitration Court rows have no submission date?

Its grid does not publish one. Switch on the case timeline and the filing timestamp is read from the decision page.

Why are there fewer .eu rows than UDRP rows?

The .eu docket is smaller: about 1,600 decisions in total against roughly 6,200 on the court's UDRP docket and 44,269 at FORUM. With several providers selected the run splits its row budget between them and hands back whatever a provider does not use.

FAQ

Question Answer
Where does the data come from? The public search API behind adrforum.com and the public decision grids at udrp.adr.eu and eu.adr.eu.
Do I need an API key or a login? No. Both providers answer anonymously.
How far back does it go? FORUM to 4 February 2000. The Czech Arbitration Court's dockets start later.
Does it include WIPO? No. WIPO is a separate provider; use our WIPO UDRP Decisions Scraper for that side.
Which policies are covered? UDRP, USDRP, URS, CDRP, STOP, ERDRP, RDRP, .usRS, TDRP and the .eu ADR rules.
Can I get the full text of a decision? Yes, switch on the full decision text, or take just the reasoning sections with the parsed decision.
Are pending cases included? Yes, and they carry N/A for the decision date. Switch on "only decided cases" to drop them.
How fast is it? 400 cases with the parsed decision, timeline and counsel took 21 seconds on the platform.
How many rows per run? Free plan: 10. Paid: as many as the filters match, up to 50,000.
Is this an official FORUM or ADR.eu product? No. It is unofficial and reads only publicly available decisions.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by FORUM, the Czech Arbitration Court, ICANN, EURid or WIPO. It reads only publicly available decisions. Nothing here is legal advice.

What input does the Domain Dispute Decisions Scraper accept?

FieldTypeWhat it doesDefault
outputMode string (3 options) Decisions is one row per case. Panelists is the Czech Arbitration Court's panelist directory. Domains is the court's list of every domain name that has been disputed. decisions
sources array FORUM handles most US filings. The Czech Arbitration Court runs both a UDRP docket and the .eu ADR docket. Leave empty for all three. ["forum","cac-udrp","cac-adreu"]
maxItems integer Stop after this many rows. Free plans are capped at 10. 100
dateFrom string Earliest decision date. Defaults to twelve months ago; FORUM's search needs a window and returns nothing without one. not set
dateTo string Latest decision date. Defaults to today. not set
filedFrom string Earliest date the complaint was submitted. not set
filedTo string Latest date the complaint was submitted. not set
fullTextSearch string Search the body of the decisions, not just the case metadata. Both providers support it. not set
caseNumber string FORUM claim number (2225233) or CAC case number (CAC-UDRP-108881). not set
caseNameContains string The case caption, usually "Complainant v. Respondent". not set
domainContains string Matches any disputed domain in the case. not set
tlds array Keep only cases with a domain under one of these, for example com, eu, us, shop. not set
complainantContains string The brand owner bringing the case. not set
respondentContains string The domain holder defending the case. not set
complainantDomicileContains string FORUM only. Matches the city, state or country as filed. not set
respondentDomicileContains string FORUM only. not set
panelistContains string The arbitrator who decided the case. not set
policies array UDRP is the global policy. USDRP covers .us, CDRP covers .ca, URS is the rapid suspension track, ADR.eu covers .eu. Leave empty for all. not set
outcomes array Both providers use their own words for the result; this filters on the normalised outcome. not set
legalIssues array FORUM tags every decision against its own issue taxonomy. Pick one or more to keep only the cases where the panel dealt with them. Ignored for the Czech Arbitration Court, which has no equivalent index. not set
responseType string (3 options) FORUM only. Any
language string The .eu ADR docket records the language of the proceeding; it also filters the panelist directory by language spoken. not set
panelistCountry string Panelists mode only. not set
onlyMultiDomainCases boolean Keep only complaints that covered two or more domain names. false
onlyDecidedCases boolean Drop pending and suspended filings that have no decision date yet. false
includeParsedDecision boolean Opens each decision document and adds the registrar, the panelists, the relief ordered, the reverse domain name hijacking finding and the reasoning sections. Slower and billed per document. false
includeCaseTimeline boolean Filing date, response deadline, response received date and days from filing to decision. false
includeRepresentatives boolean Counsel and law firm for each side, where the decision names them. false
includeDecisionText boolean The whole decision as plain text. Large: a decision runs 2,000 to 6,000 words. false

How much does the Domain Dispute Decisions Scraper cost?

from $4.45 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.0178 to $0.02
Decision One domain dispute case: provider, case number, policy, case name, every disputed domain with its TLD, complainant and respondent with their domiciles, the outcome in the provider's own words and normalised to who won, the decision and filing dates, the proceeding language and the link to the published decision. $0.00445 to $0.005
Panelist One arbitrator from the Czech Arbitration Court directory: name, country, the languages they hear cases in and the link to their CV. $0.00356 to $0.004
Disputed domain One domain name from the court's register of everything that has been disputed, with its TLD and the state of the dispute. $0.00178 to $0.002
Docket read One request to a provider: a FORUM search or a page of a Czech Arbitration Court grid. Never charged for more requests than the run wrote rows. $0.00356 to $0.004
Decision document Optional. The published decision opened and read, which is one extra request per case. Charged only when the document came back. $0.00445 to $0.005
Parsed decision Optional. The registrar, the panelists and the panel size, the relief sought and ordered, the per-domain outcome, the default and dissent flags, the reverse domain name hijacking finding and the reasoning sections. Charged only when the document yielded them. $0.00356 to $0.004
Case timeline Optional. Filing date, response deadline, response received date, the date the decision was signed and the days from filing to decision. Charged only when the document carries the dates. $0.00267 to $0.003
Party representatives Optional. Counsel and law firm for the complainant and the respondent. Charged only when the decision names at least one of them. $0.00267 to $0.003
Full decision text Optional. The whole decision as plain text with its word count, 2,000 to 6,000 words a case. Charged only when the text came back. $0.00267 to $0.003

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Domain Dispute Decisions Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~domain-dispute-decisions-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "outputMode": "decisions",
    "sources": [
      "forum",
      "cac-udrp",
      "cac-adreu"
    ],
    "maxItems": 100,
    "responseType": "Any",
    "onlyMultiDomainCases": false
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "outputMode": "decisions",
  "sources": [
    "forum",
    "cac-udrp",
    "cac-adreu"
  ],
  "maxItems": 100,
  "responseType": "Any",
  "onlyMultiDomainCases": false
}

What do users say about the Domain Dispute Decisions Scraper?

No reviews yet. Be the first.

How do I report an issue with the Domain Dispute Decisions Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Domain Dispute Decisions Scraper on Apify All scrapers