API pública · solo lectura
Syli Atlas API
Indicadores económicos de los 54 países africanos, las 5 regiones y el continente, de 2015 a 2030, en JSON o CSV. Gratuito, sin registro, y cada respuesta cita su fuente.
https://syliatlas.com/api/v1
- Autenticación
- ninguno
- Formats
- json · csv
- Límite
- 60 req/min · IP
- Datos
- imf_weo · 2026-10
GET /api/v1/areas
Todas las zonas
Todas las zonas: países, regiones, el continente, agregados del FMI.
Parámetros
Sin parámetros.
Respuestas
200 application/json · {data, meta}
429 rate_limited
más allá 60 peticiones por minuto
- $ curl "https://syliatlas.com/api/v1/areas"
- const res = await fetch("https://syliatlas.com/api/v1/areas");
- const { data, meta } = await res.json();
- console.log(data.length);
- console.log(meta.sources[0]?.attribution.en);
- import requests
- r = requests.get("https://syliatlas.com/api/v1/areas", timeout=10)
- r.raise_for_status()
- body = r.json()
- data, meta = body["data"], body["meta"]
- # spreadsheets read the CSV route
- =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")
Respuesta 200 OK application/json max-age=3600
Respuesta real con los datos en línea, abreviada (…).
Esquema de la respuesta · 5 fields
meta
object
Sobre la respuesta.
meta.count
integer
Número de zonas.
GET /api/v1/areas/{code}
Una zona, todas las series
Una zona con todas sus series.
Parámetros
code
string
path
obligatorio
Código de zona: ISO 3 para un país, un código de región, africa o un agregado del FMI (véase /areas).
values : CIV, west_africa, africa…
from
integer
query
Primer año del periodo.
values : 2015 – 2030 · por defecto : 2020
to
integer
query
Último año del periodo, posterior a from.
values : 2015 – 2030 · por defecto : 2025
Respuestas
200 application/json · {data, meta}
400 invalid_period
años fuera de 2015–2030, o from ≥ to
404 unknown_area
código de zona desconocido
429 rate_limited
más allá 60 peticiones por minuto
- $ curl "https://syliatlas.com/api/v1/areas/CIV?from=2020&to=2025"
- const res = await fetch("https://syliatlas.com/api/v1/areas/CIV?from=2020&to=2025");
- const { data, meta } = await res.json();
- console.log(data.period.change_percent.real_gdp_index);
- console.log(meta.sources[0]?.attribution.en);
- import requests
- r = requests.get("https://syliatlas.com/api/v1/areas/CIV?from=2020&to=2025", timeout=10)
- r.raise_for_status()
- body = r.json()
- data, meta = body["data"], body["meta"]
- # spreadsheets read the CSV route
- =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")
Respuesta 200 OK application/json max-age=3600
Respuesta real con los datos en línea, abreviada (…).
Esquema de la respuesta · 19 fields
data
object
Una zona con todas sus series.
data.code
string
Código: ISO 3 para un país (CIV); si no, el código de la zona (west_africa, africa, SSA).
data.kind
string
Qué es la zona.
Valores : country | region | continent | imf_aggregate
data.region
string | null
Región de la Unión Africana de un país; null en los demás casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
data.members
string[]
Códigos de los países que forman una región o el continente. Vacío para un país y para los agregados del FMI (su composición es la del FMI).
data.share_of_africa_gdp
(number | null)[]
Peso en el PIB de África en dólares corrientes, en %, alineado con years.list. Calculado por Syli Atlas.
Unidad : %
meta
object
Sobre la respuesta.
meta.from
integer
Primer año utilizado.
meta.to
integer
Último año utilizado.
GET /api/v1/compare
Varias zonas lado a lado
Las zonas encontradas, en el orden pedido.
Parámetros
codes
string
query
obligatorio
De 2 a 6 códigos de zona, separados por comas. Los códigos desconocidos quedan fuera de data.
values : CIV,GHA,SEN…
from
integer
query
Primer año del periodo.
values : 2015 – 2030 · por defecto : 2020
to
integer
query
Último año del periodo, posterior a from.
values : 2015 – 2030 · por defecto : 2025
Respuestas
200 application/json · {data, meta}
400 invalid_period
años fuera de 2015–2030, o from ≥ to
429 rate_limited
más allá 60 peticiones por minuto
- $ curl "https://syliatlas.com/api/v1/compare?codes=CIV,GHA"
- const res = await fetch("https://syliatlas.com/api/v1/compare?codes=CIV,GHA");
- const { data, meta } = await res.json();
- console.log(data.map((a) => a.code));
- console.log(meta.sources[0]?.attribution.en);
- import requests
- r = requests.get("https://syliatlas.com/api/v1/compare?codes=CIV,GHA", timeout=10)
- r.raise_for_status()
- body = r.json()
- data, meta = body["data"], body["meta"]
- # spreadsheets read the CSV route
- =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")
Respuesta 200 OK application/json max-age=3600
Respuesta real con los datos en línea, abreviada (…).
Esquema de la respuesta · 16 fields
data
CompareItem[]
Las zonas encontradas, en el orden pedido.
data[].code
string
Código: ISO 3 para un país (CIV); si no, el código de la zona (west_africa, africa, SSA).
data[].kind
string
Qué es la zona.
Valores : country | region | continent | imf_aggregate
data[].region
string | null
Región de la Unión Africana de un país; null en los demás casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
meta
object
Sobre la respuesta.
meta.from
integer
Primer año utilizado.
meta.to
integer
Último año utilizado.
meta.codes
string[]
Los códigos pedidos.
GET /api/v1/ranking
Países clasificados según un indicador
Países, de mayor a menor valor; los que no tienen valor, al final.
Parámetros
indicator
string
query
Indicador por el que clasificar (véase /indicators).
values : 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 · por defecto : real_gdp_index
mode
string
query
change: variación entre from y to; value: valor en el año to.
values : change | value · por defecto : change
region
string
query
Conservar los países de una región.
values : north_africa | west_africa | central_africa | east_africa | southern_africa
from
integer
query
Primer año del periodo.
values : 2015 – 2030 · por defecto : 2020
to
integer
query
Último año del periodo, posterior a from.
values : 2015 – 2030 · por defecto : 2025
Respuestas
200 application/json · {data, meta}
400 invalid_period
años fuera de 2015–2030, o from ≥ to
429 rate_limited
más allá 60 peticiones por minuto
- $ curl "https://syliatlas.com/api/v1/ranking?indicator=real_gdp_index"
- const res = await fetch("https://syliatlas.com/api/v1/ranking?indicator=real_gdp_index");
- const { data, meta } = await res.json();
- console.log(data[0].name.fr, data[0].value, meta.unit);
- console.log(meta.sources[0]?.attribution.en);
- import requests
- r = requests.get("https://syliatlas.com/api/v1/ranking?indicator=real_gdp_index", timeout=10)
- r.raise_for_status()
- body = r.json()
- data, meta = body["data"], body["meta"]
- # spreadsheets read the CSV route
- =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")
Respuesta 200 OK application/json max-age=3600
Respuesta real con los datos en línea, abreviada (…).
Esquema de la respuesta · 18 fields
data
RankingItem[]
Países, de mayor a menor valor; los que no tienen valor, al final.
data[].code
string
Código: ISO 3 para un país (CIV); si no, el código de la zona (west_africa, africa, SSA).
data[].kind
string
Qué es la zona.
Valores : country | region | continent | imf_aggregate
data[].region
string | null
Región de la Unión Africana de un país; null en los demás casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
data[].position
integer | null
Puesto, 1 = valor más alto; null cuando el país no tiene valor.
data[].value
number | null
El valor clasificado, en meta.unit.
meta
object
Sobre la respuesta.
meta.from
integer
Primer año utilizado.
meta.to
integer
Último año utilizado.
meta.indicator
string
Indicador clasificado.
Valores : 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 o value.
Valores : change | value
meta.unit
string
Unidad de value: la unidad del indicador (modo value) o su unidad de variación (modo change).
Valores : percent | percent_of_gdp | percent_of_labour_force | usd_billion | usd | intl_dollar | million_people | index_2015 | points
meta.region
string | null
Región conservada, o null para todas.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
GET /api/v1/indicators
Los indicadores: unidad, significado, fuente
Todos los indicadores, en el orden de las series.
Parámetros
Sin parámetros.
Respuestas
200 application/json · {data, meta}
429 rate_limited
más allá 60 peticiones por minuto
- $ curl "https://syliatlas.com/api/v1/indicators"
- const res = await fetch("https://syliatlas.com/api/v1/indicators");
- const { data, meta } = await res.json();
- console.log(data.map((i) => i.key + ": " + i.unit));
- console.log(meta.sources[0]?.attribution.en);
- import requests
- r = requests.get("https://syliatlas.com/api/v1/indicators", timeout=10)
- r.raise_for_status()
- body = r.json()
- data, meta = body["data"], body["meta"]
- # spreadsheets read the CSV route
- =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")
Respuesta 200 OK application/json max-age=3600
Respuesta real con los datos en línea, abreviada (…).
Esquema de la respuesta · 16 fields
data
Indicator[]
Todos los indicadores, en el orden de las series.
data[].key
string
Clave usada en series y parámetros.
Valores : 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[].unit
string
Unidad de los valores (etiquetas en la documentación).
Valores : percent | percent_of_gdp | percent_of_labour_force | usd_billion | usd | intl_dollar | million_people | index_2015 | points
data[].kind
string
rate: ya es un porcentaje; level: una cantidad; index: 100 en 2015.
Valores : rate | level | index
data[].change_unit
string
Unidad de sus variaciones: puntos para las tasas, porcentaje en los demás casos.
Valores : percent | points
data[].source
object
De dónde viene.
data[].source.id
string
Fuente.
Valores : imf_weo
data[].source.code
string | null
Código de la serie en la fuente (IMF DataMapper); null cuando la calcula Syli Atlas.
meta
object
Sobre la respuesta.
meta.years
object
Años cubiertos.
meta.years.first
integer
Primer año.
meta.years.last
integer
Último año.
GET /api/v1/areas/{code}/csv
Una zona en CSV
La línea 1 es un comentario (#) que nombra la fuente. Luego una cabecera y una fila por año de 2015 a 2030. Columnas: 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 es actual, estimate o projection; celda vacía = sin valor. Unidades: véase /indicators.
Parámetros
code
string
path
obligatorio
Código de zona: ISO 3 para un país, un código de región, africa o un agregado del FMI (véase /areas).
values : CIV, west_africa, africa…
Respuestas
200 text/csv
404 unknown_area
código de zona desconocido
429 rate_limited
más allá 60 peticiones por minuto
- $ curl -O "https://syliatlas.com/api/v1/areas/CIV/csv"
- const res = await fetch("https://syliatlas.com/api/v1/areas/CIV/csv");
- const text = await res.text();
- // line 1: the source; then one row per year
- import pandas as pd
- url = "https://syliatlas.com/api/v1/areas/CIV/csv"
- df = pd.read_csv(url, comment="#")
- print(df[["year", "status", "real_gdp_index"]])
- =IMPORTDATA("https://syliatlas.com/api/v1/areas/CIV/csv")
Respuesta 200 OK text/csv max-age=3600
Respuesta real con los datos en línea, abreviada (…).
Indicadores
Todas las claves de series, change_percent y change_points, con su unidad. Las tasas varían en puntos porcentuales; los niveles y el índice, en porcentaje. Misma lista en GET /api/v1/indicators.
real_gdp_index
PIB real (índice)Volumen del PIB, 100 en 2015, encadenado a partir de las tasas de crecimiento real del FMI. Calculado por Syli Atlas. índice, 100 en 2015
index_2015
percent
—
real_gdp_growth
Crecimiento del PIB realVariación anual del PIB a precios constantes. %
percent
points
NGDP_RPCH
gdp_usd_bn
PIB, dólares corrientesProducto interior bruto a precios corrientes, en dólares estadounidenses. miles de millones de dólares estadounidenses corrientes
usd_billion
percent
NGDPD
gdp_per_capita_usd
PIB per cápitaPIB en dólares corrientes dividido por la población. dólares estadounidenses corrientes
usd
percent
NGDPDPC
gdp_per_capita_ppp
PIB per cápita, PPAPIB per cápita en paridad de poder adquisitivo (dólares internacionales corrientes): compara niveles de vida. dólares internacionales corrientes (PPA)
intl_dollar
percent
PPPPC
inflation
InflaciónVariación anual media de los precios al consumo. %
percent
points
PCPIPCH
public_debt_pct_gdp
Deuda públicaDeuda bruta del gobierno general, en % del PIB. % del PIB
percent_of_gdp
points
GGXWDG_NGDP
population_m
PoblaciónPoblación total. millones de personas
million_people
percent
LP
fiscal_balance_pct_gdp
Saldo presupuestarioCapacidad (+) o necesidad (−) de financiación del gobierno general, en % del PIB. % del PIB
percent_of_gdp
points
GGXCNL_NGDP
current_account_pct_gdp
Cuenta corrienteSaldo de los intercambios de bienes, servicios y rentas con el mundo, en % del PIB. % del PIB
percent_of_gdp
points
BCA_NGDPD
unemployment
DesempleoDesempleados en % de la población activa. El FMI no lo publica para todos los países. % de la población activa
percent_of_labour_force
points
LUR
Valores posibles
Todas las listas cerradas de la API. Las mismas, con sus etiquetas, en GET /api/v1 (values).
kindcountry- Uno de los 54 países africanos.
region- Una de las 5 regiones de la Unión Africana; totales calculados por Syli Atlas.
continent- África en su conjunto; totales calculados por Syli Atlas.
imf_aggregate- Un agregado publicado tal cual por el FMI: el mundo, el África subsahariana.
regionnorth_africa- África del Norte
west_africa- África Occidental
central_africa- África Central
east_africa- África Oriental
southern_africa- África Austral
years.statusactual- Valor observado.
estimate- Estimación del FMI: el año ha terminado pero las cifras no son definitivas.
projection- Proyección del FMI.
unitpercent- %
percent_of_gdp- % del PIB
percent_of_labour_force- % de la población activa
usd_billion- miles de millones de dólares estadounidenses corrientes
usd- dólares estadounidenses corrientes
intl_dollar- dólares internacionales corrientes (PPA)
million_people- millones de personas
index_2015- índice, 100 en 2015
points- puntos porcentuales
modechange- Variación entre from y to.
value- Valor en el año to.
Esquemas compartidos
Objetos presentes en varias respuestas. Descripción completa, legible por máquina: /api/v1/openapi.json (OpenAPI 3.1).
AreaRef · Una zona.
code
string
Código: ISO 3 para un país (CIV); si no, el código de la zona (west_africa, africa, SSA).
kind
string
Qué es la zona.
Valores : country | region | continent | imf_aggregate
region
string | null
Región de la Unión Africana de un país; null en los demás casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
Names · Un texto en francés y en inglés.
fr
string
En francés.
en
string
En inglés.
Pages · La página de la zona en el sitio.
fr
string
Página en francés.
en
string
Página en inglés.
Docs · Esta documentación.
fr
string
Documentación en francés.
en
string
Documentación en inglés.
Source · Una fuente de las cifras, con la atribución que copiar (attribution.fr o attribution.en).
id
string
Código de la fuente.
Valores : imf_weo
edition
string
Edición, AAAA-MM.
label
string
Título de la edición en la fuente.
url
string
La página de la fuente.
licence
string
Condiciones de reutilización.
licence_url
string
Las condiciones.
Years · Los años de las series.
first
integer
Primer año de la serie.
last
integer
Último año de la serie.
estimate_from
integer
Primer año estimado por el FMI.
projection_from
integer
Primer año proyectado por el FMI.
list
integer[]
Todos los años; la posición i de cada serie es el año list[i].
status
string[]
Estado de cada año, alineado con list.
Valores : actual | estimate | projection
Series · Una lista por indicador, alineada con years.list.
real_gdp_index
(number | null)[]
PIB real (índice), índice, 100 en 2015, un valor por año de years.list (null: sin valor).
Unidad : índice, 100 en 2015
real_gdp_growth
(number | null)[]
Crecimiento del PIB real, %, un valor por año de years.list (null: sin valor).
Unidad : %
gdp_usd_bn
(number | null)[]
PIB, dólares corrientes, miles de millones de dólares estadounidenses corrientes, un valor por año de years.list (null: sin valor).
Unidad : miles de millones de dólares estadounidenses corrientes
gdp_per_capita_usd
(number | null)[]
PIB per cápita, dólares estadounidenses corrientes, un valor por año de years.list (null: sin valor).
Unidad : dólares estadounidenses corrientes
gdp_per_capita_ppp
(number | null)[]
PIB per cápita, PPA, dólares internacionales corrientes (PPA), un valor por año de years.list (null: sin valor).
Unidad : dólares internacionales corrientes (PPA)
inflation
(number | null)[]
Inflación, %, un valor por año de years.list (null: sin valor).
Unidad : %
public_debt_pct_gdp
(number | null)[]
Deuda pública, % del PIB, un valor por año de years.list (null: sin valor).
Unidad : % del PIB
population_m
(number | null)[]
Población, millones de personas, un valor por año de years.list (null: sin valor).
Unidad : millones de personas
fiscal_balance_pct_gdp
(number | null)[]
Saldo presupuestario, % del PIB, un valor por año de years.list (null: sin valor).
Unidad : % del PIB
current_account_pct_gdp
(number | null)[]
Cuenta corriente, % del PIB, un valor por año de years.list (null: sin valor).
Unidad : % del PIB
unemployment
(number | null)[]
Desempleo, % de la población activa, un valor por año de years.list (null: sin valor).
Unidad : % de la población activa
Period · Variaciones en el periodo solicitado. null cuando un año no tiene valor.
from
integer
Primer año del periodo.
to
integer
Último año del periodo.
ChangePercent · Variaciones de los niveles y del índice, en porcentaje.
real_gdp_index
number | null
Variación del PIB real (índice) entre from y to, en %.
Unidad : %
gdp_usd_bn
number | null
Variación del PIB en dólares corrientes entre from y to, en %.
Unidad : %
gdp_per_capita_usd
number | null
Variación del PIB per cápita entre from y to, en %.
Unidad : %
gdp_per_capita_ppp
number | null
Variación del PIB per cápita en PPA entre from y to, en %.
Unidad : %
population_m
number | null
Variación de la población entre from y to, en %.
Unidad : %
ChangePoints · Variaciones de las tasas, en puntos porcentuales.
real_gdp_growth
number | null
Variación del crecimiento del PIB real entre from y to, en puntos porcentuales.
Unidad : puntos porcentuales
inflation
number | null
Variación de la inflación entre from y to, en puntos porcentuales.
Unidad : puntos porcentuales
public_debt_pct_gdp
number | null
Variación de la deuda pública entre from y to, en puntos porcentuales.
Unidad : puntos porcentuales
fiscal_balance_pct_gdp
number | null
Variación del saldo presupuestario entre from y to, en puntos porcentuales.
Unidad : puntos porcentuales
current_account_pct_gdp
number | null
Variación de la cuenta corriente entre from y to, en puntos porcentuales.
Unidad : puntos porcentuales
unemployment
number | null
Variación del desempleo entre from y to, en puntos porcentuales.
Unidad : puntos porcentuales
Rank · El puesto del país por crecimiento del PIB real en el periodo por defecto, en África y en su región. Calculado una vez por edición, por lo que no depende de from ni de to.
from
integer
Primer año del periodo de la clasificación (fijo).
to
integer
Último año del periodo de la clasificación (fijo).
indicator
string
Indicador clasificado.
Valores : real_gdp_index
change_percent
number | null
Crecimiento del PIB real en el periodo, en %.
Unidad : %
Position · Un puesto en una clasificación.
position
integer
Puesto, 1 = mayor crecimiento.
out_of
integer
Número de países clasificados.
Missing · Un hueco en una serie.
indicator
string
Indicador.
Valores : 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[]
Años sin valor.
Performance
Tiempo pasado en el servidor por cada ruta, desde la llegada de la petición hasta el envío de la respuesta, sin la red. Medido en cada petición y por una sonda horaria, para que una ruta poco llamada tenga también su medida. Presupuesto: 10 ms en el percentil 99. Cada respuesta indica además su propio tiempo en la cabecera Server-Timing.
/api/v1/areas
1,9 ms
1,9 ms
1,9 ms
within budget
/api/v1/areas/{code}
1,0 ms
1,0 ms
1,0 ms
within budget
/api/v1/ranking
2,4 ms
2,4 ms
2,4 ms
within budget
/api/v1/areas/{code}/csv
0,8 ms
1,3 ms
1,3 ms
within budget
last hour measured : 2026-11-12 08:00 UTC
Tiempo total: depende del país
Tiempo total = ida y vuelta por la red + tiempo de servidor. El servidor está en los Países Bajos. Cloudflare guarda en caché las respuestas y tiene puntos de presencia en muchas ciudades africanas: cuando la respuesta ya está allí, sale desde la ciudad más cercana y desaparece el viaje a Europa. La caché se vacía cada vez que se publican nuevos datos.
Órdenes de magnitud publicados (Cloudflare, Hats Network, OpenMetal); varían según el operador. Un país sin punto de presencia pasa por la ciudad más cercana.
Citar la fuente
Las cifras conservan la licencia de su fuente. Para los datos del FMI, cite: «Fuente: Fondo Monetario Internacional, World Economic Outlook (octubre de 2026)», con el enlace, y luego «vía Syli Atlas». La línea 1 de cada CSV y la página Método dan la fuente exacta. Lo que calcula Syli Atlas (totales, clasificaciones, variaciones) está bajo CC BY 4.0: reutilización libre, incluso comercial, citando a Syli Atlas.
Errores
Siempre la misma forma, con un código estable que probar en sus programas.
- {
- "error": {
- "code": "unknown_area",
- "message": "Unknown area: XXX",
- "docs": "https://syliatlas.com/es/api#errors"
- }
- }
Límites y caché
- Peticiones por minuto y por dirección IP
- 60
- Cuota restante
- ratelimit-limit · ratelimit-remaining
- Por encima del límite
- 429 · retry-after
- Cache
- max-age=3600 · etag
- Tiempo de servidor
- server-timing
Los datos cambian como mucho una vez al día: envíe If-None-Match, una respuesta 304 no cuesta casi nada.
Fuera del alcance
Sin cotizaciones bursátiles. Proceden de MansaAPI, cuya licencia permite mostrarlas en el sitio pero no redistribuirlas. Se quedan en las páginas de bolsa y se incorporarán a la API bolsa por bolsa, cuando una fuente oficial lo permita. Ver las bolsas