Les routes de cette page couvrent l'identité d'un pays, ses séries annuelles et mensuelles, la comparaison de plusieurs pays sur un même graphe, la prévision et le classement mondial d'un indicateur. Toutes acceptent l'en-tête X-API-Key optionnel décrit dans Démarrage — sans clé, la requête reste anonyme et soumise aux limites qui y sont documentées.
/api/countriesListe des pays réellement couverts par Atlas, pour peupler un sélecteur. Aucun paramètre : la langue des noms suit l'en-tête Accept-Language.
curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/countries"
import requests
r = requests.get(
"https://atlasfeed.fr/api/countries",
headers={"X-API-Key": ATLAS_KEY},
)
r.raise_for_status()
data = r.json()const r = await fetch("https://atlasfeed.fr/api/countries", {
headers: { "X-API-Key": ATLAS_KEY },
});
const data = await r.json();{
"count": 216,
"countries": [
{
"code": "AFG", "iso2": "AF", "name": "Afghanistan",
"names": {"fr": "Afghanistan", "en": "Afghanistan", "es": "Afganistán", "de": "Afghanistan"},
"region": "Asie", "flagEmoji": "🇦🇫", "flagPng": "/flags/af.png"
}
]
}/api/country/{code}Identité complète d'un pays (têtes d'État/de gouvernement, forme de gouvernement incluses) et dernière valeur connue de chaque indicateur demandé.
indicators n'est reconnu.curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/country/FRA?indicators=NY.GDP.MKTP.CD"
import requests
r = requests.get(
"https://atlasfeed.fr/api/country/FRA",
params={"indicators": "NY.GDP.MKTP.CD"},
headers={"X-API-Key": ATLAS_KEY},
)
r.raise_for_status()
data = r.json()const url = new URL("https://atlasfeed.fr/api/country/FRA");
url.searchParams.set("indicators", "NY.GDP.MKTP.CD");
const r = await fetch(url, { headers: { "X-API-Key": ATLAS_KEY } });
const data = await r.json();{
"country": {
"code": "FRA", "iso2": "FR", "name": "France",
"names": {"fr": "France", "en": "France", "es": "Francia", "de": "Frankreich"},
"officialName": "République française", "nameEn": "France", "capital": "Paris",
"region": "Europe", "subregion": null, "area": 643801.0, "latlng": [47.0, 2.0],
"landlocked": false, "independent": true, "unMember": true,
"borders": ["AND", "BEL", "BRA", "CHE", "DEU", "ESP", "ITA", "LUX", "MCO", "NLD", "SUR"],
"tld": [".fr"], "callingCodes": ["+33"],
"languages": [{"code": "fr", "name": "français"}],
"currencies": [{"code": "EUR", "name": null, "symbol": "€"}],
"flagEmoji": "🇫🇷", "flagPng": "/flags/fr.png",
"headOfState": null, "headOfGovernment": "Sébastien Lecornu",
"governmentForm": "régime semi-présidentiel"
},
"indicators": [
{
"code": "NY.GDP.MKTP.CD", "label": "PIB", "theme": "Économie", "unit": "US$ courants",
"fmt": "currency", "headline": true,
"latest": {
"year": 2025, "value": 3366315927447.33, "previousYear": 2024,
"previousValue": 3160442622465.08, "changeAbs": 205873304982.25,
"changePct": 6.514065577994042, "preferredChange": "pct"
},
"unavailable": false
}
]
}unavailable: true signale un échec réseau de la source, distinct d'une absence réelle de donnée — ne jamais confondre les deux.
/api/country/{code}/seriesSuperset de /api/country/{code} : mêmes champs country, plus les séries temporelles complètes (points) et latest par indicateur, pour tracer des graphes.
/api/country/{code}.curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/country/FRA/series\ ?indicators=NY.GDP.MKTP.CD&start=2018&end=2022"
import requests
r = requests.get(
"https://atlasfeed.fr/api/country/FRA/series",
params={"indicators": "NY.GDP.MKTP.CD", "start": 2018, "end": 2022},
headers={"X-API-Key": ATLAS_KEY},
)
data = r.json()const url = new URL("https://atlasfeed.fr/api/country/FRA/series");
url.search = new URLSearchParams({
indicators: "NY.GDP.MKTP.CD", start: "2018", end: "2022",
});
const data = await (await fetch(url, { headers: { "X-API-Key": ATLAS_KEY } })).json();{
"country": { "...": "identique à /api/country/{code}" },
"range": {"start": 2018, "end": 2022},
"series": [
{
"code": "NY.GDP.MKTP.CD", "label": "PIB", "theme": "Économie", "unit": "US$ courants",
"fmt": "currency", "headline": true,
"points": [
{"year": 2018, "value": 2781576320884.39},
{"year": 2019, "value": 2722793515171.76},
{"year": 2020, "value": 2647926055110.05},
{"year": 2021, "value": 2966433692008.09},
{"year": 2022, "value": 2794788137066.94}
],
"latest": {"year": 2025, "value": 3366315927447.33, "previousYear": 2024, "previousValue": 3160442622465.08, "changeAbs": 205873304982.25, "changePct": 6.514065577994042, "preferredChange": "pct"},
"unavailable": false
}
]
}latest porte toujours la dernière valeur réelle, toutes années confondues — start/end ne fenêtrent que points.
/api/country/{code}/monthly/{indicator}Série mensuelle si un fournisseur du registre monthly (Eurostat, Bank of Canada, BCE, BNR, NBG) couvre ce couple pays/indicateur. Sinon available: false en 200 — le cas courant, pas une erreur.
curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/country/FRA/monthly/FP.CPI.TOTL.ZG"
import requests
r = requests.get(
"https://atlasfeed.fr/api/country/FRA/monthly/FP.CPI.TOTL.ZG",
headers={"X-API-Key": ATLAS_KEY},
)
data = r.json()const data = await (await fetch(
"https://atlasfeed.fr/api/country/FRA/monthly/FP.CPI.TOTL.ZG",
{ headers: { "X-API-Key": ATLAS_KEY } },
)).json();{
"code": "FP.CPI.TOTL.ZG", "label": "Inflation", "theme": "Économie", "unit": "% annuel",
"fmt": "percent", "headline": true, "available": true,
"points": [
{"year": 1997, "month": 1, "value": 1.8},
{"year": 1997, "month": 2, "value": 1.7}
],
"source": "Eurostat"
}
// Aucun fournisseur pour ce couple :
{"code": "...", "label": "...", "theme": "...", "unit": "...", "fmt": "...", "headline": true, "available": false, "points": []}/api/compareMêmes séries pour jusqu'à 5 pays, superposables sur un même graphe.
countries ne contient aucun code exploitable.curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/compare?countries=FRA,DEU\ &indicators=NY.GDP.MKTP.CD"
import requests
r = requests.get(
"https://atlasfeed.fr/api/compare",
params={"countries": "FRA,DEU", "indicators": "NY.GDP.MKTP.CD"},
headers={"X-API-Key": ATLAS_KEY},
)
data = r.json()const url = new URL("https://atlasfeed.fr/api/compare");
url.search = new URLSearchParams({
countries: "FRA,DEU", indicators: "NY.GDP.MKTP.CD",
});
const data = await (await fetch(url, { headers: { "X-API-Key": ATLAS_KEY } })).json();{
"countries": [
{
"country": {"code": "FRA", "name": "France", "flagEmoji": "🇫🇷"},
"series": [
{
"code": "NY.GDP.MKTP.CD", "label": "PIB", "theme": "Économie", "unit": "US$ courants",
"fmt": "currency", "headline": true,
"points": [{"year": 1960, "value": 61959085885.3427}],
"unavailable": false
}
]
}
]
}/api/country/{code}/forecastPrévisions TimesFM prolongeant chaque série demandée. Le modèle se charge/compile au premier appel (plusieurs dizaines de secondes), puis reste rapide. Cette route n'est jamais soumise à un rate-limiting spécifique — même régime d'authentification que le reste de l'API.
disclaimer et, par série, un tableau warnings — à afficher systématiquement, jamais à masquer.indicators absent ou vide.forecast (TimesFM) n'est pas installé sur ce déploiement.curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/country/FRA/forecast\ ?indicators=NY.GDP.MKTP.CD&horizon=5"
import requests
r = requests.get(
"https://atlasfeed.fr/api/country/FRA/forecast",
params={"indicators": "NY.GDP.MKTP.CD", "horizon": 5},
headers={"X-API-Key": ATLAS_KEY},
)
data = r.json()const url = new URL("https://atlasfeed.fr/api/country/FRA/forecast");
url.search = new URLSearchParams({ indicators: "NY.GDP.MKTP.CD", horizon: "5" });
const data = await (await fetch(url, { headers: { "X-API-Key": ATLAS_KEY } })).json();{
"country": {"code": "FRA", "name": "France", "flagEmoji": "🇫🇷"},
"horizon": 5,
"model": "timesfm-2.5-200m",
"disclaimer": "Extrapolation zero-shot d'une série annuelle courte. Les valeurs World Bank sont révisées après publication et ont pu être vues au pré-entraînement : à lire comme une illustration, pas comme une prévision sur laquelle décider.",
"series": [
{
"code": "NY.GDP.MKTP.CD", "label": "PIB", "theme": "Économie", "unit": "US$ courants",
"fmt": "currency", "headline": true,
"history": [{"year": 2020, "value": 2647926055110.05}],
"forecast": [{"year": 2026, "value": 0}],
"contextYears": 10,
"unavailable": false,
"warnings": []
}
]
}Une série non prévisible (par exemple un régime politique) renvoie "forecast": [] avec l'avertissement forecast_not_applicable dans son tableau warnings, au lieu d'une prévision. Une série dont la source a échoué porte en plus un avertissement données indisponibles : … et unavailable: true.
/api/country/{code}/rank/{indicator}Rang mondial d'un pays sur un indicateur, à sa dernière année connue.
curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/country/FRA/rank/NY.GDP.MKTP.CD"
import requests
r = requests.get(
"https://atlasfeed.fr/api/country/FRA/rank/NY.GDP.MKTP.CD",
headers={"X-API-Key": ATLAS_KEY},
)
data = r.json()const data = await (await fetch(
"https://atlasfeed.fr/api/country/FRA/rank/NY.GDP.MKTP.CD",
{ headers: { "X-API-Key": ATLAS_KEY } },
)).json();{
"code": "NY.GDP.MKTP.CD", "label": "PIB", "theme": "Économie", "unit": "US$ courants",
"fmt": "currency", "headline": true,
"rank": {
"year": 2025, "position": 7, "total": 186,
"top5": [
{"code": "USA", "name": "États-Unis", "value": 30769700000000},
{"code": "CHN", "name": "république populaire de Chine", "value": 19498039388042.6},
{"code": "DEU", "name": "Allemagne", "value": 5050922925047.05},
{"code": "JPN", "name": "Japon", "value": 4435162999976.94},
{"code": "GBR", "name": "Royaume-Uni", "value": 4002587541846.01}
]
}
}Si le pays n'a aucune valeur pour cet indicateur : "rank": null en 200 — état normal, pas une erreur.
/api/rank/{indicator}Classement mondial complet à une année donnée, explicite — jamais devinée par l'API.
year absent ou hors bornes.curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/rank/NY.GDP.MKTP.CD?year=2022"
import requests
r = requests.get(
"https://atlasfeed.fr/api/rank/NY.GDP.MKTP.CD",
params={"year": 2022},
headers={"X-API-Key": ATLAS_KEY},
)
data = r.json()const url = new URL("https://atlasfeed.fr/api/rank/NY.GDP.MKTP.CD");
url.searchParams.set("year", "2022");
const data = await (await fetch(url, { headers: { "X-API-Key": ATLAS_KEY } })).json();{
"code": "NY.GDP.MKTP.CD", "label": "PIB", "theme": "Économie", "unit": "US$ courants",
"fmt": "currency", "headline": true, "year": 2022,
"ranking": [
{"rank": 1, "code": "USA", "name": "États-Unis", "value": 26054614000000},
{"rank": 2, "code": "CHN", "name": "république populaire de Chine", "value": 18316765021690.2},
{"rank": 3, "code": "JPN", "name": "Japon", "value": 4447976207314.78}
]
}/api/rank/{indicator}/currentClassement mondial « actuel » : chaque pays affiche sa propre dernière année connue, sans année commune imposée — utile pour ouvrir un classement directement depuis la recherche d'un indicateur.
curl -H "X-API-Key: $ATLAS_KEY" \ "https://atlasfeed.fr/api/rank/NY.GDP.MKTP.CD/current"
import requests
r = requests.get(
"https://atlasfeed.fr/api/rank/NY.GDP.MKTP.CD/current",
headers={"X-API-Key": ATLAS_KEY},
)
data = r.json()const data = await (await fetch(
"https://atlasfeed.fr/api/rank/NY.GDP.MKTP.CD/current",
{ headers: { "X-API-Key": ATLAS_KEY } },
)).json();{
"code": "NY.GDP.MKTP.CD", "label": "PIB", "theme": "Économie", "unit": "US$ courants",
"fmt": "currency", "headline": true,
"ranking": [
{
"rank": 1, "code": "USA", "name": "États-Unis", "value": 30769700000000, "year": 2025,
"points": [[2016, 18804913000000], [2017, 19612102000000]]
}
]
}