API de données
API JSON publique, en lecture seule et sans inscription.
Principes
- Requêtes
GETuniquement, réponses JSON en UTF-8 ; les valeurs manquantes valentnull. - Une série est désignée par son identifiant numérique ou par son
slugstable (préférable dans vos scripts), par exempleipc-ipc. - Chaque observation est datée du premier jour de sa période (
2023-01-01pour l'année 2023) et porte son libellé de période (2023,2021-10…). - Les réponses sont mises en cache 10 minutes : juste après une mise à jour, un résultat peut rester ancien quelques minutes.
Liste des séries
GET https://drc-data.org/api/series/
Filtres facultatifs : sector (identifiant du secteur), frequency (A, Q, M, W, D), q (texte cherché dans le titre, le slug et les mots-clés). Chaque élément donne le titre, le secteur, l'unité, la fréquence, la couverture, la dernière valeur et sa variation.
{
"count": 223,
"results": [{
"id": 64, "slug": "reel-pib-reel-usd", "title": "PIB réel",
"unit": "USD", "multiplier": 1, "frequency": "A",
"coverage": {"start": "1960-01-01", "end": "2023-12-31"},
"last": {"date": "2023-01-01", "period": "2023", "value": 56862826231.05},
…
}]
}
Une série et ses observations
GET https://drc-data.org/api/series/ipc-ipc/?start=2015&transform=yoy
Renvoie les métadonnées complètes de la série (unité, multiplicateur, source, couverture, note méthodologique…) et la liste de ses observations, éventuellement transformées ou agrégées.
Paramètres
| Paramètre | Valeurs | Rôle |
|---|---|---|
start, end | 2015, 2015-06, 2015-Q2, 2015-06-30 | Fenêtre de dates, bornes incluses (end=2020 va jusqu'au 31/12/2020). |
transform | level, yoy, pop, index100, log, diff | Niveau, glissement annuel, variation d'une période à l'autre, base 100, logarithme, différence première. |
freq | A, Q, M, W, D | Agrégation vers une fréquence plus basse uniquement. |
method | mean, last, sum | Méthode d'agrégation : moyenne (défaut), fin de période, somme. |
base | une période | Période de référence de la base 100 (défaut : début de la fenêtre). |
Les définitions exactes des transformations et des règles d'agrégation sont données dans la méthodologie.
Comparer des séries
GET https://drc-data.org/api/analysis/compare/?series=reel-pib-reel-usd,ipc-ipc&transform=index100&start=2012
Aligne de 1 à 6 séries sur une grille commune (la fréquence la plus basse) et renvoie leurs valeurs alignées ainsi que des statistiques descriptives (moyenne, médiane, écart-type, minimum, maximum, taux de croissance annuel moyen).
Corrélation
GET https://drc-data.org/api/analysis/correlation/?x=ipc-ipc&y=change-tc-indic-moy&max_lag=3
Calcule, sur la période commune de deux séries, les coefficients de Pearson (avec intervalle de confiance à 95 %) et de Spearman, la régression linéaire (pente, constante, R², p-value), le nuage de points et les corrélations décalées. Des avertissements accompagnent le résultat : une corrélation n'établit pas de causalité (voir la méthodologie).
Erreurs et limites
| Code | Signification |
|---|---|
| 200 | Succès. |
| 400 | Paramètre invalide ; le message d'erreur précise lequel. |
| 404 | Série introuvable ou non publiée. |
| 409 | Série sans fréquence renseignée (transformation impossible). |
| 429 | Trop de requêtes depuis votre adresse IP : patientez une minute (en-tête Retry-After). |
Les erreurs sont renvoyées sous la forme {"error": "message"}. Pour un usage intensif (salle de cours, projet partenaire), contactez-nous.
Exemples
Python (pandas)
import pandas as pd
import requests
r = requests.get("https://drc-data.org/api/series/ipc-ipc/", params={"start": "2000"}).json()
serie = pd.Series({o["date"]: o["value"] for o in r["observations"]}, name=r["series"]["title"])
R
library(jsonlite)
r <- fromJSON("https://drc-data.org/api/series/ipc-ipc/?start=2000")
serie <- r$observations[, c("date", "value")]
Pour une récupération ponctuelle, les boutons CSV, Excel et JSON de chaque fiche série suffisent. Pensez à citer la source.