Vous êtes hors ligne. Les chiffres affichés sont ceux enregistrés sur cet appareil.

Data by MansaAPI · fin de journée

API publique · lecture seule

Syli Atlas API

Les indicateurs économiques des 54 pays africains, des 5 régions et du continent, de 2015 à 2030, en JSON ou en CSV. Gratuit, sans inscription, et chaque réponse cite sa source.

URL de base https://syliatlas.com/api/v1
Authentification
aucune
Formats
json · csv
Limite
60 req/min · IP
Données
imf_weo · 2026-10

GET /api/v1/areas

Toutes les zones

Toutes les zones : pays, régions, continent, agrégats du FMI.

temps serveur p50 1,9 ms p99 1,9 ms

Paramètres

Aucun paramètre.

Réponses

200 application/json · {data, meta}

429 rate_limited au-delà de 60 requêtes par minute

Langage de l'exemple
  1. $ curl "https://syliatlas.com/api/v1/areas"
  1. const res = await fetch("https://syliatlas.com/api/v1/areas");
  2. const { data, meta } = await res.json();
  3. console.log(data.length);
  4. console.log(meta.sources[0]?.attribution.en);
  1. import requests
  2. r = requests.get("https://syliatlas.com/api/v1/areas", timeout=10)
  3. r.raise_for_status()
  4. body = r.json()
  5. data, meta = body["data"], body["meta"]
  1. # spreadsheets read the CSV route
  2. =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")

Réponse 200 OK application/json max-age=3600

Réponse réelle des données en ligne, raccourcie (…).

Schéma de la réponse · 5 champs
Champ Type Description
data AreaRef[] Toutes les zones : pays, régions, continent, agrégats du FMI.
meta object À propos de la réponse.
meta.sources Source[] Sources des chiffres de data. Vide quand data ne contient aucun chiffre.
meta.docs Docs Cette documentation.
meta.count integer Nombre de zones.

GET /api/v1/areas/{code}

Une zone, toutes ses séries

Une zone avec toutes ses séries.

temps serveur p50 1,0 ms p99 1,0 ms

Paramètres

code string path requis

Code de la zone : ISO 3 pour un pays, code de région, africa, ou agrégat du FMI (voir /areas).

valeurs : CIV, west_africa, africa…

from integer query

Année de départ de la période.

valeurs : 2015 – 2030 · défaut : 2020

to integer query

Année d'arrivée, après from.

valeurs : 2015 – 2030 · défaut : 2025

Réponses

200 application/json · {data, meta}

400 invalid_period années hors 2015–2030, ou from ≥ to

404 unknown_area code de zone inconnu

429 rate_limited au-delà de 60 requêtes par minute

Langage de l'exemple
  1. $ curl "https://syliatlas.com/api/v1/areas/CIV?from=2020&to=2025"
  1. const res = await fetch("https://syliatlas.com/api/v1/areas/CIV?from=2020&to=2025");
  2. const { data, meta } = await res.json();
  3. console.log(data.period.change_percent.real_gdp_index);
  4. console.log(meta.sources[0]?.attribution.en);
  1. import requests
  2. r = requests.get("https://syliatlas.com/api/v1/areas/CIV?from=2020&to=2025", timeout=10)
  3. r.raise_for_status()
  4. body = r.json()
  5. data, meta = body["data"], body["meta"]
  1. # spreadsheets read the CSV route
  2. =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")

Réponse 200 OK application/json max-age=3600

Réponse réelle des données en ligne, raccourcie (…).

Schéma de la réponse · 19 champs
Champ Type Description
data object Une zone avec toutes ses séries.
data.code string Code : ISO 3 pour un pays (CIV), sinon le code de la zone (west_africa, africa, SSA).
data.kind string Nature de la zone. Valeurs : country | region | continent | imf_aggregate
data.region string | null Région de l'Union africaine d'un pays ; null sinon. Valeurs : north_africa | west_africa | central_africa | east_africa | southern_africa | null
data.name Names Nom de la zone.
data.slug Names Segment des adresses des pages de la zone.
data.pages Pages | null null pour les agrégats du FMI, qui n'ont pas de page.
data.members string[] Codes des pays qui composent une région ou le continent. Vide pour un pays et pour les agrégats du FMI (composition du FMI).
data.years Years Les années des séries.
data.series Series Une liste par indicateur, alignée sur years.list.
data.share_of_africa_gdp (number | null)[] Part du PIB de l'Afrique en dollars courants, en %, alignée sur years.list. Calcul Syli Atlas. Unité : %
data.missing Missing[] Trous dans les séries, tels que publiés par le FMI.
data.period Period Variations sur la période demandée. null quand une année n'a pas de valeur.
data.rank Rank | null null pour les régions, le continent et les agrégats du FMI.
meta object À propos de la réponse.
meta.sources Source[] Sources des chiffres de data. Vide quand data ne contient aucun chiffre.
meta.docs Docs Cette documentation.
meta.from integer Année de départ utilisée.
meta.to integer Année d'arrivée utilisée.

GET /api/v1/compare

Plusieurs zones côte à côte

Les zones trouvées, dans l'ordre demandé.

Paramètres

codes string query requis

2 à 6 codes de zone séparés par des virgules. Les codes inconnus sont absents de data.

valeurs : CIV,GHA,SEN…

from integer query

Année de départ de la période.

valeurs : 2015 – 2030 · défaut : 2020

to integer query

Année d'arrivée, après from.

valeurs : 2015 – 2030 · défaut : 2025

Réponses

200 application/json · {data, meta}

400 invalid_period années hors 2015–2030, ou from ≥ to

429 rate_limited au-delà de 60 requêtes par minute

Langage de l'exemple
  1. $ curl "https://syliatlas.com/api/v1/compare?codes=CIV,GHA"
  1. const res = await fetch("https://syliatlas.com/api/v1/compare?codes=CIV,GHA");
  2. const { data, meta } = await res.json();
  3. console.log(data.map((a) => a.code));
  4. console.log(meta.sources[0]?.attribution.en);
  1. import requests
  2. r = requests.get("https://syliatlas.com/api/v1/compare?codes=CIV,GHA", timeout=10)
  3. r.raise_for_status()
  4. body = r.json()
  5. data, meta = body["data"], body["meta"]
  1. # spreadsheets read the CSV route
  2. =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")

Réponse 200 OK application/json max-age=3600

Réponse réelle des données en ligne, raccourcie (…).

Schéma de la réponse · 16 champs
Champ Type Description
data CompareItem[] Les zones trouvées, dans l'ordre demandé.
data[].code string Code : ISO 3 pour un pays (CIV), sinon le code de la zone (west_africa, africa, SSA).
data[].kind string Nature de la zone. Valeurs : country | region | continent | imf_aggregate
data[].region string | null Région de l'Union africaine d'un pays ; null sinon. Valeurs : north_africa | west_africa | central_africa | east_africa | southern_africa | null
data[].name Names Nom de la zone.
data[].slug Names Segment des adresses des pages de la zone.
data[].pages Pages | null null pour les agrégats du FMI, qui n'ont pas de page.
data[].years Years Les années des séries.
data[].series Series Une liste par indicateur, alignée sur years.list.
data[].period Period Variations sur la période demandée. null quand une année n'a pas de valeur.
meta object À propos de la réponse.
meta.sources Source[] Sources des chiffres de data. Vide quand data ne contient aucun chiffre.
meta.docs Docs Cette documentation.
meta.from integer Année de départ utilisée.
meta.to integer Année d'arrivée utilisée.
meta.codes string[] Les codes demandés.

GET /api/v1/ranking

Les pays classés selon un indicateur

Les pays, valeur la plus haute d'abord ; sans valeur en dernier.

temps serveur p50 2,4 ms p99 2,4 ms

Paramètres

indicator string query

Indicateur à classer (voir /indicators).

valeurs : real_gdp_index | real_gdp_growth | gdp_usd_bn | gdp_per_capita_usd | gdp_per_capita_ppp | inflation | public_debt_pct_gdp | population_m | fiscal_balance_pct_gdp | current_account_pct_gdp | unemployment · défaut : real_gdp_index

mode string query

change : variation entre from et to ; value : valeur de l'année to.

valeurs : change | value · défaut : change

region string query

Ne garder que les pays d'une région.

valeurs : north_africa | west_africa | central_africa | east_africa | southern_africa

from integer query

Année de départ de la période.

valeurs : 2015 – 2030 · défaut : 2020

to integer query

Année d'arrivée, après from.

valeurs : 2015 – 2030 · défaut : 2025

Réponses

200 application/json · {data, meta}

400 invalid_period années hors 2015–2030, ou from ≥ to

429 rate_limited au-delà de 60 requêtes par minute

Langage de l'exemple
  1. $ curl "https://syliatlas.com/api/v1/ranking?indicator=real_gdp_index"
  1. const res = await fetch("https://syliatlas.com/api/v1/ranking?indicator=real_gdp_index");
  2. const { data, meta } = await res.json();
  3. console.log(data[0].name.fr, data[0].value, meta.unit);
  4. console.log(meta.sources[0]?.attribution.en);
  1. import requests
  2. r = requests.get("https://syliatlas.com/api/v1/ranking?indicator=real_gdp_index", timeout=10)
  3. r.raise_for_status()
  4. body = r.json()
  5. data, meta = body["data"], body["meta"]
  1. # spreadsheets read the CSV route
  2. =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")

Réponse 200 OK application/json max-age=3600

Réponse réelle des données en ligne, raccourcie (…).

Schéma de la réponse · 18 champs
Champ Type Description
data RankingItem[] Les pays, valeur la plus haute d'abord ; sans valeur en dernier.
data[].code string Code : ISO 3 pour un pays (CIV), sinon le code de la zone (west_africa, africa, SSA).
data[].kind string Nature de la zone. Valeurs : country | region | continent | imf_aggregate
data[].region string | null Région de l'Union africaine d'un pays ; null sinon. Valeurs : north_africa | west_africa | central_africa | east_africa | southern_africa | null
data[].name Names Nom de la zone.
data[].slug Names Segment des adresses des pages de la zone.
data[].pages Pages | null null pour les agrégats du FMI, qui n'ont pas de page.
data[].position integer | null Place, 1 = valeur la plus haute ; null quand le pays n'a pas de valeur.
data[].value number | null La valeur classée, dans l'unité meta.unit.
meta object À propos de la réponse.
meta.sources Source[] Sources des chiffres de data. Vide quand data ne contient aucun chiffre.
meta.docs Docs Cette documentation.
meta.from integer Année de départ utilisée.
meta.to integer Année d'arrivée utilisée.
meta.indicator string Indicateur classé. Valeurs : real_gdp_index | real_gdp_growth | gdp_usd_bn | gdp_per_capita_usd | gdp_per_capita_ppp | inflation | public_debt_pct_gdp | population_m | fiscal_balance_pct_gdp | current_account_pct_gdp | unemployment
meta.mode string change ou value. Valeurs : change | value
meta.unit string Unité de value : celle de l'indicateur (mode value) ou de sa variation (mode change). Valeurs : percent | percent_of_gdp | percent_of_labour_force | usd_billion | usd | intl_dollar | million_people | index_2015 | points
meta.region string | null Région gardée, ou null pour toutes. Valeurs : north_africa | west_africa | central_africa | east_africa | southern_africa | null

GET /api/v1/indicators

Les indicateurs : unité, définition, source

Tous les indicateurs, dans l'ordre des séries.

Paramètres

Aucun paramètre.

Réponses

200 application/json · {data, meta}

429 rate_limited au-delà de 60 requêtes par minute

Langage de l'exemple
  1. $ curl "https://syliatlas.com/api/v1/indicators"
  1. const res = await fetch("https://syliatlas.com/api/v1/indicators");
  2. const { data, meta } = await res.json();
  3. console.log(data.map((i) => i.key + ": " + i.unit));
  4. console.log(meta.sources[0]?.attribution.en);
  1. import requests
  2. r = requests.get("https://syliatlas.com/api/v1/indicators", timeout=10)
  3. r.raise_for_status()
  4. body = r.json()
  5. data, meta = body["data"], body["meta"]
  1. # spreadsheets read the CSV route
  2. =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")

Réponse 200 OK application/json max-age=3600

Réponse réelle des données en ligne, raccourcie (…).

Schéma de la réponse · 16 champs
Champ Type Description
data Indicator[] Tous les indicateurs, dans l'ordre des séries.
data[].key string Clé utilisée dans les séries et les paramètres. Valeurs : real_gdp_index | real_gdp_growth | gdp_usd_bn | gdp_per_capita_usd | gdp_per_capita_ppp | inflation | public_debt_pct_gdp | population_m | fiscal_balance_pct_gdp | current_account_pct_gdp | unemployment
data[].name Names Nom de l'indicateur.
data[].description Names Ce qu'il mesure.
data[].unit string Unité des valeurs (libellés dans la documentation). Valeurs : percent | percent_of_gdp | percent_of_labour_force | usd_billion | usd | intl_dollar | million_people | index_2015 | points
data[].kind string rate : déjà un pourcentage ; level : un montant ; index : 100 en 2015. Valeurs : rate | level | index
data[].change_unit string Unité de ses variations : points pour les taux, pourcentage sinon. Valeurs : percent | points
data[].source object D'où il vient.
data[].source.id string Source. Valeurs : imf_weo
data[].source.code string | null Code de la série chez la source (FMI DataMapper) ; null si calculé par Syli Atlas.
meta object À propos de la réponse.
meta.sources Source[] Sources des chiffres de data. Vide quand data ne contient aucun chiffre.
meta.docs Docs Cette documentation.
meta.years object Années couvertes.
meta.years.first integer Première année.
meta.years.last integer Dernière année.

GET /api/v1/areas/{code}/csv

Une zone en CSV

La ligne 1 est un commentaire (#) qui nomme la source. Puis un en-tête et une ligne par année de 2015 à 2030. Colonnes : year, status, real_gdp_index, real_gdp_growth, gdp_usd_bn, gdp_per_capita_usd, gdp_per_capita_ppp, inflation, public_debt_pct_gdp, population_m, fiscal_balance_pct_gdp, current_account_pct_gdp, unemployment. status vaut actual, estimate ou projection ; cellule vide = pas de valeur. Unités : voir /indicators.

temps serveur p50 0,8 ms p99 1,3 ms

Paramètres

code string path requis

Code de la zone : ISO 3 pour un pays, code de région, africa, ou agrégat du FMI (voir /areas).

valeurs : CIV, west_africa, africa…

Réponses

200 text/csv

404 unknown_area code de zone inconnu

429 rate_limited au-delà de 60 requêtes par minute

Langage de l'exemple
  1. $ curl -O "https://syliatlas.com/api/v1/areas/CIV/csv"
  1. const res = await fetch("https://syliatlas.com/api/v1/areas/CIV/csv");
  2. const text = await res.text();
  3. // line 1: the source; then one row per year
  1. import pandas as pd
  2. url = "https://syliatlas.com/api/v1/areas/CIV/csv"
  3. df = pd.read_csv(url, comment="#")
  4. print(df[["year", "status", "real_gdp_index"]])
  1. =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")

Réponse 200 OK text/csv max-age=3600

Réponse réelle des données en ligne, raccourcie (…).

Indicateurs

Chaque clé de series, change_percent et change_points, avec son unité. Les taux changent en points de pourcentage, les niveaux et l'indice en pourcentage. Même liste dans GET /api/v1/indicators.

Clé Indicateur Unité Variation Code FMI
real_gdp_index PIB réel (indice)
Volume du PIB, 100 en 2015, obtenu en enchaînant les taux de croissance réelle du FMI. Calcul Syli Atlas.
indice, 100 en 2015
index_2015
percent —
real_gdp_growth Croissance du PIB réel
Variation annuelle du PIB à prix constants.
%
percent
points NGDP_RPCH
gdp_usd_bn PIB en dollars courants
Produit intérieur brut aux prix courants, converti en dollars US.
milliards de dollars US courants
usd_billion
percent NGDPD
gdp_per_capita_usd PIB par habitant
PIB en dollars courants divisé par la population.
dollars US courants
usd
percent NGDPDPC
gdp_per_capita_ppp PIB par habitant en PPA
PIB par habitant en parité de pouvoir d'achat (dollars internationaux courants) : compare les niveaux de vie.
dollars internationaux courants (PPA)
intl_dollar
percent PPPPC
inflation Inflation
Variation annuelle moyenne des prix à la consommation.
%
percent
points PCPIPCH
public_debt_pct_gdp Dette publique
Dette brute des administrations publiques, en % du PIB.
% du PIB
percent_of_gdp
points GGXWDG_NGDP
population_m Population
Population totale.
millions d'habitants
million_people
percent LP
fiscal_balance_pct_gdp Solde budgétaire
Capacité (+) ou besoin (−) de financement des administrations publiques, en % du PIB.
% du PIB
percent_of_gdp
points GGXCNL_NGDP
current_account_pct_gdp Balance courante
Solde des échanges de biens, services et revenus avec l'extérieur, en % du PIB.
% du PIB
percent_of_gdp
points BCA_NGDPD
unemployment Chômage
Chômeurs en % de la population active. Le FMI ne le publie pas pour tous les pays.
% de la population active
percent_of_labour_force
points LUR

Valeurs possibles

Toutes les listes fermées de l'API. Les mêmes, avec leurs libellés, dans GET /api/v1 (values).

kind
country
Un des 54 pays africains.
region
Une des 5 régions de l'Union africaine ; totaux calculés par Syli Atlas.
continent
L'Afrique entière ; totaux calculés par Syli Atlas.
imf_aggregate
Un agrégat publié tel quel par le FMI : le Monde, l'Afrique subsaharienne.
region
north_africa
Afrique du Nord
west_africa
Afrique de l'Ouest
central_africa
Afrique centrale
east_africa
Afrique de l'Est
southern_africa
Afrique australe
years.status
actual
Valeur observée.
estimate
Estimation du FMI : l'année est finie mais les chiffres ne sont pas définitifs.
projection
Projection du FMI.
unit
percent
%
percent_of_gdp
% du PIB
percent_of_labour_force
% de la population active
usd_billion
milliards de dollars US courants
usd
dollars US courants
intl_dollar
dollars internationaux courants (PPA)
million_people
millions d'habitants
index_2015
indice, 100 en 2015
points
points de pourcentage
mode
change
Variation entre from et to.
value
Valeur de l'année to.

Schémas communs

Les objets qui reviennent dans plusieurs réponses. Description complète, lisible par une machine : /api/v1/openapi.json (OpenAPI 3.1).

AreaRef · Une zone.
Champ Type Description
code string Code : ISO 3 pour un pays (CIV), sinon le code de la zone (west_africa, africa, SSA).
kind string Nature de la zone. Valeurs : country | region | continent | imf_aggregate
region string | null Région de l'Union africaine d'un pays ; null sinon. Valeurs : north_africa | west_africa | central_africa | east_africa | southern_africa | null
name Names Nom de la zone.
slug Names Segment des adresses des pages de la zone.
pages Pages | null null pour les agrégats du FMI, qui n'ont pas de page.
Names · Un texte en français et en anglais.
Champ Type Description
fr string En français.
en string En anglais.
Pages · La page de la zone sur le site.
Champ Type Description
fr string Page en français.
en string Page en anglais.
Docs · Cette documentation.
Champ Type Description
fr string Documentation en français.
en string Documentation en anglais.
Source · Une source des chiffres, avec l'attribution à reprendre (attribution.fr ou attribution.en).
Champ Type Description
id string Code de la source. Valeurs : imf_weo
name Names Nom de la source.
publisher Names Qui la publie.
edition string Édition, AAAA-MM.
label string Titre de l'édition chez la source.
url string La page de la source.
licence string Conditions de réutilisation.
licence_url string Les conditions.
attribution Names La phrase à reprendre sous les chiffres.
Years · Les années des séries.
Champ Type Description
first integer Première année des séries.
last integer Dernière année des séries.
estimate_from integer Première année estimée par le FMI.
projection_from integer Première année projetée par le FMI.
list integer[] Toutes les années ; la position i de chaque série est l'année list[i].
status string[] Statut de chaque année, aligné sur list. Valeurs : actual | estimate | projection
Series · Une liste par indicateur, alignée sur years.list.
Champ Type Description
real_gdp_index (number | null)[] PIB réel (indice), indice, 100 en 2015, une valeur par année de years.list (null : pas de valeur). Unité : indice, 100 en 2015
real_gdp_growth (number | null)[] Croissance du PIB réel, %, une valeur par année de years.list (null : pas de valeur). Unité : %
gdp_usd_bn (number | null)[] PIB en dollars courants, milliards de dollars US courants, une valeur par année de years.list (null : pas de valeur). Unité : milliards de dollars US courants
gdp_per_capita_usd (number | null)[] PIB par habitant, dollars US courants, une valeur par année de years.list (null : pas de valeur). Unité : dollars US courants
gdp_per_capita_ppp (number | null)[] PIB par habitant en PPA, dollars internationaux courants (PPA), une valeur par année de years.list (null : pas de valeur). Unité : dollars internationaux courants (PPA)
inflation (number | null)[] Inflation, %, une valeur par année de years.list (null : pas de valeur). Unité : %
public_debt_pct_gdp (number | null)[] Dette publique, % du PIB, une valeur par année de years.list (null : pas de valeur). Unité : % du PIB
population_m (number | null)[] Population, millions d'habitants, une valeur par année de years.list (null : pas de valeur). Unité : millions d'habitants
fiscal_balance_pct_gdp (number | null)[] Solde budgétaire, % du PIB, une valeur par année de years.list (null : pas de valeur). Unité : % du PIB
current_account_pct_gdp (number | null)[] Balance courante, % du PIB, une valeur par année de years.list (null : pas de valeur). Unité : % du PIB
unemployment (number | null)[] Chômage, % de la population active, une valeur par année de years.list (null : pas de valeur). Unité : % de la population active
Period · Variations sur la période demandée. null quand une année n'a pas de valeur.
Champ Type Description
from integer Année de départ.
to integer Année d'arrivée.
change_percent ChangePercent Variations des niveaux et de l'indice, en pourcentage.
change_points ChangePoints Écarts des taux, en points de pourcentage.
ChangePercent · Variations des niveaux et de l'indice, en pourcentage.
Champ Type Description
real_gdp_index number | null Variation de PIB réel (indice) entre from et to, en %. Unité : %
gdp_usd_bn number | null Variation de PIB en dollars courants entre from et to, en %. Unité : %
gdp_per_capita_usd number | null Variation de PIB par habitant entre from et to, en %. Unité : %
gdp_per_capita_ppp number | null Variation de PIB par habitant en PPA entre from et to, en %. Unité : %
population_m number | null Variation de Population entre from et to, en %. Unité : %
ChangePoints · Écarts des taux, en points de pourcentage.
Champ Type Description
real_gdp_growth number | null Écart de Croissance du PIB réel entre from et to, en points de pourcentage. Unité : points de pourcentage
inflation number | null Écart de Inflation entre from et to, en points de pourcentage. Unité : points de pourcentage
public_debt_pct_gdp number | null Écart de Dette publique entre from et to, en points de pourcentage. Unité : points de pourcentage
fiscal_balance_pct_gdp number | null Écart de Solde budgétaire entre from et to, en points de pourcentage. Unité : points de pourcentage
current_account_pct_gdp number | null Écart de Balance courante entre from et to, en points de pourcentage. Unité : points de pourcentage
unemployment number | null Écart de Chômage entre from et to, en points de pourcentage. Unité : points de pourcentage
Rank · La place du pays par croissance du PIB réel sur la période par défaut, en Afrique et dans sa région. Calculée une fois par édition : ne dépend pas de from et to.
Champ Type Description
from integer Année de départ du classement (fixe).
to integer Année d'arrivée du classement (fixe).
indicator string Indicateur classé. Valeurs : real_gdp_index
change_percent number | null Croissance du PIB réel sur la période, en %. Unité : %
africa Position Une place dans un classement.
region Position Une place dans un classement.
Position · Une place dans un classement.
Champ Type Description
position integer Place, 1 = plus forte croissance.
out_of integer Nombre de pays classés.
Missing · Un trou dans une série.
Champ Type Description
indicator string Indicateur. Valeurs : real_gdp_index | real_gdp_growth | gdp_usd_bn | gdp_per_capita_usd | gdp_per_capita_ppp | inflation | public_debt_pct_gdp | population_m | fiscal_balance_pct_gdp | current_account_pct_gdp | unemployment
years integer[] Années sans valeur.

Performance

Temps passé dans le serveur pour chaque route, de l'arrivée de la requête à l'envoi de la réponse, hors réseau. Mesuré sur chaque requête et par une sonde toutes les heures, pour qu'une route peu utilisée ait aussi sa mesure. Budget : 10 ms au 99e centile. Chaque réponse donne aussi son propre temps dans l'en-tête Server-Timing.

Route p50 p95 p99 24 dernières heures (p95) Budget
GET /api/v1/areas 1,9 ms 1,9 ms 1,9 ms dans le budget
GET /api/v1/areas/{code} 1,0 ms 1,0 ms 1,0 ms dans le budget
GET /api/v1/ranking 2,4 ms 2,4 ms 2,4 ms dans le budget
GET /api/v1/areas/{code}/csv 0,8 ms 1,3 ms 1,3 ms dans le budget

dernière heure mesurée : 2026-11-12 08:00 UTC

Temps total : ça dépend du pays

Temps total = aller-retour réseau + temps serveur. Le serveur est aux Pays-Bas. Les réponses sont gardées en cache par Cloudflare, qui a des points de présence dans de nombreuses villes africaines : quand la réponse y est déjà, elle part de la ville la plus proche et le trajet jusqu'en Europe disparaît. Le cache est vidé à chaque publication de nouvelles données.

Depuis Sans cache (vers l'Europe) Avec le cache Cloudflare
Europe ≈ 5 – 20 ms Un point de présence dans chaque grande ville
Afrique du Nord ≈ 50 – 100 ms Casablanca, Alger, Tunis, Le Caire
Afrique de l'Ouest ≈ 90 – 120 ms (Lagos) Lagos, Dakar, Abidjan
Afrique de l'Est variable, souvent via l'Europe Nairobi, Kigali, Addis-Abeba, Dar es Salaam
Afrique australe ≈ 160 – 250 ms Johannesburg, Le Cap, Durban, Lusaka

Ordres de grandeur publiés (Cloudflare, Hats Network, OpenMetal) ; ils varient selon l'opérateur. Un pays sans point de présence passe par la ville la plus proche.

Citer la source

Les chiffres gardent la licence de leur source. Pour les données du FMI, citez : « Source : Fonds monétaire international, Perspectives de l'économie mondiale (octobre 2026) », avec le lien, puis « via Syli Atlas ». La ligne 1 de chaque CSV et la page Méthode donnent la source exacte. Ce que Syli Atlas calcule (totaux, rangs, évolutions) est sous licence CC BY 4.0 : réutilisation libre, y compris commerciale, en citant Syli Atlas.

Méthode et sources →

Erreurs

Toujours le même format, avec un code stable à tester dans vos programmes.

  1. {
  2. "error": {
  3. "code": "unknown_area",
  4. "message": "Unknown area: XXX",
  5. "docs": "https://syliatlas.com/fr/api#erreurs"
  6. }
  7. }

Limites et cache

Requêtes par minute et par adresse IP
60
Quota restant
ratelimit-limit · ratelimit-remaining
Dépassement
429 · retry-after
Cache
max-age=3600 · etag
Temps serveur
server-timing

Les données changent au plus une fois par jour : envoyez If-None-Match, une réponse 304 ne coûte presque rien.

Hors périmètre

Pas de cours de bourse. Ils viennent de MansaAPI, dont la licence autorise l'affichage sur le site mais pas la rediffusion. Ils restent sur les pages Bourses et entreront dans l'API place par place, quand une source officielle l'autorisera. Voir les bourses