Ldata.fr

Documentation

API Ldata.fr

Endpoints JSON pour la jurisprudence open data et les codes LEGI. Auth par clé API, mêmes tools côté HTTP et MCP. Paramètres et champs JSON en anglais.

Base: https://ldata.fr/api Authorization: Bearer oj_…

GET /health

À appeler une fois pour voir si les corpus sont là et s’ils sont périmés. No auth. Counts, age_days, stale.

GET /search

Pour trouver des décisions judiciaires (Cassation, cours d’appel, TJ, commerce) — pas le texte de loi, pas le contentieux administratif.

Parameters (English):

  • q — FTS5 query ("phrase", AND/OR/NOT, NEAR/20)
  • mode — fts (default) | semantic | hybrid
  • jurisdiction — cc, ca, tj, tcom
  • location, number, article, outcome
  • after, before — YYYY-MM-DD
  • sort — authority | rank | date
  • syn=true — legal synonyms
  • reversed=true — CA possibly quashed
  • cites / cited_by — citation graph
  • limit · offset
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/search?q=%22faute+grave%22&jurisdiction=ca&syn=true&limit=5"

GET /decisions/:id

Pour ouvrir une décision après /search (texte tronqué par défaut, full=1 pour l’intégral). Les champs graphe sont des aides à la recherche — revérifier verify_url.

GET /caselaw/by-article/:code (jurisprudence)

Décisions qui citent un article (visa), pas le texte de loi. Ex. /caselaw/by-article/L1235-3.

Alias historique /articles/:code. Pour le texte de loi → /codes/….

Legislation — GET /codes/* (texte de loi)

Pour lire ou chercher le texte d’un code (C. civ., C. trav.) — pas la jurisprudence, pas le JO brut, pas les lois consolidées hors code.

  • GET /codes — catalogue
  • GET /codes/:slug — one instrument (no auth)
  • GET /codes/:slug/articles — TOC as of a day
  • GET /codes/:slug/articles/:num — full text for that day
  • GET /codes/:slug/articles/:num/versions — timeline
  • GET /codes/search?q=… — FTS
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/codes/code-du-travail/articles/L1235-3?as_of=2017-01-01"

Statutes — GET /statutes/* (lois, décrets, ordonnances — TNC)

Pour chercher une loi ou un décret consolidé (pas un code, pas le JO du jour). Même corpus LEGI que /codes, jamais un CODE. Lookup par slug, cid (JORFTEXT…) ou NOR.

  • GET /statutes — catalogue TNC (filtres nature, q, nor)
  • GET /statutes/:id — un texte (slug, cid ou NOR)
  • GET /statutes/:id/articles — TOC
  • GET /statutes/:id/articles/:num — texte + vigueur (as_of)
  • GET /statutes/search?q=… — FTS TNC
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/statutes/search?q=d%C3%A9l%C3%A9gations+de+signature&nature=DECRET"

Official journal — GET /official-journal/* (JORF)

Pour chercher ce qui a été publié au Journal officiel (version brute). Pas le texte consolidé (/statutes).

  • GET /official-journal/search?q=… — FTS ; filtres nature, doc_type, after/before
  • GET /official-journal/documents/:id — texte intégral (id JORFTEXT)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/official-journal/search?q=d%C3%A9l%C3%A9gations+de+signature&nature=DECRET"

Legislative dossiers — GET /legislative-dossiers/* (DOLE)

Travaux préparatoires (fonds DILA DOLE). Métadonnées et liens officiels, pas le texte de loi (utiliser /statutes ou /official-journal).

  • GET /legislative-dossiers/search?q=… — FTS ; filtres dossier_type, after/before
  • GET /legislative-dossiers/documents/:id — dossier (id JORFDOLE)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/legislative-dossiers/search?q=projet+de+loi&dossier_type=projet_loi"

Company agreements — GET /company-agreements/* (ACCO)

Accords d'entreprise (fonds DILA ACCO). Distinct des conventions collectives IDCC (/collective-agreements). L'XML DILA est métadonnées (titre, SIRET, IDCC, thèmes) ; le corps de l'accord est sur Légifrance.

  • GET /company-agreements/search?q=… — FTS ; filtres idcc, after/before
  • GET /company-agreements/documents/:id — métadonnées (id ACCOTEXT)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/company-agreements/search?q=t%C3%A9l%C3%A9travail&idcc=1486"

Commercial notices — GET /commercial-notices/* (BODACC)

Annonces commerciales (fonds DILA BODACC : RCS, procédures collectives, comptes). Événements de publication, pas un registre SIRENE vivant — vérifier sur bodacc.fr.

  • GET /commercial-notices/search?q=… — FTS ; filtres edition, doc_type, siren, after/before
  • GET /commercial-notices/notices/:id — avis (id nojo ou public_id)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/commercial-notices/search?q=immatriculation&siren=123456789"

Public procurement — GET /public-procurement/* (BOAMP)

Annonces de marchés publics (fonds DILA BOAMP). Vérifier chaque hit sur boamp.fr.

  • GET /public-procurement/search?q=… — FTS ; filtres doc_type, after/before
  • GET /public-procurement/notices/:id — avis (id IDWEB)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/public-procurement/search?q=travaux+voirie"

EU corpus — GET /eu/* (EUR-Lex + CJUE + CEDH)

Législation européenne consolidée (EUR-Lex, FR) + jurisprudence CJUE + CEDH (HUDOC).

  • GET /eu/search?q=… — FTS ; filtres source=eurlex_law|cjeu|echr, after/before
  • GET /eu/documents/:id — texte intégral (id, CELEX ou ECLI)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/eu/search?q=obligation+alimentaire&source=cjeu&limit=5"

Administrative case-law — GET /admin-caselaw/* (CE, CAA, TA)

Fonds DILA JADE — Conseil d'État, cours administratives d'appel, tribunaux administratifs. Les tribunaux administratifs (source quasi absente de JADE) sont complétés par les données ouvertes officielles du Conseil d'État (opendata.justice-administrative.fr).

  • GET /admin-caselaw/search?q=… — FTS ; filtres source=ce|caa|ta|autre, after/before
  • GET /admin-caselaw/decisions/:id — texte intégral (id CETATEXT, ou OJA_... pour le backfill TA)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/admin-caselaw/search?q=exc%C3%A8s+de+pouvoir&source=ce&limit=5"

Collective agreements — GET /collective-agreements/* (IDCC)

Fonds DILA KALI — conventions collectives nationales, textes attachés (avenants/accords), articles.

  • GET /collective-agreements/search?q=… — FTS ; filtres idcc, doc_type=convention|texte|article, after/before
  • GET /collective-agreements/documents/:id — texte intégral (id KALI ; seuls les articles portent un corps de texte)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/collective-agreements/search?q=p%C3%A9riode+d%27essai&idcc=1979&limit=5"

Tax doctrine — GET /tax-doctrine/* (BOFiP)

BOFiP-Impôts (DGFiP) — doctrine fiscale versionnée et opposable. as_of sélectionne la version opposable à une date.

  • GET /tax-doctrine/search?q=… — FTS ; filtres doc_type, serie, as_of
  • GET /tax-doctrine/documents/:id — texte intégral (id de version, identifiant BOI-… ou id de nœud ; as_of optionnel)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/tax-doctrine/search?q=location+meubl%C3%A9e&as_of=2020-01-01&limit=5"

Conseil constitutionnel — GET /constitutional/* (DC, QPC, LP, AN, SEN)

Fonds DILA CONSTIT — décisions du Conseil constitutionnel depuis 1958 (contrôle de constitutionnalité, QPC, lois de pays, contentieux électoral, et autres contentieux).

  • GET /constitutional/search?q=… — FTS ; filtres decision_type=dc|qpc|lp|an|sen|autre, after/before
  • GET /constitutional/decisions/:id — texte intégral (id CONSTEXT)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/constitutional/search?q=principe+d%27%C3%A9galit%C3%A9&decision_type=qpc&limit=5"

Autorités administratives indépendantes — GET /authorities/* (ADLC, CNIL)

Décisions de l'Autorité de la concurrence (ADLC, jeu de données data.gouv.fr) et délibérations/sanctions de la CNIL (fonds DILA CNIL).

  • GET /authorities/search?q=… — FTS ; filtres authority=adlc|cnil, doc_type (libre, pas d'enum fixe), after/before
  • GET /authorities/documents/:id — texte intégral (id CNILTEXT ou numéro de décision ADLC, ex. 26-DCC-149)
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/authorities/search?q=donn%C3%A9es+personnelles&authority=cnil&limit=5"

Circulaires — GET /circulars/* (instructions des administrations)

Fonds DILA CIRCULAIRES — les circulaires sont publiées en PDF ; le texte intégral est extrait (pdftotext) et indexé quand le PDF est disponible (full_text: true), sinon métadonnées seules (titre, résumé, mots-clés, émetteur) — c'est le cas du stock historique 2009-2014, XML sans PDF.

  • GET /circulars/search?q=… — FTS ; filtres doc_type=organisation_services|directives_ministre|interpretation_juridique|autre, after/before (date de signature)
  • GET /circulars/documents/:id — texte intégral ou métadonnées selon full_text (id ID_CIRCULAIRE) ; url pointe vers le PDF officiel, seul document faisant foi
curl -H "Authorization: Bearer $KEY" \
  "https://ldata.fr/api/circulars/search?q=t%C3%A9l%C3%A9travail&limit=5"

GET /me

Plan and remaining quota.

For LLMs / agents

Golden rule. Each hit includes citation and verify_note. Never cite a decision in a filing without re-checking the official source.