---
title: API des chiffres publics : données officielles en JSON, gratuites
url: https://chiffrespublics.fr/api/
description: Documentation de l’API de Chiffres publics : 2677 chiffres officiels en JSON, chacun avec sa source, son lien et sa date.
site: Chiffres publics
mise_a_jour: 2026-11-06T17:45:37+00:00
licence: CC BY 4.0 (Creative Commons Attribution 4.0 International), citer Chiffres publics avec le lien de la page et la source d'origine
---

Données ouvertes

# API de Chiffres publics

Les chiffres officiels du site en JSON, chacun avec sa source, son lien et sa date. Sans clé ni inscription. Version 1.1.0, description [OpenAPI 3.1](https://chiffrespublics.fr/api/v1/openapi.json).

Sommaire de la documentation
[Démarrer](#demarrer)[Accès et formats](#acces)[Versions](#versions)[Cas d’usage](#cas)[Pour un assistant IA](#ia)[Objets Chiffre et Source](#objets)

Points d’accès[GET /index.json](#ep-index)[GET /dernieres-donnees.json](#ep-dernieres)[GET /depenses/{categorie}.json](#ep-depenses)[GET /recettes/{categorie}.json](#ep-recettes)[GET /grands-debats.json](#ep-grands-debats)[GET /grands-debats/{sujet}.json](#ep-grand-debat)[GET /chiffres.json](#ep-chiffres)[GET /debats/{nom}.json](#ep-debats-v0)[GET /changelog.json](#ep-changelog)[GET /openapi.json](#ep-openapi)

## Démarrer

L’API sert les chiffres du site en JSON : les comptes publics par catégorie, chaque grand débat et la liste complète des 2 677 chiffres publiés. Chaque valeur vient avec sa source, son lien et sa date. Il n’y a ni clé, ni inscription, ni limite d’usage annoncée.

Adresse de base : `https://chiffrespublics.fr/api/v1`. Un premier appel, depuis un terminal :

```
curl -s https://chiffrespublics.fr/api/v1/grands-debats.json
```

- Lisez `index.json` : il donne la liste de tous les fichiers.
- Choisissez un sujet dans `grands-debats.json`, ou un identifiant dans `chiffres.json`.
- Citez la source qui accompagne chaque chiffre, avec le lien de la page du site.

## Accès et formats

- **Méthode** : uniquement `GET`. Les fichiers sont statiques et refaits à chaque mise à jour du site.
- **Format** : JSON en UTF-8. Les montants sont des nombres (point décimal), sans espace ni symbole ; l’unité est dans un champ à part.
- **Depuis un navigateur** : l’en-tête `Access-Control-Allow-Origin: *` permet de lire l’API depuis n’importe quel site.
- **Erreurs** : un fichier inconnu renvoie le code 404 et une page HTML. Vérifiez le nom dans `index.json` ou dans la description OpenAPI.
- **Identifiez votre programme** : l’hébergeur refuse (code 403) certains appels envoyés avec l’identifiant par défaut d’une bibliothèque, comme celui de `urllib` en Python. Indiquez un en-tête `User-Agent` qui nomme votre programme, comme dans les exemples.
- **Fraîcheur** : le champ `mise_a_jour` de `index.json` donne la date de la dernière construction ; chaque chiffre garde la date de publication de sa source.
- **Licence** : CC BY 4.0 (Creative Commons Attribution 4.0 International). Citez « Chiffres publics, d’après » la source d’origine, avec le lien de la page.

## Les objets Chiffre et Source

Un **Chiffre** (dans `chiffres.json` et dans chaque grand débat) a toujours les mêmes champs :

**Objet Chiffre**

| Champ | Type | Contenu |
|---|---|---|
| id | texte | Identifiant stable : dossier/sujet/fiche, par exemple debats/aides_sociales/rsa_2024. Le dossier est debats (grands débats), gov (comptes de l’État, de la Sécurité sociale, des collectivités, année en cours), vague2 (dossiers thématiques) ou comptes (totaux Eurostat). |
| libelle | texte | Ce que mesure le chiffre. |
| valeur | nombre | La valeur, dans l’unité indiquée. |
| unite | texte | L’unité (%, Md€, personnes…). |
| periode | texte | La période mesurée, en clair (« 31 décembre 2024 », « fin 2021 »). |
| nature | texte | « constaté », « estimé », « enquête », « prévision », « voté » ou « comptes nationaux ». |
| statut_relecture | texte | « confirmé » (relu à la source, valeur identique) ou « calculé » (total refait par le site). |
| calcul | texte ou null | Le calcul fait, ou « valeur publiée ». |
| base_de_comparaison | texte ou null | Le champ ou la base à laquelle le chiffre se rapporte. |
| emplacement | texte ou null | L’endroit exact dans le document : page, tableau, cellule. |
| source | Source | Le document d’origine. |
| pages | liste | Les pages du site où le chiffre paraît ; vide pour un chiffre de contrôle qui ne paraît sur aucune page : citez alors source.url. |
| api | texte ou null | Le fichier du grand débat qui contient ce chiffre, s’il y en a un. |
| a_savoir | texte ou null | Sur les sujets sensibles (immigration, étrangers, délinquance, aides, pauvreté), la note affichée à côté du chiffre : ce qu’il compte, à quoi le comparer, ses limites. À reprendre avec le chiffre. |
| mis_a_jour | date ou null | La date à laquelle l’éditeur a remis le document à jour, quand elle suit sa parution (source.publie). |
| relu_le | date ou null | La dernière fois que le chiffre a été relu dans le document d’origine et retrouvé à l’identique. |
| fichier_relu | objet ou null | Le fichier dans lequel le chiffre a été retrouvé : sha256 (son empreinte), octets (sa taille) et lu_le (le jour où il a été comparé au fichier du producteur). Pour vérifier qu’un fichier téléchargé est bien le même, comparez son empreinte sha256. |

Une **Source** d’un chiffre a les champs `id`, `organisme`, `titre`, `url` (le fichier lu), `page` (la page du document) et `publie` (date de publication). Les blocs Eurostat des catégories ont leur propre forme : `organisme`, `jeu_de_donnees`, `titre`, `url` et `mise_a_jour`.

Un même chiffre peut avoir deux identifiants quand deux pages le lisent dans deux fichiers du même producteur (par exemple le solde budgétaire du mois, dans l’année en cours et dans la page de l’État). Le contrôle de cohérence du site vérifie qu’ils ont la même valeur.

## GET `/api/v1/index.json`

Le sommaire : version, date de mise à jour, licence, adresse de la documentation et de la description OpenAPI, et la liste de tous les fichiers. C’est le point de départ d’un programme.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| version | texte | Version de l’API, par exemple « 1.0.0 ». |
| mise_a_jour | date | Date de la dernière construction du site (AAAA-MM-JJ). |
| points_d_acces | liste | Chaque point d’accès, avec sa description. |
| endpoints | liste | L’adresse complète de chaque fichier. |

```bash
curl -s https://chiffrespublics.fr/api/v1/index.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/index.json");
const d = await r.json();
console.log(d.version, d.endpoints.length);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/index.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["version"], len(d["endpoints"]))
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/index.json", simplifyVector = FALSE)
cat(d$version, length(d$endpoints), "\n")
```

## GET `/api/v1/dernieres-donnees.json`

Les grands totaux de la dernière année publiée par l’Insee : dépenses, recettes, solde et dette des [administrations publiques](https://chiffrespublics.fr/lexique/#administrations), [PIB](https://chiffrespublics.fr/lexique/#pib) et population, avec leur source.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| annee | nombre | Année des comptes. |
| depenses_millions_euros | nombre | Dépenses publiques, en millions d’euros. |
| recettes_millions_euros | nombre | Recettes publiques, en millions d’euros. |
| solde_millions_euros | nombre | Solde public (négatif : déficit). |
| dette_pct_pib | nombre | Dette publique au sens de Maastricht, en % du PIB. |
| pib_millions_euros | nombre | PIB de la même année, en millions d’euros. |
| population_milliers | nombre | Population moyenne de l’année, en milliers. |
| page | texte | Page du site. |
| source | Source | Organisme, titre, lien, page, date de publication et numéro du tableau Insee. |

```bash
curl -s https://chiffrespublics.fr/api/v1/dernieres-donnees.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/dernieres-donnees.json");
const d = await r.json();
console.log(d.annee, d.depenses_millions_euros, d.source.organisme);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/dernieres-donnees.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["annee"], d["depenses_millions_euros"], d["source"]["organisme"])
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/dernieres-donnees.json", simplifyVector = FALSE)
cat(d$annee, d$depenses_millions_euros, d$source$organisme, "\n")
```

## GET `/api/v1/depenses/{categorie}.json`

Une catégorie de dépense publique, selon Eurostat : montant, part du [PIB](https://chiffrespublics.fr/lexique/#pib), montant par habitant, moyenne de la zone euro, sous-postes, et les chiffres nationaux relus qui la complètent.

**`categorie` chemin, obligatoire** : une des valeurs : `administration-dette`, `culture-sport`, `defense`, `economie`, `enseignement`, `environnement`, `logement-equipements`, `protection-sociale`, `retraites`, `sante`, `securite-justice`.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| categorie | texte | Nom de la catégorie. |
| question | texte | La question à laquelle répond la page. |
| page | texte | Page du site. |
| eurostat.annee | texte | Année des comptes Eurostat, par exemple « 2024 ». |
| eurostat.france_millions_euros | nombre | Montant pour la France, en millions d’euros. |
| eurostat.france_pct_pib | nombre | Part du PIB de la même année, avec le PIB de nama_10_gdp dans sa version du jour indiqué par eurostat.pib.mise_a_jour. |
| eurostat.france_euros_par_habitant | nombre | Montant par habitant, en euros. |
| eurostat.zone_euro_pct_pib | nombre ou null | Même part pour la zone euro. |
| eurostat.tableau | texte | Jeu de données Eurostat (gov_10a_exp, gov_10a_taxag ou gov_10a_main). |
| eurostat.source | objet | organisme, jeu_de_donnees, titre, url et mise_a_jour du jeu de données. |
| eurostat.pib | objet | jeu_de_donnees, url et mise_a_jour du PIB utilisé. |
| eurostat.sous_postes | liste | code (COFOG pour les dépenses), libelle et france_millions_euros de chaque sous-poste. |
| chiffres_nationaux_verifies | liste | Chiffres des sources françaises relus à leur source : label, value, unit, year, calc, perimeter, source. |
| derniere_valeur_insee | objet ou null | Dernière valeur publiée par l’Insee pour cette catégorie, quand elle existe. |

```bash
curl -s https://chiffrespublics.fr/api/v1/depenses/sante.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/depenses/sante.json");
const d = await r.json();
console.log(d.categorie, d.eurostat.annee, d.eurostat.france_pct_pib);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/depenses/sante.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["categorie"], d["eurostat"]["annee"], d["eurostat"]["france_pct_pib"])
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/depenses/sante.json", simplifyVector = FALSE)
cat(d$categorie, d$eurostat$annee, d$eurostat$france_pct_pib, "\n")
```

## GET `/api/v1/recettes/{categorie}.json`

Une catégorie de recettes publiques (impôts, cotisations, autres recettes), même structure que les dépenses.

**`categorie` chemin, obligatoire** : une des valeurs : `autres-impots-patrimoine`, `cotisations-sociales`, `droits-de-succession`, `impot-sur-le-revenu-csg`, `impot-sur-les-societes`, `impots-sur-la-production`, `recettes-non-fiscales`, `taxes-sur-les-produits`, `tva`.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| categorie | texte | Nom de la catégorie. |
| eurostat | objet | Mêmes champs que pour les dépenses, codes du système européen des comptes. |

```bash
curl -s https://chiffrespublics.fr/api/v1/recettes/tva.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/recettes/tva.json");
const d = await r.json();
console.log(d.categorie, d.eurostat.france_millions_euros);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/recettes/tva.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["categorie"], d["eurostat"]["france_millions_euros"])
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/recettes/tva.json", simplifyVector = FALSE)
cat(d$categorie, d$eurostat$france_millions_euros, "\n")
```

## GET `/api/v1/grands-debats.json`

La liste des grands débats (pouvoir d’achat, climat, immigration, aides sociales…), avec leur question, leur thème, le nombre de chiffres relus et l’adresse de leur fichier.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| mise_a_jour | date | Date de la dernière mise à jour. |
| nombre | nombre | Nombre de grands débats. |
| sujets[].sujet | texte | Identifiant à utiliser dans grands-debats/{sujet}.json. |
| sujets[].titre | texte | Titre court. |
| sujets[].question | texte | La question du débat. |
| sujets[].theme | texte | Thème : « Climat », « Immigration », « Impôts et argent public », « Pouvoir d’achat et travail », « Services publics », « Sécurité ». |
| sujets[].nombre_de_chiffres | nombre | Nombre de chiffres relus. |
| sujets[].page | texte | Page du site. |
| sujets[].api | texte | Adresse du fichier du débat. |
| sujets[].series | liste | id et libelle de chaque série du débat. |

```bash
curl -s https://chiffrespublics.fr/api/v1/grands-debats.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/grands-debats.json");
const d = await r.json();
for (const s of d.sujets) console.log(s.sujet, s.nombre_de_chiffres);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/grands-debats.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
for s in d["sujets"]:
    print(s["sujet"], s["nombre_de_chiffres"])
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/grands-debats.json", simplifyVector = FALSE)
for (s in d$sujets) cat(s$sujet, s$nombre_de_chiffres, "\n")
```

## GET `/api/v1/grands-debats/{sujet}.json`

Un grand débat : tous ses chiffres relus un par un à leur source, ses tableaux, ses séries et ses sources. Chaque chiffre porte son calcul, sa base de comparaison et l’emplacement exact dans le document officiel.

**`sujet` chemin, obligatoire** : une des valeurs : `pouvoir-achat`, `salaires`, `chomage`, `pauvrete`, `aides-sociales`, `logement`, `climat`, `inegalites-riches`, `fraude`, `sante-acces`, `ecole-niveau`, `insecurite`, `violences-sexuelles`, `immigration-population`, `immigration-flux`, `immigration-emploi`, `immigration-cout`, `immigration-contributions`, `etrangers-delinquance`.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| id | texte | Identifiant du débat dans les identifiants de chiffres (avec des soulignés, par exemple aides_sociales). |
| sujet | texte | Le même avec des tirets, celui de l’adresse. |
| titre | texte | Titre court. |
| question | texte | La question du débat. |
| theme | texte | Thème du débat. |
| page | texte | Page du site. |
| mise_a_jour | date | Date de construction du dossier. |
| resume | texte | Résumé précis, avec ses chiffres. |
| nombre_de_chiffres | nombre | Nombre de chiffres relus. |
| chiffres[] | liste de Chiffre | Voir l’objet Chiffre, plus haut. |
| tableaux[] | liste | id, titre, unite, periode, colonnes, lignes (une liste par ligne), note et sources. |
| series[] | liste | id, libelle, unite, frequence (A : annuelle), source et points, chacun avec periode et valeur. |
| sources[] | liste de Source | Chaque document cité. |

```bash
curl -s https://chiffrespublics.fr/api/v1/grands-debats/aides-sociales.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/grands-debats/aides-sociales.json");
const d = await r.json();
const c = d.chiffres.find(x => x.id.endsWith("/rsa_2024"));
console.log(c.libelle, c.valeur, c.unite, c.source.organisme);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/grands-debats/aides-sociales.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
c = next(x for x in d["chiffres"] if x["id"].endswith("/rsa_2024"))
print(c["libelle"], c["valeur"], c["unite"], c["source"]["organisme"])
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/grands-debats/aides-sociales.json", simplifyVector = FALSE)
for (c in d$chiffres) if (endsWith(c$id, "/rsa_2024")) cat(c$libelle, c$valeur, c$unite, c$source$organisme, "\n")
```

## GET `/api/v1/chiffres.json`

Tous les chiffres publiés sur le site (2 677 aujourd’hui) : chacun avec un identifiant stable, sa valeur, sa période, sa source (organisme, titre, lien, date de publication), l’emplacement exact dans le document et les pages du site où il paraît. Le fichier pèse environ 3,8 Mo (bien moins une fois compressé par le serveur).

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| mise_a_jour | date | Date de la dernière mise à jour. |
| nombre | nombre | Nombre de chiffres. |
| lecture | texte | Mode d’emploi en une phrase. |
| chiffres[] | liste de Chiffre | Voir l’objet Chiffre, plus haut ; le champ api mène au fichier du grand débat quand le chiffre en vient. |

```bash
curl -s https://chiffrespublics.fr/api/v1/chiffres.json | head -c 400
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/chiffres.json");
const d = await r.json();
const c = d.chiffres.find(x => x.id === "debats/aides_sociales/rsa_2024");
console.log(d.nombre, c.valeur, c.source.url);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/chiffres.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
c = next(x for x in d["chiffres"] if x["id"] == "debats/aides_sociales/rsa_2024")
print(d["nombre"], c["valeur"], c["source"]["url"])
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/chiffres.json", simplifyVector = FALSE)
for (c in d$chiffres) if (c$id == "debats/aides_sociales/rsa_2024") cat(d$nombre, c$valeur, c$source$url, "\n")
```

## GET `/api/v1/debats/{nom}.json`

Les trois chiffres débattus de la première version du site (retraites, aides aux entreprises, [niches fiscales](https://chiffrespublics.fr/lexique/#niche)), dans leur format d’origine, gardés pour les programmes qui les lisent déjà. Pour les nouveaux usages, préférez les grands débats.

**`nom` chemin, obligatoire** : une des valeurs : `aide-a-l-ukraine`, `aides-aux-entreprises`, `niches-fiscales`, `retraites`, `taxe-zucman`.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| id | texte | Identifiant de la fiche. |
| title | texte | Titre. |
| question | texte | La question. |
| summary | texte | Résumé. |
| groups | liste | Les groupes de chiffres de la fiche, chacun avec ses sources. |
| why | texte | Pourquoi les estimations diffèrent. |

```bash
curl -s https://chiffrespublics.fr/api/v1/debats/retraites.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/debats/retraites.json");
const d = await r.json();
console.log(d.id, Object.keys(d).length);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/debats/retraites.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["id"], len(d))
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/debats/retraites.json", simplifyVector = FALSE)
cat(d$id, length(d), "\n")
```

## GET `/api/v1/changelog.json`

Le journal des versions et la règle de stabilité de l’API.

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| version_actuelle | texte | Version en cours. |
| regle | texte | Ce qui peut changer dans une version, et ce qui ne change pas. |
| versions[] | liste | Date et liste des changements de chaque version. |

```bash
curl -s https://chiffrespublics.fr/api/v1/changelog.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/changelog.json");
const d = await r.json();
console.log(d.version_actuelle, d.versions[0].date);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/changelog.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["version_actuelle"], d["versions"][0]["date"])
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/changelog.json", simplifyVector = FALSE)
cat(d$version_actuelle, d$versions[[1]]$date, "\n")
```

## GET `/api/v1/openapi.json`

La description OpenAPI 3.1 de l’API : chemins, paramètres, valeurs permises et schéma de chaque réponse. Elle se charge dans tout outil compatible (générateur de client, Postman, Swagger UI).

**Champs de la réponse**

| Champ | Type | Contenu |
|---|---|---|
| openapi | texte | « 3.1.0 ». |
| paths | objet | Les points d’accès. |
| components.schemas | objet | Les schémas des réponses. |

```bash
curl -s https://chiffrespublics.fr/api/v1/openapi.json
```

```javascript
const r = await fetch("https://chiffrespublics.fr/api/v1/openapi.json");
const d = await r.json();
console.log(d.openapi, Object.keys(d.paths).length);
```

```python
import json, urllib.request

req = urllib.request.Request("https://chiffrespublics.fr/api/v1/openapi.json", headers={"User-Agent": "mon-programme/1.0"})
d = json.load(urllib.request.urlopen(req))
print(d["openapi"], len(d["paths"]))
```

```r
library(jsonlite)

d <- fromJSON("https://chiffrespublics.fr/api/v1/openapi.json", simplifyVector = FALSE)
cat(d$openapi, length(d$paths), "\n")
```

## Versions

Version actuelle : **1.1.0**. Dans la v1, aucun champ n’est retiré ni renommé et aucun point d’accès ne disparaît ; de nouveaux champs ou points d’accès peuvent s’ajouter. Un changement incompatible ouvrirait /api/v2/, annoncé ici, et la v1 resterait servie au moins douze mois.

- **1.1.0**, 22 octobre 2026

  - Ajout dans chaque chiffre : mis_a_jour (date de mise à jour par l’éditeur, quand elle suit la parution), relu_le (dernière relecture du chiffre à sa source) et fichier_relu (empreinte sha256, taille et date du fichier relu).
  - statut_relecture vaut « confirmé » pour tout chiffre publié (relu à la source, valeur identique) ou « calculé » (total refait par le site).
  - Licence des données : CC BY 4.0 (auparavant Licence Ouverte 2.0, compatible).

- **1.0.0**, 19 octobre 2026

  - Première version stable, décrite par /api/v1/openapi.json (OpenAPI 3.1).
  - Nouveau : /api/v1/chiffres.json, tous les chiffres publiés sur le site avec leur source, leur lien, leur date et les pages où ils paraissent.
  - Nouveau : /api/v1/grands-debats.json et /api/v1/grands-debats/{sujet}.json, les chiffres relus de chaque grand débat, avec leurs tableaux, séries et sources.
  - Ajout d’un bloc « source » (organisme, jeu de données, lien, date de mise à jour) dans les fichiers des catégories de dépenses et de recettes.
  - Nouveau : /api/v1/changelog.json, ce journal des versions.

## Cas d’usage

- **Afficher un chiffre avec sa source**Reprenez `valeur`, `unite` et `periode` d’un chiffre, et affichez à côté `source.organisme` avec le lien `source.url`.
- **Vérifier un chiffre entendu**Cherchez un mot du libellé dans `chiffres.json` : chaque résultat donne la valeur officielle, l’emplacement exact dans le document et la page du site qui l’explique.
- **Suivre une courbe**Les `series` d’un grand débat donnent des points (période, valeur) prêts pour un graphique.
- **Comparer avec la zone euro**Chaque catégorie donne la part du [PIB](https://chiffrespublics.fr/lexique/#pib) de la France et celle de la zone euro, sur la même base Eurostat.
- **Nourrir un assistant IA**Donnez à l’assistant le texte de la section suivante : il saura quel fichier lire et comment citer la source.

## Pour un assistant IA

Le texte ci-dessous décrit l’API pour un assistant IA : adresse de base, fichiers, champs et règle de citation. Copiez-le au début de votre conversation ; le bouton le copie en un clic.

Voir le texte copié

```
# API de Chiffres publics (version 1.1.0)

Chiffres officiels de l'argent public et des grands débats en France, en JSON, chacun avec sa source, son lien et sa date.
Adresse de base : https://chiffrespublics.fr/api/v1 ; méthode GET ; pas de clé ; CORS ouvert ; JSON UTF-8 ; description OpenAPI 3.1 : https://chiffrespublics.fr/api/v1/openapi.json.
Envoyer un en-tête User-Agent qui nomme le programme : l'hébergeur refuse (403) l'identifiant par défaut de certaines bibliothèques (urllib en Python).

Fichiers :
- https://chiffrespublics.fr/api/v1/index.json : sommaire et liste de tous les fichiers.
- https://chiffrespublics.fr/api/v1/dernieres-donnees.json : dépenses, recettes, solde, dette, PIB et population de la dernière année (Insee).
- https://chiffrespublics.fr/api/v1/depenses/{categorie}.json avec categorie parmi : administration-dette, culture-sport, defense, economie, enseignement, environnement, logement-equipements, protection-sociale, retraites, sante, securite-justice.
- https://chiffrespublics.fr/api/v1/recettes/{categorie}.json avec categorie parmi : autres-impots-patrimoine, cotisations-sociales, droits-de-succession, impot-sur-le-revenu-csg, impot-sur-les-societes, impots-sur-la-production, recettes-non-fiscales, taxes-sur-les-produits, tva.
- https://chiffrespublics.fr/api/v1/grands-debats.json : liste des grands débats.
- https://chiffrespublics.fr/api/v1/grands-debats/{sujet}.json avec sujet parmi : pouvoir-achat, salaires, chomage, pauvrete, aides-sociales, logement, climat, inegalites-riches, fraude, sante-acces, ecole-niveau, insecurite, violences-sexuelles, immigration-population, immigration-flux, immigration-emploi, immigration-cout, immigration-contributions, etrangers-delinquance.
- https://chiffrespublics.fr/api/v1/chiffres.json : tous les chiffres publiés (environ 3,8 Mo).

Un chiffre (dans chiffres.json et dans chaque grand débat) : id (stable), libelle, valeur, unite, periode, nature, statut_relecture, calcul, base_de_comparaison, emplacement, source {organisme, titre, url, page, publie}, pages, a_savoir (note à reprendre avec le chiffre sur les sujets sensibles), mis_a_jour (mise à jour du document par l'éditeur), relu_le (dernière relecture à la source), fichier_relu {sha256, octets, lu_le}.
Une catégorie : categorie, question, page, eurostat {annee, france_millions_euros, france_pct_pib, france_euros_par_habitant, zone_euro_pct_pib, source, sous_postes}, chiffres_nationaux_verifies.

Règles : donner la valeur avec son unité et sa période ; citer « Chiffres publics, d'après » l'organisme source, avec le lien source.url ou la page du site ; ne pas présenter un chiffre sans sa date. Exemple d'identifiant : debats/aides_sociales/rsa_2024.
```
