ICJ Judgments and Advisory Opinions PDF Scraper
Pricing
from $8.00 / 1,000 record scrapeds
ICJ Judgments and Advisory Opinions PDF Scraper
Scrape every ICJ judgment, advisory opinion, order, and separate / dissenting opinion. Returns paragraph-numbered text (matches international-law citation style), the operative paragraph (dispositif), and document metadata, across all contentious and advisory cases since 1946, in English and French.
Pricing
from $8.00 / 1,000 record scrapeds
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
ICJ Case Law, Judgment & Advisory Opinion Scraper
Scrape case law from the International Court of Justice, the United Nations' principal judicial organ. Returns judgments, advisory opinions, orders, and separate / dissenting opinions as paragraph-numbered records — the citation format international lawyers actually use — across contentious and advisory cases dating back to 1946, in English and French.
ICJ Scraper Features
- Extracts every judgment, advisory opinion, order, declaration, separate opinion, dissenting opinion, and written pleading the Court has published for a case.
- Returns paragraph-numbered text, matching how international-law practitioners cite ICJ decisions ("para. 142").
- Captures the operative paragraph — the "FOR THESE REASONS, THE COURT..." dispositif — as its own field, separate from the reasoning.
- Pulls a best-effort judge vote tabulation out of the dispositif when the Court records a roll call, with each judge's role (President, Vice-President, member, ad hoc) and vote.
- Parses applicant and respondent states straight out of the case title for contentious cases.
- Cross-references which judges filed a separate or dissenting opinion on a given judgment.
- Covers both English and French editions. A document published in only one combined bilingual edition still comes back, tagged accordingly.
- Three ways to scope a run: every case, a specific case number, or everything published since a given date.
Who Uses ICJ Case Data?
- International law firms — track jurisprudence on treaty interpretation, state responsibility, and sovereignty disputes without re-reading the docket by hand.
- Foreign-ministry legal teams — monitor a case your state is a party to, or benchmark how the Court has ruled on a comparable dispute.
- Academics and researchers — build a citation-accurate corpus for scholarship, without re-typing paragraph numbers out of a PDF.
- Geopolitical risk analysts — follow high-profile proceedings (genocide-convention cases, maritime and territorial disputes) as new orders and judgments land.
- Journalists — get the dispositif the moment it's published, in the Court's own numbered-paragraph form, instead of paraphrasing a press release.
How the ICJ Scraper Works
- Pick a scope — every case, one or more case numbers, or everything published since a date.
- The scraper walks the Court's case index and pulls every document on each matching case page.
- Each document is returned as paragraph-numbered text with its own dispositif, document type, and case metadata attached — no separate lookup needed to know which case or party a document belongs to.
Input
{"mode": "since_date","sinceDate": "2024-01-01","documentTypes": ["judgment", "advisory_opinion", "order"],"languages": ["en"],"maxItems": 100}
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | since_date | all_cases walks every case; case_ids visits only the case numbers you list; since_date walks every case but keeps only documents on or after sinceDate. |
caseIds | array | [] | ICJ case numbers to scan (e.g. 192 for the South Africa v. Israel genocide-convention case). Used only in case_ids mode. |
sinceDate | string | 2023-01-01 | ISO date. Only documents on or after this date are returned. Used only in since_date mode. |
documentTypes | array | judgment, advisory opinion, order, separate opinion, dissenting opinion | Which document types to include. Also accepts declaration, written pleading, and oral proceeding (verbatim record). Leave empty for every type. |
languages | array | ["en"] | Which language edition of each document to return — en, fr, or both. |
maxItems | integer | 10 | Maximum number of document records to return. |
Example — pull every document for one case:
{"mode": "case_ids","caseIds": ["192"],"documentTypes": [],"languages": ["en", "fr"],"maxItems": 50}
ICJ Scraper Output Fields
{"case_id": 192,"case_name": "Application of the Convention on the Prevention and Punishment of the Crime of Genocide in the Gaza Strip (South Africa v. Israel)","case_type": "contentious","applicant_state": "South Africa","respondent_state": "Israel","filing_date": "2023-12-29","status": "pending","document_type": "order","document_date": "2026-05-21","document_language": "en","document_phase": "provisional_measures","judges": ["President Salam (president) — with", "Tomka (member) — with"],"separate_opinion_authors": [],"dissenting_opinion_authors": [],"document_url": "https://www.icj-cij.org/sites/default/files/case-related/192/192-20260521-ord-01-00-en.pdf","document_paragraphs": ["1. The Court begins its reasoning here.", "2. The Court continues..."],"operative_paragraph_text": "For these reasons, The Court, (1) Unanimously, Finds that it has jurisdiction..."}
| Field | Type | Description |
|---|---|---|
case_id | integer | ICJ case number. |
case_name | string | Full case name. |
case_type | string | contentious or advisory. |
applicant_state | string | Parsed from the case title. Null for advisory opinions and joint-application cases. |
respondent_state | string | Parsed from the case title. |
filing_date | string | Date the case was introduced (ISO date). Null when the Court's own case index hasn't recorded one yet. |
status | string | pending or concluded. |
document_type | string | judgment, advisory_opinion, order, declaration, separate_opinion, dissenting_opinion, written_pleading, or oral_proceeding. |
document_date | string | Date the document was issued (ISO date). |
document_language | string | en, fr, or bi (bilingual edition, used when no separate-language file exists). |
document_phase | string | Procedural phase tag when the Court publishes one (provisional measures, preliminary objections, intervention). Null otherwise. |
judges | array | Judge vote tabulation, one entry per recorded vote. Populated when the dispositif includes a roll call — orders and shorter rulings often don't carry one. |
separate_opinion_authors | array | Judges who filed a separate opinion attached to this document. |
dissenting_opinion_authors | array | Judges who filed a dissenting opinion attached to this document. |
document_url | string | Direct PDF URL on icj-cij.org. |
document_paragraphs | array | Numbered paragraphs as "N. text" strings, matching international-law citation style. |
operative_paragraph_text | string | The dispositif. Null for documents that don't carry one, like press releases or verbatim records. |
FAQ
How do I scrape ICJ judgments?
Run this actor with mode: "case_ids" and the case number, or mode: "since_date" to pull everything published after a given date. No account or API key is needed — the Court publishes its decisions openly.
What data can I get from ICJ case law?
Judgments, advisory opinions, orders, and separate or dissenting opinions, returned with paragraph numbering, the operative dispositif, case metadata, and a best-effort judge vote tabulation where the Court recorded one.
Can I filter by document type or language?
Yes. documentTypes narrows a run to just judgments, just orders, or any combination; languages picks English, French, or both.
Do I need an account or API key for icj-cij.org?
No. The Court's case documents are public. You configure the scope you want and run the actor.
Does this cover advisory opinions, or only contentious cases?
Both. case_type tells you which one you're looking at, and advisory opinions get their own document_type rather than being lumped in with judgments.
Need More Features?
Need a different filter, an additional field, or a related court's case law? File an issue or get in touch.
Why Use This ICJ Scraper?
- Citation-accurate — paragraph numbering preserved exactly as the Court publishes it, so you can cite a finding the way a brief would.
- Dispositif as its own field — the operative paragraph is separated from the reasoning that precedes it, which saves you from parsing a 300-page PDF to find the one paragraph that actually decided the case.
- Bilingual by design — English and French editions are both addressable, which matters for a Court that publishes authoritative text in both languages.