Checking a French association by its RNA number
An association is a counterparty like any other: the bank opening its account, the local authority granting it a subsidy, the platform passing donations on to it all need to know that it exists, that it has not been dissolved and what its stated purpose is. An association does not always have a SIREN, and without one it is absent from the Sirene register: its identifier is the RNA number. Three routes serve it, out of the national register of associations (RNA) and the Official Journal of associations (JOAFE): find its number from its title, read its record, read its notices; and the watchlist accepts that number as a target.
See a real response (free) Get the quote for /v1/associations/recherche
Three routes, three questions
The path is three calls: find the number, read the record, read the notices. Each one is paid separately, at the price in the routes table below.
Finding the RNA number from the title
/v1/associations/recherche?q= searches the title in two steps: first the titles that start with the query, then similar titles (trigram similarity on the normalised title), for typos, swapped words and acronyms. At most 20 results, each with its title, RNA number, position, postal code, town, creation date, its SIREN when confirmed, its source file (fichier_source), how it was found (correspondance) and a score_confiance. Optional filters: code_postal (a 2 to 5 digit prefix), departement, position (active, dissoute, supprimee). An RNA number typed into q comes out first.
Each step reads at most 3000 candidate titles, taken in no particular order, and only applies the filters (postal code, department, position) after that bound, before keeping the best 20. When a step reaches the bound and at least one of its candidates passes the filters, the response says so (resultats_partiels, note_completude). When none of its candidates passes the filters, that step's saturation is not stated: the response, served as 200 and charged, only carries what the other step found, sometimes nothing, even if matching associations exist beyond the bound. Narrowing the title reduces the candidates; a filter does not. The call has a 6-second budget: a step that does not fit in it is named in etages_abandonnes, and if a step did not fit and nothing was found, the route answers 503 without charging.
Reading the record
/v1/association/{rna} returns what the association declared: title and short title, purpose and purpose codes, nature, grouping (simple, union, federation), position (active, dissolved, deleted), dates of creation, last declaration, publication in the Official Journal and dissolution, registered office with its municipality code, website, public-utility number as declared, managing prefecture. The SIREN is only added when Sirene confirms an association legal category (92xx), and siren_origine says where it came from: a SIRET declared by the association that designates a business of another category is not attached.
The identifier is the RNA number, W followed by 9 characters, or, for an association that has declared nothing since 2009, the legacy identifier as published. An identifier unknown to the register returns 404 and a malformed one 400: neither is charged.
Reading the Official Journal notices
/v1/association/{rna}/annonces returns the JOAFE notices carrying that number, most recent first: identifier, issue and its date, type (creation, modification, dissolution, rectificatif, annulation, suspension or autre, the published code always being served alongside), declaration date and place, old and new titles, purpose and new purpose, registered office, website, themes and the name of the notice's PDF file. At most 200 notices per response: beyond that, tronque says so.
What the register covers, and what it does not
The national register of associations covers associations whose registered office is in France, mainland and overseas, excluding Moselle, Bas-Rhin and Haut-Rhin: in those departments, local-law associations are registered with the court's register of associations, not in the RNA. Every record and search response restates this in its couverture field.
The ministry's export combines two files. The first holds the associations with an RNA number, created or having declared a change since 2009. The second holds those that have declared nothing since 2009, under a legacy identifier: their record is served with fraicheur.qualite = "inconnue", because the “active” position there is the one of the last known declaration, not a present-day fact.
The export is monthly and loaded every month. If the last loaded snapshot is more than 45 days old, the record and the search answer 503 without charging anything: serving an absence from a stale snapshot would be a false statement.
An RNA record reproduces what the association declared to the ministry: it is neither a check of its actual activity nor a review of its accounts. The public-utility number is served as declared and does not amount to recognition of public utility.
The JOAFE: how far back we look
The JOAFE is published weekly, on Tuesdays, and its issue is loaded every Tuesday. Notices are linked to an association by the RNA number alone: the feed carries neither a SIREN nor any person's name.
Depth has a limit, and it comes from the source. The DILA's open archives go back to 2004, but the XML, which carries the RNA number, only starts in 2012 (a mixed year, fully XML from 2013): from 2004 to 2011, the issues contain only HTML fragments without an RNA number, which cannot be linked to any association. The response does not pass those years off as empty: it states its window.
Every response carries its couverture: first and last loaded issues, number of issues, and the incomplete years if any are missing in between (annees_incompletes). If the last loaded issue is more than 14 days old, the route answers 503 without charging anything.
An empty notice list says that no notice carrying this number appeared in the loaded window; it is served as 200, at the route's price. It does not say that the association never published anything: what precedes the loaded window is not served, and nothing before 2012 can be linked. The response envelope therefore classes that emptiness as a non-conclusive absence (absence_non_conclusive), never as a measured absence.
What is not served
- No personal columns from the RNA: the ministry's export carries the declarant's name, a correspondence address (often a home), a courtesy title and a free-text remarks field; none of those columns is loaded into our database, so there is nothing to mask.
- No officer data: every record restates this in its warning (
disclaimer). - No e-mail address: the field is documented by the ministry but absent from the published exports.
- The
publication_web_autoriseeflag is passed on as the association declared it; it is null on the legacy file, which does not carry it. - The notices' PDF files are named, not reproduced.
Sources and licences
Both sources are under an open licence, and every response names its own in its source field. RNA: Ministry of the Interior, Licence Ouverte 2.0 (Etalab open licence), attribution required, monthly export published on data.gouv.fr. JOAFE: DILA, Licence Ouverte 2.0, weekly XML feed.
Watching an association
/v1/surveillance/creer accepts an RNA number as a target, W followed by 9 characters, in the same list of 1 to 100 targets as company numbers and dirigeant:Name targets, and at the same price per target (see the routes table). Every day, the target is compared with the JOAFE: each new notice carrying that number is reported with its identifier, type and issue date, by signed webhook, by e-mail digest, or by polling the watch with its token.
The first run records the notices already published without reporting them: only later ones are reported. If the loaded JOAFE is more than 14 days old, the source is marked as down for that run, never read as “nothing to report”. A legacy identifier, without a W, is not accepted as a target: it has no JOAFE notice.
From a title to a daily watch, in four calls
The identifiers below are those of each route's free sample: an association found by its title and a postal-code prefix, its record, the notices of another association (the one in that route's sample), then a 30-day watch on the first one. Without payment, each call returns its 402 quote; the next section explains how to settle it.
The four calls
GET /v1/associations/recherche?q=croix+rouge&code_postal=75
GET /v1/association/W751004076
GET /v1/association/W011006690/annonces
GET /v1/surveillance/creer?cibles=W751004076&duree=30
How you pay
Every route is paid per call, in USDC or EURC on the Base network, over the x402 protocol: no account to create, no API key, no subscription. The first call returns a 402 quote your client settles, then replays the call. A failed call is never billed.
Would you rather have a euro invoice and prepaid credits? That is in preparation, and we will not announce a date until it is open. Write to contact@sirenic.eu and we will let you know when it opens.
Paid responses are Ed25519-signed: you can later prove what was served to you, and when. The whole catalogue is free to read in the OpenAPI document and in llms.txt.
One call, end to end
# x402 client (npm): the 402 quote is settled and the call replayed automatically
npx x402-fetch https://api.sirenic.eu/v1/entreprise/552032534
# Or over MCP, in Claude Code / Cursor
claude mcp add --transport http sirenic https://api.sirenic.eu/mcp
Routes used and pricing
| Route | Price | Sample | What it returns |
|---|---|---|---|
/v1/associations/recherche | $0.002 | free sample | Search French associations (loi 1901) by name in the Répertoire national des associations (RNA, Ministry of the Interior): trigram similarity on the normalised title, optional postal-code, department and position filters (active, dissoute, supprimee), top 20 with score_confiance and the RNA number to use on /v1/association/{rna}. Associations with AND without a SIREN; the legacy file (no declaration since 2009) is flagged fichier_source: import. Excludes Alsace-Moselle (local law). |
/v1/association/{rna} | $0.005 | free sample | Official profile of a French association (loi 1901) by RNA number (W + 9), from the RNA register (Ministry of the Interior, monthly): title, purpose and Waldec codes, nature, grouping, position (active/dissolved/deleted), creation, declaration, JO publication and dissolution dates, registered office, website, RUP number as declared, prefecture, and the SIREN when Sirene confirms it (categorie juridique 92xx). Covers associations WITHOUT a SIREN. No officer data. Excludes Alsace-Moselle. |
/v1/association/{rna}/annonces | $0.01 | free sample | Official Journal notices of a French association (JOAFE, DILA) by RNA number: creations, modifications (title, purpose, registered office), dissolutions, corrections — the association equivalent of BODACC notices, most recent first, with issue date, declaration date and prefecture, purpose themes and the PDF file name. Carries `couverture` (first and last loaded issue): no notice inside that window is a fact, not a gap. Weekly issue, loaded every Tuesday. |
/v1/surveillance/creer | $0.05 (30 days) · $0.135 (90 days) · $0.50 (365 days) / entity | free sample | Monitoring for France: a 30, 90 or 365-day watchlist (?duree=) for KYB & compliance alerts, checked DAILY against official sources; Ed25519-signed webhook and/or e-mail digest, always pollable. Companies (SIREN): BODACC, status, officers, sanctions/AMF blacklist, PSAN/SGP, Seveso, commercial-court decisions, FR/EU procurement awards. Directors (dirigeant:Name): new/ended offices. Associations (RNA W…): JOAFE notices. Per target (1-100) x duration: $0.05 / $0.135 / $0.50. No account, no refund. |
Frequently asked questions
Is an association without a SIREN covered?
Yes. The record and the search start from the RNA, not from Sirene: an association without a SIREN has its record like any other. The SIREN is only added when Sirene confirms an association legal category.
Why can an association from Alsace or Moselle not be found?
Because it is not in the RNA. In the departments outside the RNA (Moselle, Bas-Rhin and Haut-Rhin), local-law associations register with the court's register of associations. Every record and search response restates this.
Does an empty notice list mean the association published nothing?
No. It says that no notice carrying its number appeared in the loaded window, which the response dates in couverture; nothing before 2012 can be linked. That emptiness is served as 200, at the route's price, and classed as a non-conclusive absence.
Are the names of officers or of the declarant available?
No. No officer data is served, and the export's personal columns (declarant, correspondence address, courtesy title) are never loaded into our database.
Take it further
No account to create, no key to request: the first step is free and shows you exactly what you would be buying.
See a real response (free) Get the quote for /v1/associations/recherche Read the route reference Get notified about euro packs