API
Réponses JSON. Sans clé : 30 requêtes par minute et par adresse IP. Avec une clé d'API personnelle gratuite : 300 requêtes par minute.
| Méthode | Route | Description |
|---|---|---|
| GET | /api/v1/corpus/search?q=… | Corpus JURIS LIMEN (Cour de cassation), classé par pertinence, avec facettes. Paramètres : chamber, publication, solution, year_from, year_to, sort (pertinence ou date), page, page_size. |
| GET | /api/v1/caselaw/search?q=… | Jurisprudence. Paramètres : jurisdiction (cc, ca, tj, tcom), operator, date_start, date_end, publication, sort, page, page_size. |
| GET | /api/v1/caselaw/decision/{id} | Décision complète. |
| GET | /api/v1/legislation/search?q=… | Codes et lois. Paramètres : article, code, date (AAAA-MM-JJ), scope (codes ou lois), page. |
| GET | /api/v1/legislation/article/{LEGIARTI…} | Article, période de validité et versions successives. |
| GET | /api/v1/caselaw/administrative?q=… | Jurisprudence administrative (Conseil d'État, CAA, TA). Paramètres : sort (date), page. |
| GET | /api/v1/caselaw/constitutional?q=… | Décisions du Conseil constitutionnel. Paramètres : sort (date), page. |
| GET | /api/v1/caselaw/lf-decision/{CETATEXT…|CONSTEXT…} | Texte intégral d'une décision publiée sur Légifrance. |
| GET | /api/v1/collective-agreements?q=… | Conventions collectives et accords de branche. |
| GET | /api/v1/eu?q=… | Droit de l'Union (EUR-Lex). Paramètres : type (REG, DIR, DEC, JUDG, répétable), page, page_size. |
| GET | /api/v1/scholarship?q=… | Doctrine en accès libre. Paramètres : source (hal ou theses), sort, page, page_size. |
| POST | /api/v1/citations/verify | Corps JSON : { "text": "…", "date": "AAAA-MM-JJ" }. |
| GET | /api/v1/companies/search?q=… | Entreprises par nom, SIREN ou SIRET. |
| GET | /api/v1/bodacc?q=… | Annonces BODACC par SIREN ou nom. |
| GET | /api/v1/status | Sources configurées. |
| GET | /api/v1/openapi.json | Description OpenAPI 3.1 de toutes les routes. |
Description OpenAPI
Toutes les routes, leurs paramètres et leurs erreurs sont décrits au format OpenAPI 3.1 : /api/v1/openapi.json. Importez cette adresse dans Postman, Insomnia, Bruno ou un générateur de client (openapi-generator), ou donnez-la à votre agent IA.
Authentification (facultative)
L'API reste ouverte sans clé. Pour relever votre quota à 300 requêtes par minute, créez une clé personnelle dans votre espace compte (section « Clés d'API », 5 clés au plus) et transmettez-la dans l'un de ces en-têtes :
Authorization: Bearer jl_votre_cle
X-API-Key: jl_votre_cleLa clé n'est affichée qu'une fois, à sa création ; seule son empreinte est conservée. Une clé invalide ou révoquée renvoie 401.
curl -H "Authorization: Bearer jl_votre_cle" "https://juris-limen.vercel.app/api/v1/legislation/search?article=1240&code=Code%20civil"Exemples
curl "https://juris-limen.vercel.app/api/v1/legislation/search?article=1240&code=Code%20civil&date=2015-06-01"curl -X POST "https://juris-limen.vercel.app/api/v1/citations/verify" \
-H "Content-Type: application/json" \
-d '{"text":"Vu l\u0027article L. 1235-3 du code du travail..."}'Erreurs
Les erreurs renvoient { "error": { "code", "message", "source" } } avec le statut HTTP correspondant : 400 requête invalide, 401 clé d'API invalide ou révoquée, 404 introuvable, 429 quota atteint, 502 ou 504 source officielle indisponible, 503 source non configurée.