Legifrance Jurisprudence Scraper: French Case Law API (DILA)
Pricing
from $0.00005 / actor start
Legifrance Jurisprudence Scraper: French Case Law API (DILA)
Search French case law via the official Legifrance / PISTE API: Cour de cassation, Conseil d'Etat, CAA, TA. Decision text, ECLI, articles cites, jurisprudences citees, formations, solutions. Avocats, legal-tech, litigation analytics. $8/1K.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Legifrance Jurisprudence Scraper β French Case Law API (DILA / PISTE)
β Bookmark this actor β apify.com/dltik/legifrance-jurisprudence-scraper β Apify ranks by bookmarks, so it directly drives the visibility of this scraper. One click. No signup beyond your existing Apify account.
Scrape French jurisprudence at scale via the official Legifrance / DILA API (PISTE OAuth2). Cour de cassation, Conseil d'Etat, Cours d'appel, Tribunaux administratifs. Get decision IDs, ECLI, full text, articles cites, jurisprudences citees, formations, dates, solutions β structured JSON, ready to feed legal-NLP, litigation analytics, or AI-assisted research. No HTML scraping. No fragile selectors. Official government API.
What makes this scraper different
| Feature | This scraper | Other legal scrapers |
|---|---|---|
| Official Legifrance DILA API (no HTML scrape) | YES | NO (HTML, fragile) |
| France coverage (Cass, CE, CAA, TA, CA) | YES | partial / Brazil / Spain |
| ECLI extraction | YES | rarely |
articles_cites + jurisprudences_citees graph | YES | NO |
| Full decision text + titres et sommaires | YES | excerpts only |
| OAuth2 token auto-refresh | YES | n/a |
| Cost per decision | $0.008 | $0.01-$0.05 |
What can this scraper do?
- Search 4M+ French decisions indexed by the DILA Legifrance API (Cour de cassation, Conseil d'Etat, Cours d'appel, Tribunaux administratifs, Tribunal des conflits)
- Filter by juridiction + date range + free-text query β combinable, paginated, ~10K results/query cap
- Direct lookup by decision ID (
JURITEXT000048...) β perfect for bulk-enrichment pipelines - Full structured output β ECLI, articles cites, jurisprudences citees, rapprochements, titres + sommaires, full text
- Official OAuth2 auth β token cached, auto-refreshed on 401 (zero touch from your side)
- Datacenter-friendly β no anti-bot, no captcha, no proxy needed
What data can you extract per decision?
| Field | Description |
|---|---|
decision_id | Legifrance JURI ID (e.g. JURITEXT000048465147) |
juridiction | Cour de cassation, Conseil d'Etat, CA Paris... |
formation | Chambre civile, sociale, commerciale, formation pleniere... |
date_decision | YYYY-MM-DD |
numero_affaire | Internal case number |
numero_pourvoi | Pourvoi reference (Cour de cassation only) |
solution | Cassation, rejet, irrecevabilite, annulation, etc. |
titres_et_sommaires | Array of {title, summary} β official editorial titles |
texte_integral | Full decision text (when includeFullText=true) |
articles_cites | Array of {code, article, text} β laws cited |
jurisprudences_citees | Array of {decision_id, reference} β case law cited |
rapprochements | Related decisions cross-linked by DILA editors |
ecli | European Case Law Identifier (e.g. ECLI:FR:CCASS:2023:11.21465) |
url_legifrance | Direct Legifrance URL |
scraped_at | ISO 8601 UTC |
How to scrape French case law in 5 steps
- Create a free PISTE account β official French government API portal
- Subscribe your app to the "DILA - Legifrance" API (free tier ~2000 req/day, no card)
- Copy your
client_id+client_secretfrom PISTE -> Mes applications - Open Legifrance Jurisprudence Scraper on Apify Store, paste keys into the input form (secret fields)
- Set your filters β query (
"rupture brutale relation commerciale"), juridictions (["Cour de cassation"]), date range β click Start
How much does it cost to scrape Legifrance?
PAY_PER_EVENT β $0.008 per decision scraped ($8 per 1,000 decisions). Failed/empty runs not charged.
| Run size | Decisions | Apify cost | Time |
|---|---|---|---|
| Quick test | 10 | $0.08 | ~10s |
| Standard | 100 | $0.80 | ~1 min |
| Deep | 1,000 | $8.00 | ~10 min |
| Massive | 5,000 | $40 | ~1 h |
The official PISTE API is free (no payment to the French government). The Apify fee covers compute + the API client + the structured output. Set includeFullText=false to skip the /consult/juri round-trip if you only need metadata (~50% faster).
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | enum | search | search = query/filter; lookup = direct JURITEXT IDs |
query | string | β | Free-text query across decision content |
decisionIds | array | [] | List of JURITEXT... IDs (lookup mode) |
juridictions | array | [] | e.g. ["Cour de cassation", "Conseil d'Etat"] |
dateFrom | string | β | YYYY-MM-DD inclusive |
dateTo | string | today | YYYY-MM-DD inclusive |
sort | enum | PERTINENCE | PERTINENCE, DATE_DESC, DATE_ASC |
includeFullText | bool | true | Adds /consult/juri call per record for full text + citations |
maxResults | integer | 25 | 1β5000 |
pisteClientId | string (secret) | env PISTE_CLIENT_ID | OAuth2 client ID |
pisteClientSecret | string (secret) | env PISTE_CLIENT_SECRET | OAuth2 client secret |
proxyConfig | object | datacenter | Optional β PISTE rarely blocks |
Output example
{"decision_id":"JURITEXT000048465147","juridiction":"Cour de cassation","formation":"Chambre commerciale","date_decision":"2023-11-15","numero_affaire":"22-13.225","numero_pourvoi":"22-13225","solution":"Cassation partielle","titres_et_sommaires":[{"title":"CONCURRENCE - Pratiques restrictives - Rupture brutale d'une relation commerciale etablie","summary":"Le caractere brutal de la rupture s'apprecie au regard de la duree de la relation..."}],"texte_integral":"LA COUR DE CASSATION, CHAMBRE COMMERCIALE, a rendu l'arret suivant... ","articles_cites":[{"code":"Code de commerce","article":"L442-1","text":"Engage la responsabilite de son auteur..."}],"jurisprudences_citees":[{"decision_id":"JURITEXT000046215511","reference":"Cass. com., 21 sept. 2022, n. 20-22.587"}],"rapprochements":[],"ecli":"ECLI:FR:CCASS:2023:CO00715","url_legifrance":"https://www.legifrance.gouv.fr/juri/id/JURITEXT000048465147","scraped_at":"2026-06-20T14:32:01Z"}
Use cases
- Litigation analytics SaaS β power dashboards a la Doctrine / Predictice over your own infra
- Legal-NLP training corpus β pull 50K Cour de cassation decisions to fine-tune a French legal LLM
- AI legal assistant β feed RAG pipelines (Claude, GPT) with up-to-date jurisprudence
- Citation graph research β exploit
articles_cites+jurisprudences_citeesto map influence networks - Cabinet d'avocats β daily watch on new Cass / CE decisions matching practice-area filters
- Academic legal research β bulk download for empirical studies on judicial outcomes
Use the actor via API
Python:
import requests, osrun = requests.post("https://api.apify.com/v2/acts/dltik~legifrance-jurisprudence-scraper/run-sync-get-dataset-items",headers={"Authorization":f"Bearer {os.environ['APIFY_TOKEN']}","Content-Type":"application/json"},json={"mode":"search","query":"rupture brutale relation commerciale","juridictions":["Cour de cassation"],"dateFrom":"2022-01-01","dateTo":"2026-06-20","sort":"DATE_DESC","includeFullText":True,"maxResults":50,"pisteClientId": os.environ["PISTE_CLIENT_ID"],"pisteClientSecret": os.environ["PISTE_CLIENT_SECRET"],},timeout=600,).json()print(f"Scraped {len(run)} decisions")
curl:
curl-X POST "https://api.apify.com/v2/acts/dltik~legifrance-jurisprudence-scraper/run-sync-get-dataset-items"\-H"Authorization: Bearer $APIFY_TOKEN"\-H"Content-Type: application/json"\-d'{"mode": "lookup","decisionIds": ["JURITEXT000048465147"],"pisteClientId": "'"$PISTE_CLIENT_ID"'","pisteClientSecret":"'"$PISTE_CLIENT_SECRET"'"}'
FAQ
Why do I need PISTE credentials?
The official Legifrance API (DILA) is exposed via the French government API gateway PISTE (api.piste.gouv.fr) under OAuth2. Registration is free (no card), takes 2 minutes, and gives you ~2000 req/day on the free tier β more than enough for a daily monitoring job. We can't include shared credentials because each client_id is rate-limited individually.
Is this scraper legal? Is the data reusable? Yes. Legifrance is the official French government legal publisher, and the DILA API is published under Licence Ouverte v2.0 (Etalab) β meaning you can reuse, redistribute and commercialize the data, including for litigation analytics SaaS, provided you cite the source.
Why not scrape legifrance.gouv.fr HTML directly?
HTML scraping is fragile (DOM changes monthly), incomplete (excerpt-only), and misses structured fields like articles_cites / jurisprudences_citees. The official API is rate-limited but structured, stable, and includes the citation graph.
What's the difference between mode=search and mode=lookup?
search paginates the /search endpoint with query + juridiction + date filters β best to discover decisions matching a topic. lookup calls /consult/juri directly for a list of known IDs β best to enrich an existing list (e.g. citations harvested from another source).
What happens if I hit the PISTE quota?
The actor returns a graceful error record (no raise), preserving any decisions already scraped. Re-run the next day or upgrade your PISTE tier.
β Found this Legifrance scraper useful? Bookmark it β Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility. One click.
Other scrapers by dltik
| Actor | What it does | Price |
|---|---|---|
| Pappers Sirene Scraper | 26M French companies (SIREN, SIRET, dirigeants) | $0.001/result |
| BODACC Scraper | French commercial court announcements | $0.003/record |
| France Travail Scraper | 700K+ French job offers | $0.0015/job |
| JORF Scraper | Journal officiel de la Republique francaise | varies |
| HATVP Scraper | French elected officials' financial declarations | varies |
| Annuaire Administration FR | French gov agencies & contacts | $0.003/org |
| EUR-Lex Scraper | EU legislation (regulations, directives) | $0.008/doc |
| Espacenet Patents Scraper | 130M+ patents (EPO OPS API) | $0.015/patent |
| USPTO Patents Scraper | US patent applications + grants | $0.01/patent |
License: MIT Β· Author: dltik Β· Data source: Legifrance DILA via PISTE (Licence Ouverte v2.0)
