ParseForge Scrapers

ICSID Investor-State Arbitration Scraper

parseforge/icsid-arbitration-cases-scraper

Lead generationDeveloper tools

Scrape the ICSID case database: 1,150+ investor-state arbitration and conciliation cases since 1972 with parties and nationalities, treaty invoked, tribunal, counsel, procedural timeline and published decisions.

Run this scraper See the API call
Total runs
13
Bookmarked
0
Last modified
8 days ago

This scraper was last updated on .

What does the ICSID Investor-State Arbitration Scraper return?

ParseForge

ICSID Cases Scraper - Investment Arbitration Database

Download the ICSID case database as data: all 1,156 investor-state arbitrations and conciliations registered since 1972, with the parties and their nationalities, the treaty invoked, the tribunal, the counsel, the full procedural timeline and every published decision. No login, no API key, no browser. Export to CSV, JSON, Excel, or XML.

ICSID publishes each case on its own page and offers no export. This Actor reads the case index in one request, applies your filters, then opens each case page and returns it as a flat row, so a question like "every claim against Mexico under USMCA, with the arbitrators and the procedural history" becomes a spreadsheet instead of an afternoon of clicking.

Who uses it What they use ICSID data for
Investment arbitration practices Case history by state, treaty, sector and arbitrator before advising or drafting
Arbitrator selection and challenges Who sat on what, who appointed them and how often, with nationalities
Litigation funders and claims buyers Pipeline of pending claims by respondent state and sector, with the procedural stage
Governments and ministries of justice Every claim filed against a state, its counsel and its current posture
Academics and NGOs A 50-year ISDS panel with treaties, outcomes and published decisions

What it does

The database holds 1,156 cases: 304 pending and 852 concluded, made up of 1,050 ICSID Convention arbitrations, 91 Additional Facility cases and 15 conciliations, registered between 1972 and this year. Every row carries:

  • ๐Ÿงพ The case: case number, full case title, type, status, ICSID case id and the case page URL.
  • ๐Ÿ—“๏ธ The dates: registration date and year, date the tribunal was constituted, days since registration, days from registration to the last published development.
  • ๐Ÿ‘ฅ The parties: claimants and respondents as clean lists, with the nationalities ICSID reports and the respondent state on its own field.
  • ๐Ÿ“œ The claim: subject of dispute, economic sector, the instruments invoked (BIT, ECT, USMCA, investment law or contract) and the applicable rules.
  • ๐Ÿง‘โ€โš–๏ธ The tribunal (optional): every arbitrator, president, conciliator or annulment committee member, with nationality and who appointed them.
  • ๐Ÿ›๏ธ The counsel (optional): party representatives for each side with their city and country.
  • ๐Ÿ“† The procedural timeline (optional): every dated step ICSID publishes, tagged with the proceeding it belongs to. A 250 case sample averaged 17 steps per case.
  • ๐Ÿ“„ Published decisions (optional): awards, decisions and procedural orders with date, language and PDF link, and optionally the extracted text of the documents themselves.
  • โš–๏ธ The outcome (optional): award rendered, settlement or discontinuance, annulment decided, jurisdiction declined, or still pending.

Every row contains: caseNumber, caseId, caseTitle, caseUrl, caseType, status, isPending, dateRegistered, registrationYear, daysSinceRegistration, daysRegistrationToLastActivity, dateOfConstitution, claimants, claimantsText, claimantNationalities, claimantCount, respondents, respondentsText, respondentState, subjectOfDispute, economicSector, instrumentsInvoked, instrumentsText, applicableRules, languages, proceedings, proceedingCount, latestDevelopmentDate, latestDevelopment, arbitratorCount, publishedDecisionCount, caseDetailRead and scrapedAt.

What you can do with ICSID case data

Map the claims against a state.

respondentStateContains: "Mexico" returns every case filed against Mexico with the treaty invoked, the sector, the tribunal and where each case stands. In a 250 case sample of registrations since 2010 the most sued states were Mexico (25), Honduras (15), Colombia (12), Peru (10) and Panama (10).

Research an arbitrator.

arbitratorNameContains keeps only the cases where that person sat, and the tribunal block says whether they presided and which side appointed them, which is the record you need for an appointment or a challenge.

Track a treaty.

treatyContains: "Energy Charter" or "USMCA" pulls every claim under that instrument, with the sector and the outcome.

Build a pipeline of pending claims.

caseStatuses: ["Pending"] with the timeline block gives each live case with its latest procedural step, so you can see which claims are at jurisdiction, at hearing or awaiting an award.

Why choose this scraper

What you get
The whole database 1,156 cases in one run instead of one case page at a time
Parties parsed properly Claimant lists split on the nationality, so "Glenfarne Asset Company, LLC (U.S.)" survives intact instead of breaking at its own comma
The tribunal with appointments Arbitrator, nationality and the party who appointed them, on 78% of the cases in a 250 case sample
The full procedural record Every dated development, tagged by proceeding, averaging 17 steps per case
The documents 833 published decisions across those 250 cases, with links and optional text extraction
Filters that cost one request State, claimant, status, type and registration date are applied to the index before any case page is opened

How it compares

No other Apify Actor covers ICSID. Against the ICSID website the difference is export, filters and the parsed tribunal; against commercial ISDS databases the difference is that this reads only what ICSID publishes for free.

Feature ParseForge icsid.worldbank.org Commercial ISDS databases
Bulk export (CSV, JSON, Excel) Yes No Paid
All 1,156 cases with parties and treaty Yes Yes, one page at a time Yes
Tribunal with nationality and appointer Yes Yes, on the page Yes
Procedural timeline as rows Yes As prose Sometimes
Decision PDFs with extracted text Yes Links only Paid
Filter by arbitrator, treaty or sector Yes Sign-in free search form Yes
Price $0.007 per case Free, manual Subscription

What a case looks like

{
  "caseNumber": "ARB/26/33",
  "caseId": "6",
  "caseTitle": "Access Business Group LLC v. United Mexican States",
  "caseUrl": "https://icsid.worldbank.org/cases/case-database/case-detail?CaseNo=ARB%2F26%2F33",
  "caseType": "Arbitration",
  "status": "Pending",
  "isPending": "Yes",
  "dateRegistered": "2026-07-15",
  "registrationYear": 2026,
  "daysSinceRegistration": 44,
  "daysRegistrationToLastActivity": 10,
  "dateOfConstitution": "Not Disclosed",
  "claimants": ["Access Business Group LLC"],
  "claimantsText": "Access Business Group LLC",
  "claimantNationalities": ["U.S."],
  "claimantCount": 1,
  "respondents": ["United Mexican States"],
  "respondentsText": "United Mexican States",
  "respondentState": "United Mexican States",
  "subjectOfDispute": "Food products enterprise",
  "economicSector": "Agriculture, Fishing & Forestry",
  "instrumentsInvoked": ["USMCA (United States-Mexico-Canada Agreement)"],
  "instrumentsText": "USMCA (United States-Mexico-Canada Agreement)",
  "applicableRules": "ICSID Convention - Arbitration Rules",
  "languages": [],
  "proceedings": ["Original Proceeding"],
  "proceedingCount": 1,
  "latestDevelopmentDate": "2026-07-25",
  "latestDevelopment": "Following appointment by the Claimant, D. Brian King (U.S.) accepts his appointment as arbitrator.",
  "arbitratorCount": 0,
  "publishedDecisionCount": 0,
  "caseDetailRead": "Yes",
  "scrapedAt": "2026-08-27T17:27:11.491Z"
}

A case whose tribunal is not yet constituted has no composition to publish, which is why arbitratorCount is 0 and dateOfConstitution is Not Disclosed on a claim registered six weeks ago.

Configure the run

Run it with no input for the newest registrations. Filters on status, type, parties and dates are applied to the index, so they cost nothing; sector, arbitrator and treaty filters are applied as each case page is read.

The 50 most recent cases:

{ "maxItems": 50 }

Every pending claim against a state, with the tribunal and where the case stands:

{
  "respondentStateContains": "Spain",
  "caseStatuses": ["Pending"],
  "includeTribunal": true,
  "includeProceduralTimeline": true,
  "maxItems": 100
}

Energy claims since 2015 with the counsel and the outcome:

{
  "registeredFrom": "2015-01-01",
  "economicSectors": ["Oil, Gas & Mining", "Electric Power & Other Energy"],
  "includeRepresentatives": true,
  "includeCaseOutcome": true,
  "maxItems": 300
}

One case with its decisions read in full:

{
  "caseNumbers": ["ARB/24/1"],
  "includePublishedDecisions": true,
  "includeDecisionText": true,
  "maxDecisionDocuments": 5
}

Free users

Free-plan runs return up to 10 cases as a preview. Upgrade your Apify plan to pull the whole database.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the ICSID Investor-State Arbitration Scraper.
  3. Set a state, a treaty or a date range, tick the blocks you want, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab, or schedule a weekly run to catch new registrations.

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 ICSID case database through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/icsid-arbitration-cases-scraper"

Then ask: "Which claims against Colombia are still pending and under which treaty?", "List the cases where Bernard Hanotiau presided" or "How many mining cases were registered since 2020?"

Troubleshooting

Why is the tribunal empty?

Because it is not constituted yet, or ICSID has not published it. In a 250 case sample the composition was published for 78% of cases; the missing ones are mostly claims registered in the last few months. You are not charged for a block that returned nothing.

Why are economicSector or subjectOfDispute filters slower than the others?

The case index carries only the case number, parties, status and registration date. Sector, subject, treaty and arbitrator live on the case page, so those filters are applied after each page is read while status, state, claimant, type and date filters are applied to the index first.

Why fewer rows than I asked for?

Your filters matched fewer cases. The log prints how many cases matched the index filters before any page was opened.

Why is a decision document missing its text?

Some ICSID PDFs are scans without a text layer, and a few older documents are not online at all. Those are skipped and not charged.

Why is the run slow with decision text on?

Each document is a separate download of a full arbitral award, often hundreds of pages. Keep maxDecisionDocuments at 3 or less for bulk runs; 250 cases with the four page-level blocks and no documents take 90 seconds.

FAQ

Question Answer
What is ICSID? The International Centre for Settlement of Investment Disputes, part of the World Bank Group, is the main forum for investor-state arbitration under investment treaties and contracts.
How many cases are there? 1,156 registered between 1972 and today: 304 pending, 852 concluded.
Is the data public? Yes. Every field comes from ICSID's public case index and case pages, and the decision PDFs it publishes itself.
Does it include the awards? It includes every decision ICSID has published, with links, and optionally their extracted text. Awards that the parties have not consented to publish are not on the site at all.
Can I filter by treaty? Yes, with treatyContains. Instruments are written as ICSID writes them, for example "BIT Colombia - Spain 2005" or "Energy Charter Treaty".
Can I find every case an arbitrator sat on? Yes, with arbitratorNameContains. It matches presidents, arbitrators, conciliators and annulment committee members.
Does it cover UNCITRAL or SCC cases? Only the ones ICSID administers, which the applicable rules field marks as UNCITRAL. Cases administered elsewhere are not in this database.
How current is it? The index is live. During testing it carried a case registered five weeks earlier and developments from the previous month.
How many cases per run? Free plan: 10. Paid: the whole database.
Is this an official ICSID or World Bank product? No. It is unofficial and reads only public pages.

๐Ÿ†˜ 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 ICSID or the World Bank Group. It collects only publicly available data from the ICSID case database. Case records name real people and companies, so you are responsible for using the data in compliance with applicable laws, including GDPR, CCPA, and PIPL, and with ICSID's terms. Do not use it to identify, profile, or target individuals.

What input does the ICSID Investor-State Arbitration Scraper accept?

FieldTypeWhat it doesDefault
caseNumbers array ICSID case numbers to fetch directly, for example ARB/24/1, ARB(AF)/20/3 or CONC/21/1. not set
startUrls array Paste ICSID case detail URLs such as https://icsid.worldbank.org/cases/case-database/case-detail?CaseNo=ARB/24/1. not set
maxItems integer Free users: limited to 10 items (preview). Paid users: up to 1,000,000. 10
caseStatuses array Keep only cases in these states. The database holds 304 pending and 852 concluded cases. not set
caseTypes array Keep only these proceeding types, read from the case number: 1,050 ICSID Convention arbitrations, 91 Additional Facility cases and 15 conciliations. not set
economicSectors array Keep only cases in these sectors, as ICSID classifies them on the case page. not set
respondentStateContains string Keep only cases against this state, for example "Spain", "Venezuela" or "Egypt". not set
claimantContains string Keep only cases brought by a claimant whose name contains this text. not set
arbitratorNameContains string Keep only cases where an arbitrator, president or committee member matches this text. Applied after the case page is read. not set
treatyContains string Keep only cases invoking a matching instrument, for example "Energy Charter", "NAFTA" or a country name in a BIT. not set
registeredFrom string Earliest registration date, as YYYY-MM-DD. The database starts in 1972. not set
registeredTo string Latest registration date, as YYYY-MM-DD. not set
sortBy string (3 options) Order the cases before reading them. newest
includeTribunal boolean Add every arbitrator, president or committee member with their nationality and who appointed them. false
includeRepresentatives boolean Add counsel and law firms for each side with their city and country. false
includeProceduralTimeline boolean Add every dated procedural step ICSID publishes for the case, from registration to the latest filing. false
includePublishedDecisions boolean Add the published awards, decisions and procedural orders with their dates, languages and PDF links. false
includeCaseOutcome boolean Classify how the case ended from its procedural record: award rendered, discontinued, settled, annulment decided or jurisdiction declined. false
includeDecisionText boolean Download the published decision PDFs and extract their text. Slow and charged per document, so keep the document limit low. false
maxDecisionDocuments integer How many published decisions to download per case when decision text is on. Maximum 20. 3

How much does the ICSID Investor-State Arbitration Scraper cost?

from $3.56 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
ICSID case One case from the ICSID database with its case page read: case number and title, type, status, registration and tribunal constitution dates, claimants and respondents with nationalities, subject of dispute, economic sector, instruments invoked, applicable rules, languages, the proceedings on file and the latest development. $0.00623 to $0.007
Case index The one request that reads ICSID's full case index, which is what makes filtering by state, claimant, status or registration date possible without opening every case. Charged once per run. $0.00356 to $0.004
Tribunal composition Optional. Every arbitrator, president, conciliator or annulment committee member on the case, with their nationality and the party that appointed them. Charged only when the tribunal is published. $0.00445 to $0.005
Party representatives Optional. Counsel and law firms for each side with their city and country. Charged only when representatives are published. $0.00445 to $0.005
Procedural timeline Optional. Every dated procedural step ICSID publishes for the case, from registration through constitution, hearings, awards and annulment, tagged with the proceeding it belongs to. Charged only when steps exist. $0.00534 to $0.006
Published decisions Optional. The awards, decisions and procedural orders ICSID has published for the case, with their date, language and PDF link. Charged only when the case has published documents. $0.00445 to $0.005
Case outcome Optional. How the proceeding ended, read off the procedural record: award rendered, settlement or discontinuance, annulment decided, jurisdiction declined or still pending. Charged only when the record says. $0.00534 to $0.006
Decision document text Optional. One published decision PDF downloaded from ICSID's document host and its text extracted, with the page and character count. Charged per document and only when text came back. $0.0089 to $0.01

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 ICSID Investor-State Arbitration 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~icsid-arbitration-cases-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "maxItems": 10,
    "sortBy": "newest",
    "includeTribunal": false,
    "includeRepresentatives": false,
    "includeProceduralTimeline": false
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "maxItems": 10,
  "sortBy": "newest",
  "includeTribunal": false,
  "includeRepresentatives": false,
  "includeProceduralTimeline": false
}

What do users say about the ICSID Investor-State Arbitration Scraper?

No reviews yet. Be the first.

How do I report an issue with the ICSID Investor-State Arbitration 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 ICSID Investor-State Arbitration Scraper on Apify All scrapers