Référence technique
Référence API
Générée depuis /openapi.yaml · Docs texte · llms.txt
Endpoints authentifiés : créez une clé dans le dashboard puis envoyez
Authorization: Bearer oj_….
Base : https://ldata.fr/api
GET
/api/health
Call once to see if corpora are up and how stale they are
Réponses :
200
Corpus available (may be stale)
503
Corpus missing or degraded
GET
/api/find
One full-text query over every corpus (federated search — start here when unsure where to look)
Fans out to each corpus search and returns one hit list grouped by corpus (best match first within a corpus; scores are not comparable across corpora). Costs **one** quota unit whatever the number of corpora. Ids are `<corpus>:<id>` — open them with `/fetch/{id}`. A corpus that fails is listed in `meta.unavailable` instead of failing the whole search.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query (phrases in double quotes) |
| corpora | query | string | Comma list or `all`. Default: caselaw, codes, statutes, admin_caselaw, constitutional, eu, collective_agreements, tax_doctrine, authorities, circulars, official_journal, legislative_dossiers. Opt-in: company_agreements, commercial_notices, public_procurement. |
| limit | query | integer · défaut 3 | Hits per corpus |
Réponses :
200
Federated hits (`results[]` with id, corpus, title, date, url, snippet)
400
BadRequest
401
Unauthorized
429
RateLimited
GET
/api/fetch/{id}
Open any /find hit by its `<corpus>:<id>` (text + metadata + official url)
Normalized document: `id`, `corpus`, `title`, `text`, `url` (official verify link) and the corpus-specific fields under `metadata`. LEGI ids are `codes:<slug>/<number>` or `statutes:<slug>/<number>`. One quota unit.
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | e.g. `caselaw:607975589ba5988459c49ed9`, `codes:code-civil/373-2-2` |
| as_of | query | string | codes/statutes only — article text in force that day (404 if none, no fallback) |
| full | query | boolean | Untruncated text |
Réponses :
200
Normalized document
400
BadRequest
401
Unauthorized
404
Unknown id in that corpus
429
RateLimited
GET
/api/sql/schema
Corpus databases available to /sql, or the tables, columns and FTS tables of one
| Param | In | Type | Description |
|---|---|---|---|
| database | query | string (justice | legis | eu | admin | kali | bofip | constit | authorities | circ | jorf | dole | acco | bodacc | boamp) | Omit to list databases |
Réponses :
200
`databases[]` or `tables[]` (name, type table|view|virtual, columns, indexes)
400
BadRequest
401
Unauthorized
503
Database not built on this server
POST
/api/sql
One read-only SQLite SELECT on one corpus database (GET with the same params also works)
For counts, aggregations, joins and lists the search endpoints cannot express. Runs in a sandbox: read-only connection, authorizer allowlist (no ATTACH, writes, or pragmas other than introspection), one statement, stopped after 60 s, paged (`max_rows` ≤ 1000 + `offset`, follow `next_offset`). Never reaches the users database. Full-text: `SELECT d.* FROM documents_fts JOIN documents d ON d.rowid = documents_fts.rowid WHERE documents_fts MATCH 'terme' ORDER BY rank`.
Réponses :
200
columns, rows (arrays), row_count, offset, has_more, next_offset, truncated_cells, took_ms
400
BadRequest
401
Unauthorized
422
sql_limit_exceeded — over the plan time budget or result too large (charged)
429
RateLimited
503
Database not built on this server
GET
/api/search
Find judicial decisions (Cassation, cours d'appel, TJ, commerce) — not statute text, not CE/CAA/TA
Judicial case-law only (cc/ca/tj/tcom). For the statute text use `/codes/...` or `/statutes/...`. For CE/CAA/TA use `/admin-caselaw/search`.
| Param | In | Type | Description |
|---|---|---|---|
| q | query | string | FTS5 query (`"phrase"`, AND/OR/NOT, NEAR/20, prefix*) |
| mode | query | string (fts | semantic | hybrid) · défaut fts | fts = FTS5 keyword search. semantic = vector search (bge-m3 cosine) over embedded decisions; plain-language q, fact patterns work. hybrid = RRF fusion of both rankings (recommended for natural language; ranking depth grows with the page up to 200 — deeper offset+limit is 400). semantic/hybrid allow only jurisdiction/ after/before/limit/offset alongside q; hits gain `similarity` when the vector leg saw them; meta gains `mode` (always set), `hybrid_depth` (hybrid only), `semantic_corpus` (filtered embedded coverage — a subset of the corpus) and `semantic_index`. Falls back to FTS with `meta.mode=fts` + `meta.semantic_fallback` (stable code) when the embedding backend is unavailable. |
| semantic | query | boolean | Legacy alias of mode=semantic. |
| jurisdiction | query | string | cc | ca | tj | tcom, or comma list e.g. cc,ca |
| location | query | string | |
| number | query | string | |
| article | query | string | e.g. 1240, L132-1, 373-2-2 |
| outcome | query | string (cassation | rejet | irrecevabilite | infirmation | confirmation | autre) | |
| after | query | string | |
| before | query | string | |
| sort | query | string (authority | rank | date) · défaut authority | |
| syn | query | boolean | |
| reversed | query | boolean | |
| cites | query | string | Decision id — returns Cassation decisions it cites |
| cited_by | query | string | Cassation decision id — returns decisions citing it |
| facets | query | string | FTS only. `true` / `1` for both solution+chamber, or comma list `solution,chamber`. Counts are over the top-2000 FTS rank pool (not the full MATCH). meta.facets.solution buckets via norm_solution; meta.facets.chamber top 30 raw chamber labels (empty string → `(none)`). |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 | Pagination offset (max 1000). sort=authority|date re-rank a candidate pool — offset+limit must stay ≤ 2000. hybrid max offset+limit is 200 (see meta.hybrid_depth). |
Réponses :
200
Search results
400
BadRequest
401
Unauthorized
429
RateLimited
GET
/api/decisions/{id}
Open one judicial decision by id from /search (prefer full=false)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| full | query | boolean | Return full text (default truncated) |
Réponses :
200
Decision payload
401
Unauthorized
404
Not found
429
RateLimited
GET
/api/caselaw/by-article/{code}
Find decisions that cite this article number (visa) — not the statute text
Returns **judicial decisions** that cite this article as a visa. This is **not** the statute text — use `/codes/{slug}/articles/{num}` for LEGI. Legacy alias: `/articles/{code}` (same payload, less clear).
| Param | In | Type | Description |
|---|---|---|---|
| code * | path | string | e.g. 373-2-2 or L132-1 |
| jurisdiction | query | string (cc | ca | tj | tcom) | |
| after | query | string | |
| before | query | string | |
| sort | query | string (authority | rank | date) · défaut authority | |
| limit | query | integer · défaut 10 |
Réponses :
200
Case-law hits citing this visa
401
Unauthorized
429
RateLimited
GET
/api/articles/{code}
[Legacy] Same as /caselaw/by-article/{code}
Deprecated path name — prefer `/caselaw/by-article/{code}`. Not statute text.
| Param | In | Type | Description |
|---|---|---|---|
| code * | path | string | |
| jurisdiction | query | string (cc | ca | tj | tcom) | |
| after | query | string | |
| before | query | string | |
| sort | query | string (authority | rank | date) · défaut authority | |
| limit | query | integer · défaut 10 |
Réponses :
200
Same as caselaw/by-article
401
Unauthorized
429
RateLimited
GET
/api/codes
Discover a code's instrument_slug (Code civil, …). Default = codes only
| Param | In | Type | Description |
|---|---|---|---|
| kind | query | string (code | text) | Default is codes only |
| nature | query | string | e.g. CODE, LOI, DECRET, ORDONNANCE |
| q | query | string | Filter title / slug / NOR |
| limit | query | integer |
Réponses :
200
Instrument catalogue
503
Legis corpus missing
GET
/api/codes/search
Full-text search article bodies inside codes — not case-law, not the JO, not consolidated lois/décrets
Code articles only (C. civ., C. trav., …). For consolidated lois/décrets use `/statutes/search`. For the JO as published use `/official-journal/search`.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | |
| code | query | string | Restrict to instrument slug |
| kind | query | string (code | text) | |
| nature | query | string | |
| as_of | query | string | |
| limit | query | integer · défaut 10 |
Réponses :
200
Matching articles (snippets)
400
BadRequest
401
Unauthorized
429
RateLimited
GET
/api/codes/{id}
Metadata for one LEGI instrument by slug — not the article text
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | Slug, e.g. code-civil |
Réponses :
200
Instrument metadata + links
404
Unknown slug
503
Legis corpus missing
GET
/api/codes/{code_id}/articles
Table of contents of one code or consolidated text (structure only, no bodies)
| Param | In | Type | Description |
|---|---|---|---|
| code_id * | path | string | |
| q | query | string | Filter num / breadcrumb |
| as_of | query | string | Structure as of this date (default today) |
| limit | query | integer · défaut 500 |
Réponses :
200
TOC rows (no full text)
401
Unauthorized
404
Unknown slug
GET
/api/codes/{code_id}/articles/{num}
Read one article (code or consolidated law) as in force on as_of — not case-law
Selects the version in force on `as_of` (default today). Full history via `/versions`.
| Param | In | Type | Description |
|---|---|---|---|
| code_id * | path | string | e.g. code-civil |
| num * | path | string | e.g. 373-2-2 or L132-1 |
| as_of | query | string |
Réponses :
200
Article payload
401
Unauthorized
404
Article not found
429
RateLimited
GET
/api/codes/{code_id}/articles/{num}/versions
Version timeline for one code article number (after fetching the article)
| Param | In | Type | Description |
|---|---|---|---|
| code_id * | path | string | |
| num * | path | string |
Réponses :
200
Ordered list of versions (date_start, date_end, status, id)
401
Unauthorized
404
No versions
GET
/api/statutes
Discover a consolidated law/decree/arrêté (not a code) — slug, NOR or cid
Never returns CODE instruments. Codes stay on `/codes`.
| Param | In | Type | Description |
|---|---|---|---|
| nature | query | string | LOI, DECRET, ORDONNANCE, ARRETE, … |
| q | query | string | Filter title / slug / NOR |
| nor | query | string | Exact NOR (case-insensitive) |
| limit | query | integer |
Réponses :
200
TNC instrument catalogue
503
Legis corpus missing
GET
/api/statutes/search
Full-text search consolidated laws and decrees — not codes, not the JO as published
TNC (lois, décrets, ordonnances, arrêtés consolidés). Never returns CODE articles — those are `/codes/search`. Raw JO publication is `/official-journal/search`.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | |
| nature | query | string | |
| instrument_slug | query | string | |
| nor | query | string | |
| as_of | query | string | |
| limit | query | integer · défaut 10 |
Réponses :
200
Matching TNC articles (snippets)
400
BadRequest
401
Unauthorized
429
RateLimited
GET
/api/statutes/{id}
One consolidated non-code text by slug, cid or NOR (codes 404 — use /codes/{slug})
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | instrument_slug, JORFTEXT/LEGITEXT cid, or NOR |
Réponses :
200
Instrument metadata + links
404
Unknown, or this id is a code (use /codes)
503
Legis corpus missing
GET
/api/statutes/{id}/articles
Table of contents of one consolidated law/decree (structure only)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| q | query | string | |
| as_of | query | string | |
| limit | query | integer · défaut 500 |
Réponses :
200
TOC rows (no full text)
401
Unauthorized
404
Unknown or a code
GET
/api/statutes/{id}/articles/{num}
Read one consolidated-law article as in force on as_of
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| num * | path | string | |
| as_of | query | string |
Réponses :
200
Article payload
401
Unauthorized
404
Article not found
429
RateLimited
GET
/api/statutes/{id}/articles/{num}/versions
Version timeline for one consolidated-law article number
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| num * | path | string |
Réponses :
200
Ordered list of versions
401
Unauthorized
404
No versions
GET
/api/eu/search
Search EU legislation (EUR-Lex FR) plus CJEU and ECHR — not French domestic courts
One FTS over EU legislation (EUR-Lex, consolidated versions, French), CJEU case-law and ECHR (HUDOC) judgments. Every hit carries `url` — re-verify on EUR-Lex / HUDOC before citing.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query over titles + full text |
| source | query | string (eurlex_law | cjeu | echr) | |
| after | query | string | Document date, inclusive |
| before | query | string | Document date, exclusive |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 |
Réponses :
200
EU search results
400
BadRequest
401
Unauthorized
429
RateLimited
503
EU corpus missing
GET
/api/eu/documents/{id}
Open one EU document by id, CELEX or ECLI from /eu/search (prefer full=false)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | Document id, CELEX (e.g. 32009R0004) or ECLI |
| full | query | boolean | Return full text (default truncated at 50000 chars) |
Réponses :
200
Document payload
401
Unauthorized
404
Unknown id / CELEX / ECLI
429
RateLimited
503
EU corpus missing
GET
/api/admin-caselaw/search
Find administrative-court decisions (CE, CAA, TA) — not judicial caselaw (/search)
FTS over the DILA JADE fund — Conseil d'État, cours administratives d'appel and tribunaux administratifs. Every hit carries `url` — re-verify on Légifrance before citing.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query over titles + full text |
| source | query | string (ce | caa | ta | autre) | |
| after | query | string | Decision date, inclusive |
| before | query | string | Decision date, exclusive |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 |
Réponses :
200
Administrative case-law search results
400
BadRequest
401
Unauthorized
429
RateLimited
503
Admin corpus missing
GET
/api/admin-caselaw/decisions/{id}
Open one administrative decision by CETATEXT id (prefer full=false)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | CETATEXT id (e.g. CETATEXT000047520000) |
| full | query | boolean | Return full text (default truncated at 50000 chars) |
Réponses :
200
Decision payload
401
Unauthorized
404
Unknown CETATEXT id
429
RateLimited
503
Admin corpus missing
GET
/api/collective-agreements/search
Search industry collective agreements (IDCC / KALI) — not company-level ACCO
FTS over the DILA KALI fund — conventions collectives, their attached textes (avenants/accords) and articles. Every hit carries `url` — re-verify on Légifrance before citing.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query over titles + full text |
| idcc | query | string | IDCC number of the collective agreement, e.g. 1979 |
| doc_type | query | string (convention | texte | article) | |
| after | query | string | date_start, inclusive |
| before | query | string | date_start, exclusive |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 |
Réponses :
200
Collective agreement search results
400
BadRequest
401
Unauthorized
429
RateLimited
503
Kali corpus missing
GET
/api/collective-agreements/documents/{id}
Open one KALI document by id (prefer full=false)
Only `article` documents carry body text; `convention` and `texte` return their indexed titles.
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | KALI id (e.g. KALIARTI000000000202) |
| full | query | boolean | Return full text (default truncated at 50000 chars) |
Réponses :
200
Document payload
401
Unauthorized
404
Unknown KALI id
429
RateLimited
503
Kali corpus missing
GET
/api/tax-doctrine/search
Search BOFiP tax doctrine; pass as_of for the version opposable that day
FTS over BOFiP-Impôts (DGFiP open data) — versioned, opposable administrative doctrine. `as_of` restricts to the version opposable that day. Every hit carries `url` — re-verify on bofip.impots.gouv.fr before citing.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query over titles + full text |
| doc_type | query | string | Normalized content type facet (source-driven, no fixed enum), e.g. commentaire, bareme |
| serie | query | string | BOFiP series code, e.g. IF, TVA, IR, RFPI |
| as_of | query | string | Only the version opposable that day |
| after | query | string | Document date on or after (YYYY-MM-DD, inclusive) |
| before | query | string | Document date strictly before (YYYY-MM-DD, exclusive) |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 |
Réponses :
200
Tax doctrine search results
400
BadRequest
401
Unauthorized
429
RateLimited
503
BOFiP corpus missing
GET
/api/tax-doctrine/documents/{id}
Open one BOFiP document (version id, BOI-… or node); optional as_of
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | Version id (BOI-…-YYYYMMDD), juridical identifiant (BOI-…) or node id (…-PGP) |
| as_of | query | string | Version opposable that day (default latest version) |
| full | query | boolean | Return full text (default truncated at 50000 chars) |
Réponses :
200
Document payload
400
BadRequest
401
Unauthorized
404
Unknown id, or no version opposable as_of
429
RateLimited
503
BOFiP corpus missing
GET
/api/constitutional/search
Search Conseil constitutionnel decisions (DC, QPC, electoral) — not Cassation or CE
FTS over the DILA CONSTIT fund — Conseil constitutionnel decisions since 1958 (contrôle de constitutionnalité, QPC, lois de pays, contentieux électoral, and other contentieux). Every hit carries `url` — re-verify on conseil-constitutionnel.fr before citing.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query over titles + full text |
| decision_type | query | string (dc | qpc | lp | an | sen | autre) | |
| after | query | string | Decision date, inclusive |
| before | query | string | Decision date, exclusive |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 |
Réponses :
200
Constitutional decisions search results
400
BadRequest
401
Unauthorized
429
RateLimited
503
Constit corpus missing
GET
/api/constitutional/decisions/{id}
Open one Conseil constitutionnel decision by CONSTEXT id (prefer full=false)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | CONSTEXT id (e.g. CONSTEXT000051585985) |
| full | query | boolean | Return full text (default truncated at 50000 chars) |
Réponses :
200
Decision payload
401
Unauthorized
404
Unknown CONSTEXT id
429
RateLimited
503
Constit corpus missing
GET
/api/authorities/search
Search ADLC (competition), CNIL (data protection) or AMF OAM filings (not AMF sanctions)
FTS over ADLC (Autorité de la concurrence — antitrust/merger control, sourced from its official data.gouv.fr dataset) and CNIL (data protection, DILA CNIL fund). Every hit carries `url` — re-verify on the authority's official site before citing.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query over titles + full text |
| authority | query | string (adlc | cnil) | |
| doc_type | query | string | Source-driven, no fixed enum (ADLC d|a|mc|dcc|dex|soa; CNIL sanction|mise_en_demeure|...) |
| after | query | string | Decision date, inclusive |
| before | query | string | Decision date, exclusive |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 |
Réponses :
200
Authority decisions search results
400
BadRequest
401
Unauthorized
429
RateLimited
503
Authorities corpus missing
GET
/api/authorities/documents/{id}
Open one ADLC or CNIL document by id (AMF hits already carry a PDF url)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | CNILTEXT id (CNIL) or decision number e.g. 26-DCC-149 (ADLC) |
| full | query | boolean | Return full text (default truncated at 50000 chars) |
Réponses :
200
Decision payload
401
Unauthorized
404
Unknown document id
429
RateLimited
503
Authorities corpus missing
GET
/api/circulars/search
Search government circulaires; prefer the official PDF url (full_text=true means body extracted)
FTS over the DILA CIRCULAIRES fund. Circulaires are published as PDF; the XML carries only metadata. The PDF body is extracted with pdftotext at index time — `snippet` is the full body when `full_text` is true, title + résumé + mots-clés + destinataire otherwise (the 2009-2014 legacy bulk export has no PDF at all; some later drops may be missing one or fail to extract). Every hit carries `url` (the official PDF) — re-verify before citing regardless of `full_text`.
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | FTS5 query over titles + résumé/mots-clés |
| doc_type | query | string (organisation_services | directives_ministre | interpretation_juridique | autre) | |
| after | query | string | Date de signature, inclusive |
| before | query | string | Date de signature, exclusive |
| limit | query | integer · défaut 10 | |
| offset | query | integer · défaut 0 |
Réponses :
200
Circulars search results
400
BadRequest
401
Unauthorized
429
RateLimited
503
Circ corpus missing
GET
/api/circulars/documents/{id}
Open one circulaire by ID_CIRCULAIRE (prefer full=false)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | ID_CIRCULAIRE (e.g. 45652) |
| full | query | boolean | Lift the 50000-char cap (only matters when `full_text` is true) |
Réponses :
200
Circular payload
401
Unauthorized
404
Unknown ID_CIRCULAIRE
429
RateLimited
503
Circ corpus missing
GET
/api/official-journal/search
Search the Journal officiel as published — not the consolidated text (/statutes/search)
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | |
| nature | query | string | LOI, DECRET, ARRETE, ORDONNANCE, DECISION, AVIS, … |
| ministry | query | string | Substring, case-insensitive (e.g. agriculture) — trigram-indexed |
| doc_type | query | string (loi | decret | arrete | ordonnance | decision | avis | autre) | |
| after | query | string | |
| before | query | string | |
| limit | query | integer · défaut 10 | |
| offset | query | integer |
Réponses :
200
JORF hits with Légifrance url
400
BadRequest
401
Unauthorized
429
RateLimited
503
Jorf corpus missing
GET
/api/official-journal/documents/{id}
Open one JO text by JORFTEXT id (prefer full=false)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| full | query | boolean |
Réponses :
200
JORF document payload
401
Unauthorized
404
Unknown JORFTEXT
429
RateLimited
503
Jorf corpus missing
GET
/api/legislative-dossiers/search
Find travaux préparatoires (dossiers) — not the statute text
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | |
| dossier_type | query | string (projet_loi | proposition_loi | autre) | |
| after | query | string | |
| before | query | string | |
| limit | query | integer · défaut 10 | |
| offset | query | integer |
Réponses :
200
DOLE hits with Légifrance url
400
BadRequest
401
Unauthorized
429
RateLimited
503
Dole corpus missing
GET
/api/legislative-dossiers/documents/{id}
Open one legislative dossier by JORFDOLE id
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| full | query | boolean |
Réponses :
200
DOLE document payload
401
Unauthorized
404
Unknown JORFDOLE
429
RateLimited
503
Dole corpus missing
GET
/api/company-agreements/search
Search company-level accords d'entreprise (ACCO) — not industry IDCC (KALI)
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | |
| idcc | query | string | |
| after | query | string | |
| before | query | string | |
| limit | query | integer · défaut 10 | |
| offset | query | integer |
Réponses :
200
ACCO hits with Légifrance url
400
BadRequest
401
Unauthorized
429
RateLimited
503
Acco corpus missing
GET
/api/company-agreements/documents/{id}
Open one ACCOTEXT id (prefer full=false)
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| full | query | boolean |
Réponses :
200
ACCO document payload
401
Unauthorized
404
Unknown ACCOTEXT
429
RateLimited
503
Acco corpus missing
GET
/api/commercial-notices/search
Search BODACC publication notices (RCS, insolvency, accounts) — not a live SIRENE register
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | |
| edition | query | string (a | b | c) | |
| doc_type | query | string | |
| siren | query | string | |
| after | query | string | |
| before | query | string | |
| limit | query | integer · défaut 10 | |
| offset | query | integer |
Réponses :
200
BODACC hits with bodacc.fr url
400
BadRequest
401
Unauthorized
429
RateLimited
503
Bodacc corpus missing
GET
/api/commercial-notices/notices/{id}
Open one BODACC notice by nojo or public_id
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| full | query | boolean |
Réponses :
200
BODACC notice payload
401
Unauthorized
404
Unknown notice
429
RateLimited
503
Bodacc corpus missing
GET
/api/public-procurement/search
Search BOAMP public-procurement notices
| Param | In | Type | Description |
|---|---|---|---|
| q * | query | string | |
| doc_type | query | string | |
| after | query | string | |
| before | query | string | |
| limit | query | integer · défaut 10 | |
| offset | query | integer |
Réponses :
200
BOAMP hits with boamp.fr url
400
BadRequest
401
Unauthorized
429
RateLimited
503
Boamp corpus missing
GET
/api/public-procurement/notices/{id}
Open one BOAMP notice by IDWEB
| Param | In | Type | Description |
|---|---|---|---|
| id * | path | string | |
| full | query | boolean |
Réponses :
200
BOAMP notice payload
401
Unauthorized
404
Unknown IDWEB
429
RateLimited
503
Boamp corpus missing
GET
/api/me
Remaining daily quota for this API key (call near limits)
Réponses :
200
Account info
401
Unauthorized