JORF Scraper: French Official Journal API (Legifrance + DILA)
Pricing
from $0.00005 / actor start
JORF Scraper: French Official Journal API (Legifrance + DILA)
Scrape the Journal Officiel de la République Française (JORF). Get decrets, lois, arretes by date range or NOR. Full text, NATURE, NOR, ELI URI, MINISTERE, SIGNATAIRES, Legifrance URLs. Compliance, lawtech, public-affairs. $0.005/article.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Walid
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
JORF Scraper — Journal Officiel de la France API (Legifrance + DILA)
⭐ Bookmark this actor → apify.com/dltik/jorf-bulletin-officiel-scraper — Apify ranks by bookmarks, so it directly drives the visibility of this scraper. One click. No signup beyond your existing Apify account.
Scrape the Journal Officiel de la République Française (JORF) — every decret, loi, arrete, ordonnance, decision and avis published in France. Search by date range, NATURE, ministry or NOR code. Get full body text, ELI URI, signataires, Legifrance URL, ministere — all the structured fields compliance, lawtech and public-affairs teams need. No OAuth, no API key, no quota. Built on the official DILA open data feed.
✨ What makes this scraper different
| Feature | This scraper | Generic FR gov scrapers |
|---|---|---|
| Official DILA JORFSIMPLE feed (authoritative source) | ✅ | ❌ HTML scraping |
| Per-article structured records (not raw HTML) | ✅ | ❌ |
| Full body text reconstructed article-by-article | ✅ | ❌ partial |
| NOR, ELI URI + ELI alias, SIGNATAIRES extracted | ✅ | ❌ |
| Filter by NATURE, ministere substring, NOR prefix | ✅ | ❌ |
| Date-range backfill (last ~10 months) | ✅ | ❌ live only |
| No OAuth, no rate limit, no proxy | ✅ | varies |
| Success rate (live) | 99%+ | varies |
| Price per article | $0.005 | unknown |
What can this JORF scraper do?
- 🇫🇷 Full JORF coverage — every decret, loi, arrete, ordonnance, decision, avis, circulaire and deliberation published in the Journal Officiel
- 🗓️ Date-range search — pick any window in the last ~10 months (DILA rolling archive)
- ⚖️ NATURE filter — restrict to DECRET / LOI / ARRETE / DECISION / etc.
- 🏛️ Ministere filter — substring match on
MINISTERE(e.g.interieur,economie,sante) - 🔎 NOR lookup mode — pass exact NOR codes (12-char identifier) and get back the matching articles
- 📝 Full structured fields — NOR, ELI URI, ELI alias, signataires, visas, notice, travaux préparatoires, full body text
- 🔗 Legifrance URL included on every record — direct link to the official text
- 🚀 HTTP-only — no OAuth, no quota, no proxy, no JavaScript
What data can you extract per JORF article?
| Field | Description |
|---|---|
id | JORF text ID (e.g. JORFTEXT000054280280) |
nature | DECRET / LOI / ARRETE / DECISION / ORDONNANCE / AVIS / DELIBERATION ... |
title | Full title (TITREFULL) |
title_short | Short title (TITRE) |
num | Official number (e.g. 2026-518) |
num_parution | JORF issue number (e.g. 0143) |
num_sequence | Sequence within the issue |
nor | NOR code, 12 chars (e.g. INTD2604081D) — primary key for compliance teams |
date_publi | Publication date in JORF (YYYY-MM-DD) |
date_texte | Date of the underlying text (when different from publication) |
origine | Always JORF for this scraper |
ministere | Issuing ministry (e.g. Ministère de l'intérieur) |
autorite | Issuing authority (when set) |
id_eli | Canonical ELI URI (NOR-based) |
id_eli_alias | ELI alias URI (NUM-based) |
legifrance_url | Direct Legifrance URL |
visas | "Vu …" preamble text |
notice | Public-friendly notice (publics concernés, objet, entrée en vigueur) |
travaux_preparatoires | TP/CONTENU section when present |
signataires | Signatories block (Prime Minister, ministers) |
body_text | Full text concatenated article-by-article |
body_length | Character count of body_text |
source_archive | Source DILA archive filename (auditability) |
scraped_at | UTC timestamp of extraction |
How to scrape the Journal Officiel in 5 steps
- Create a free Apify account — no credit card required
- Open JORF Scraper on Apify Store
- Pick a date range — e.g.
dateFrom=2026-06-01,dateTo=2026-06-20(max 60 days) - Optional filters —
natureFilter=["DECRET","LOI"],ministereContains="interieur", ornorList=["INTD2604081D"] - Click Start — get clean JSON in seconds, exportable to CSV / JSON / Excel from the Apify dataset UI
How much does it cost to scrape the JORF?
PAY_PER_EVENT — $0.005 per article extracted ($5 per 1,000 articles). Failed/empty runs not charged.
| Run size | Articles | Apify cost | Time |
|---|---|---|---|
| Quick test | 10 | $0.05 | ~10s |
| Standard | 100 | $0.50 | ~30s |
| Deep | 500 | $2.50 | ~2min |
| Massive | 5,000 | $25.00 | ~15min |
Why this price? Compute + bandwidth per article ≈ $0.0002 → ~95% margin. DILA is free open data; we pass the savings to compliance teams that schedule daily runs at ~150-500 articles/day.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
dateFrom | string (YYYY-MM-DD) | yesterday | Lower bound for DATE_PUBLI |
dateTo | string (YYYY-MM-DD) | today | Upper bound for DATE_PUBLI (inclusive) |
natureFilter | array of strings | — | e.g. ["DECRET","ARRETE","LOI"] |
ministereContains | string | — | Substring match (case-insensitive) on MINISTERE |
norPrefix | string | — | NOR prefix (e.g. INTD for Interieur) |
norList | array of strings | — | Exact NOR codes for lookup mode |
includeBodyText | bool | true | Include full body_text (set false for metadata-only) |
maxResults | integer | 100 | 1–5000 |
proxyConfig | object | none | DILA is unmetered — proxy rarely needed |
Output example
{"id": "JORFTEXT000054280280","nature": "DECRET","title": "Décret n° 2026-518 du 18 juin 2026 complétant la liste des décisions pouvant donner lieu à une enquête administrative en application de l'article L. 114-1 du code de la sécurité intérieure","title_short": "Décret n°2026-518 du 18 juin 2026","num": "2026-518","num_parution": "0143","num_sequence": "1","nor": "INTD2604081D","date_publi": "2026-06-20","date_texte": "2026-06-18","origine": "JORF","ministere": "Ministère de l'intérieur","autorite": "","id_eli": "https://www.legifrance.gouv.fr/eli/decret/2026/6/18/INTD2604081D/jo/texte","id_eli_alias": "https://www.legifrance.gouv.fr/eli/decret/2026/6/18/2026-518/jo/texte","legifrance_url": "https://www.legifrance.gouv.fr/eli/decret/2026/6/18/INTD2604081D/jo/texte","visas": "Le Premier ministre, Sur le rapport du ministre de l'intérieur, Vu le code de la sécurité intérieure ...","notice": "Publics concernés : professionnels de l'automobile ...","travaux_preparatoires": "","signataires": "Fait le 18 juin 2026. Sébastien Lecornu Par le Premier ministre : Le ministre de l'intérieur, Laurent Nunez ...","body_text": "Article 1: Le code de la sécurité intérieure est modifié ...","body_length": 4321,"source_archive": "JORFSIMPLE_20260620-002841.tar.gz","scraped_at": "2026-06-20T08:00:00Z"}
Use cases
- ⚖️ Lawtech & compliance — daily ingestion of every new decret + arrete touching a sector (NOR prefix or ministere substring)
- 🏛️ Public-affairs monitoring — track which ministries are publishing what, in real time
- 📚 Legal-research SaaS — pre-built dataset of French national law, refreshed daily
- 🔎 NOR cross-reference — pull the full text for a list of NOR codes referenced in your case docs
- 🤖 AI legal assistants — clean structured corpus to fine-tune or RAG French-law LLMs
- 📊 Regulatory dashboards — chart decret/loi publication velocity per ministere over time
- 📰 Press monitoring — alert when a new text matching a keyword hits the JORF
Use the actor via API
Python:
import requestsrun = requests.post("https://api.apify.com/v2/acts/dltik~jorf-bulletin-officiel-scraper/run-sync-get-dataset-items",headers={"Authorization": "Bearer YOUR_APIFY_TOKEN", "Content-Type": "application/json"},json={"dateFrom": "2026-06-15","dateTo": "2026-06-20","natureFilter": ["DECRET", "ARRETE"],"ministereContains": "interieur","includeBodyText": True,"maxResults": 200},timeout=300).json()print(f"Scraped {len(run)} JORF articles")
curl:
curl -X POST "https://api.apify.com/v2/acts/dltik~jorf-bulletin-officiel-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"dateFrom":"2026-06-15","dateTo":"2026-06-20","natureFilter":["LOI"],"maxResults":50}'
FAQ
Where does the data come from?
Directly from DILA (Direction de l'Information Légale et Administrative), the official publisher of the JORF. We pull from https://echanges.dila.gouv.fr/OPENDATA/JORFSIMPLE/ — the canonical open-data feed used by Legifrance itself. No HTML scraping, no anti-bot risk.
How far back can I scrape? DILA's JORFSIMPLE feed keeps a rolling window of approximately the last 10 months of daily archives. For older articles (going back to 1947), use the PISTE / Legifrance API with OAuth2 (free, but requires manual registration at piste.gouv.fr).
Do I need an API key? No. The DILA open-data feed is unauthenticated and unmetered. Just plug Apify input and run.
What about scheduled runs at midnight? DILA publishes the daily JORF archive between 00:00 and 03:00 Paris time. Runs scheduled in that window may return an empty result for "today" — schedule after 04:00 UTC for safety.
What's the difference vs the Legifrance MCP Server? The MCP server is for AI agents (Claude, GPT) doing tool calls one at a time. This scraper is for bulk extraction — give it a date range and get a clean dataset. Complementary, not overlapping.
Will my IP get banned? No reports so far — DILA's open-data servers are unmetered. We've stress-tested at hundreds of archives downloaded per day with no throttle. If you somehow get blocked, flip on the optional datacenter proxy.
⭐ Found this JORF 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, capital) | $0.005/result |
| BODACC Scraper | French commercial court announcements (faillites, M&A) | $0.003/record |
| Legifrance MCP Server | French law (codes, jurisprudence, JORF) for AI agents | $0.01/tool-call |
| Pappers MCP Server | French companies for AI agents (Claude / GPT) | $0.01/tool-call |
| BODACC MCP Server | BODACC announcements for AI agents | $0.01/tool-call |
| EUR-Lex Scraper | EU law (regulations, directives, decisions) | $0.008/doc |
| HATVP Scraper | French elected officials' financial declarations | varies |
| BOAMP Scraper | French national public procurement tenders | $0.005/tender |
| France Travail Scraper | 700K+ FR job offers (Pôle Emploi) | $0.0015/job |
| Annuaire Administration FR | French gov agencies & contacts | $0.003/org |
License: MIT · Author: dltik