API pública · só leitura
Syli Atlas API
Indicadores económicos dos 54 países africanos, das 5 regiões e do continente, de 2015 a 2030, em JSON ou CSV. Gratuito, sem registo, e cada resposta indica a sua fonte.
https://syliatlas.com/api/v1
- Autenticação
- nenhum
- Formats
- json · csv
- Limite
- 60 req/min · IP
- Dados
- imf_weo · 2026-10
GET /api/v1/areas
Todas as zonas
Todas as zonas: países, regiões, o continente, agregados do FMI.
Parâmetros
Sem parâmetros.
Respostas
200 application/json · {data, meta}
429 rate_limited
para além 60 pedidos 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")
Resposta 200 OK application/json max-age=3600
Resposta real com os dados em linha, abreviada (…).
Esquema da resposta · 5 fields
GET /api/v1/areas/{code}
Uma zona, todas as séries
Uma zona com todas as séries.
Parâmetros
code
string
path
obrigatório
Código de zona: ISO 3 para um país, um código de região, africa ou um agregado do FMI (ver /areas).
values : CIV, west_africa, africa…
from
integer
query
Primeiro ano do período.
values : 2015 – 2030 · por defeito : 2020
to
integer
query
Último ano do período, depois de from.
values : 2015 – 2030 · por defeito : 2025
Respostas
200 application/json · {data, meta}
400 invalid_period
anos fora de 2015–2030, ou from ≥ to
404 unknown_area
código de zona desconhecido
429 rate_limited
para além 60 pedidos 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")
Resposta 200 OK application/json max-age=3600
Resposta real com os dados em linha, abreviada (…).
Esquema da resposta · 19 fields
data
object
Uma zona com todas as séries.
data.code
string
Código: ISO 3 para um país (CIV); caso contrário, o código da zona (west_africa, africa, SSA).
data.kind
string
O que é a zona.
Valores : country | region | continent | imf_aggregate
data.region
string | null
Região da União Africana de um país; null nos outros casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
data.members
string[]
Códigos dos países que formam uma região ou o continente. Vazio para um país e para os agregados do FMI (a sua composição é a do FMI).
data.share_of_africa_gdp
(number | null)[]
Peso no PIB de África em dólares correntes, em %, alinhado com years.list. Calculado pelo Syli Atlas.
Unidade : %
meta
object
Sobre a resposta.
meta.from
integer
Primeiro ano utilizado.
meta.to
integer
Último ano utilizado.
GET /api/v1/compare
Várias zonas lado a lado
As zonas encontradas, pela ordem pedida.
Parâmetros
codes
string
query
obrigatório
De 2 a 6 códigos de zona, separados por vírgulas. Os códigos desconhecidos ficam fora de data.
values : CIV,GHA,SEN…
from
integer
query
Primeiro ano do período.
values : 2015 – 2030 · por defeito : 2020
to
integer
query
Último ano do período, depois de from.
values : 2015 – 2030 · por defeito : 2025
Respostas
200 application/json · {data, meta}
400 invalid_period
anos fora de 2015–2030, ou from ≥ to
429 rate_limited
para além 60 pedidos 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")
Resposta 200 OK application/json max-age=3600
Resposta real com os dados em linha, abreviada (…).
Esquema da resposta · 16 fields
data
CompareItem[]
As zonas encontradas, pela ordem pedida.
data[].code
string
Código: ISO 3 para um país (CIV); caso contrário, o código da zona (west_africa, africa, SSA).
data[].kind
string
O que é a zona.
Valores : country | region | continent | imf_aggregate
data[].region
string | null
Região da União Africana de um país; null nos outros casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
meta
object
Sobre a resposta.
meta.from
integer
Primeiro ano utilizado.
meta.to
integer
Último ano utilizado.
meta.codes
string[]
Os códigos pedidos.
GET /api/v1/ranking
Países classificados segundo um indicador
Países, do valor mais alto ao mais baixo; os sem valor, no fim.
Parâmetros
indicator
string
query
Indicador pelo qual classificar (ver /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 defeito : real_gdp_index
mode
string
query
change: variação entre from e to; value: valor no ano to.
values : change | value · por defeito : change
region
string
query
Manter os países de uma região.
values : north_africa | west_africa | central_africa | east_africa | southern_africa
from
integer
query
Primeiro ano do período.
values : 2015 – 2030 · por defeito : 2020
to
integer
query
Último ano do período, depois de from.
values : 2015 – 2030 · por defeito : 2025
Respostas
200 application/json · {data, meta}
400 invalid_period
anos fora de 2015–2030, ou from ≥ to
429 rate_limited
para além 60 pedidos 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")
Resposta 200 OK application/json max-age=3600
Resposta real com os dados em linha, abreviada (…).
Esquema da resposta · 18 fields
data
RankingItem[]
Países, do valor mais alto ao mais baixo; os sem valor, no fim.
data[].code
string
Código: ISO 3 para um país (CIV); caso contrário, o código da zona (west_africa, africa, SSA).
data[].kind
string
O que é a zona.
Valores : country | region | continent | imf_aggregate
data[].region
string | null
Região da União Africana de um país; null nos outros casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
data[].position
integer | null
Posição, 1 = valor mais alto; null quando o país não tem valor.
data[].value
number | null
O valor classificado, em meta.unit.
meta
object
Sobre a resposta.
meta.from
integer
Primeiro ano utilizado.
meta.to
integer
Último ano utilizado.
meta.indicator
string
Indicador classificado.
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 ou value.
Valores : change | value
meta.unit
string
Unidade de value: a unidade do indicador (modo value) ou a sua unidade de variação (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ão mantida, ou null para todas.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
GET /api/v1/indicators
Os indicadores: unidade, significado, fonte
Todos os indicadores, pela ordem das séries.
Parâmetros
Sem parâmetros.
Respostas
200 application/json · {data, meta}
429 rate_limited
para além 60 pedidos 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")
Resposta 200 OK application/json max-age=3600
Resposta real com os dados em linha, abreviada (…).
Esquema da resposta · 16 fields
data
Indicator[]
Todos os indicadores, pela ordem das séries.
data[].key
string
Chave usada em series e nos 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
Unidade dos valores (rótulos na documentação).
Valores : percent | percent_of_gdp | percent_of_labour_force | usd_billion | usd | intl_dollar | million_people | index_2015 | points
data[].kind
string
rate: já é uma percentagem; level: uma quantidade; index: 100 em 2015.
Valores : rate | level | index
data[].change_unit
string
Unidade das suas variações: pontos para as taxas, percentagem nos outros casos.
Valores : percent | points
data[].source
object
De onde vem.
data[].source.id
string
Fonte.
Valores : imf_weo
data[].source.code
string | null
Código da série na fonte (IMF DataMapper); null quando calculada pelo Syli Atlas.
meta
object
Sobre a resposta.
meta.years
object
Anos cobertos.
meta.years.first
integer
Primeiro ano.
meta.years.last
integer
Último ano.
GET /api/v1/areas/{code}/csv
Uma zona em CSV
A linha 1 é um comentário (#) que indica a fonte. Depois um cabeçalho e uma linha por ano de 2015 a 2030. Colunas: 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 é actual, estimate ou projection; célula vazia = sem valor. Unidades: ver /indicators.
Parâmetros
code
string
path
obrigatório
Código de zona: ISO 3 para um país, um código de região, africa ou um agregado do FMI (ver /areas).
values : CIV, west_africa, africa…
Respostas
200 text/csv
404 unknown_area
código de zona desconhecido
429 rate_limited
para além 60 pedidos 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")
Resposta 200 OK text/csv max-age=3600
Resposta real com os dados em linha, abreviada (…).
Indicadores
Todas as chaves de series, change_percent e change_points, com a sua unidade. As taxas variam em pontos percentuais; os níveis e o índice, em percentagem. Mesma lista em GET /api/v1/indicators.
real_gdp_index
PIB real (índice)Volume do PIB, 100 em 2015, encadeado a partir das taxas de crescimento real do FMI. Calculado pelo Syli Atlas. índice, 100 em 2015
index_2015
percent
—
real_gdp_growth
Crescimento do PIB realVariação anual do PIB a preços constantes. %
percent
points
NGDP_RPCH
gdp_usd_bn
PIB, dólares correntesProduto interno bruto a preços correntes, em dólares americanos. milhares de milhões de dólares americanos correntes
usd_billion
percent
NGDPD
gdp_per_capita_usd
PIB per capitaPIB em dólares correntes dividido pela população. dólares americanos correntes
usd
percent
NGDPDPC
gdp_per_capita_ppp
PIB per capita, PPCPIB per capita em paridade do poder de compra (dólares internacionais correntes): compara níveis de vida. dólares internacionais correntes (PPC)
intl_dollar
percent
PPPPC
inflation
InflaçãoVariação anual média dos preços no consumidor. %
percent
points
PCPIPCH
public_debt_pct_gdp
Dívida públicaDívida bruta das administrações públicas, em % do PIB. % do PIB
percent_of_gdp
points
GGXWDG_NGDP
population_m
PopulaçãoPopulação total. milhões de pessoas
million_people
percent
LP
fiscal_balance_pct_gdp
Saldo orçamentalCapacidade (+) ou necessidade (−) de financiamento das administrações públicas, em % do PIB. % do PIB
percent_of_gdp
points
GGXCNL_NGDP
current_account_pct_gdp
Balança correnteSaldo das trocas de bens, serviços e rendimentos com o mundo, em % do PIB. % do PIB
percent_of_gdp
points
BCA_NGDPD
unemployment
DesempregoDesempregados em % da população ativa. O FMI não o publica para todos os países. % da população ativa
percent_of_labour_force
points
LUR
Valores possíveis
Todas as listas fechadas da API. As mesmas, com os seus rótulos, em GET /api/v1 (values).
kindcountry- Um dos 54 países africanos.
region- Uma das 5 regiões da União Africana; totais calculados pelo Syli Atlas.
continent- África no seu conjunto; totais calculados pelo Syli Atlas.
imf_aggregate- Um agregado publicado tal como está pelo FMI: o mundo, a África subsariana.
regionnorth_africa- África do Norte
west_africa- África Ocidental
central_africa- África Central
east_africa- África Oriental
southern_africa- África Austral
years.statusactual- Valor observado.
estimate- Estimativa do FMI: o ano terminou mas os números não são definitivos.
projection- Projeção do FMI.
unitpercent- %
percent_of_gdp- % do PIB
percent_of_labour_force- % da população ativa
usd_billion- milhares de milhões de dólares americanos correntes
usd- dólares americanos correntes
intl_dollar- dólares internacionais correntes (PPC)
million_people- milhões de pessoas
index_2015- índice, 100 em 2015
points- pontos percentuais
modechange- Variação entre from e to.
value- Valor no ano to.
Esquemas partilhados
Objetos presentes em várias respostas. Descrição completa, legível por máquina: /api/v1/openapi.json (OpenAPI 3.1).
AreaRef · Uma zona.
code
string
Código: ISO 3 para um país (CIV); caso contrário, o código da zona (west_africa, africa, SSA).
kind
string
O que é a zona.
Valores : country | region | continent | imf_aggregate
region
string | null
Região da União Africana de um país; null nos outros casos.
Valores : north_africa | west_africa | central_africa | east_africa | southern_africa | null
Names · Um texto em francês e em inglês.
fr
string
Em francês.
en
string
Em inglês.
Pages · A página da zona no site.
fr
string
Página em francês.
en
string
Página em inglês.
Docs · Esta documentação.
fr
string
Documentação em francês.
en
string
Documentação em inglês.
Source · Uma fonte dos números, com a atribuição a copiar (attribution.fr ou attribution.en).
id
string
Código da fonte.
Valores : imf_weo
edition
string
Edição, AAAA-MM.
label
string
Título da edição na fonte.
url
string
A página da fonte.
licence
string
Condições de reutilização.
licence_url
string
As condições.
Years · Os anos das séries.
first
integer
Primeiro ano da série.
last
integer
Último ano da série.
estimate_from
integer
Primeiro ano estimado pelo FMI.
projection_from
integer
Primeiro ano projetado pelo FMI.
list
integer[]
Todos os anos; a posição i de cada série é o ano list[i].
status
string[]
Estado de cada ano, alinhado com list.
Valores : actual | estimate | projection
Series · Uma lista por indicador, alinhada com years.list.
real_gdp_index
(number | null)[]
PIB real (índice), índice, 100 em 2015, um valor por ano de years.list (null: sem valor).
Unidade : índice, 100 em 2015
real_gdp_growth
(number | null)[]
Crescimento do PIB real, %, um valor por ano de years.list (null: sem valor).
Unidade : %
gdp_usd_bn
(number | null)[]
PIB, dólares correntes, milhares de milhões de dólares americanos correntes, um valor por ano de years.list (null: sem valor).
Unidade : milhares de milhões de dólares americanos correntes
gdp_per_capita_usd
(number | null)[]
PIB per capita, dólares americanos correntes, um valor por ano de years.list (null: sem valor).
Unidade : dólares americanos correntes
gdp_per_capita_ppp
(number | null)[]
PIB per capita, PPC, dólares internacionais correntes (PPC), um valor por ano de years.list (null: sem valor).
Unidade : dólares internacionais correntes (PPC)
inflation
(number | null)[]
Inflação, %, um valor por ano de years.list (null: sem valor).
Unidade : %
public_debt_pct_gdp
(number | null)[]
Dívida pública, % do PIB, um valor por ano de years.list (null: sem valor).
Unidade : % do PIB
population_m
(number | null)[]
População, milhões de pessoas, um valor por ano de years.list (null: sem valor).
Unidade : milhões de pessoas
fiscal_balance_pct_gdp
(number | null)[]
Saldo orçamental, % do PIB, um valor por ano de years.list (null: sem valor).
Unidade : % do PIB
current_account_pct_gdp
(number | null)[]
Balança corrente, % do PIB, um valor por ano de years.list (null: sem valor).
Unidade : % do PIB
unemployment
(number | null)[]
Desemprego, % da população ativa, um valor por ano de years.list (null: sem valor).
Unidade : % da população ativa
Period · Variações no período pedido. null quando um ano não tem valor.
from
integer
Primeiro ano do período.
to
integer
Último ano do período.
ChangePercent · Variações dos níveis e do índice, em percentagem.
real_gdp_index
number | null
Variação do PIB real (índice) entre from e to, em %.
Unidade : %
gdp_usd_bn
number | null
Variação do PIB em dólares correntes entre from e to, em %.
Unidade : %
gdp_per_capita_usd
number | null
Variação do PIB per capita entre from e to, em %.
Unidade : %
gdp_per_capita_ppp
number | null
Variação do PIB per capita em PPC entre from e to, em %.
Unidade : %
population_m
number | null
Variação da população entre from e to, em %.
Unidade : %
ChangePoints · Variações das taxas, em pontos percentuais.
real_gdp_growth
number | null
Variação do crescimento do PIB real entre from e to, em pontos percentuais.
Unidade : pontos percentuais
inflation
number | null
Variação da inflação entre from e to, em pontos percentuais.
Unidade : pontos percentuais
public_debt_pct_gdp
number | null
Variação da dívida pública entre from e to, em pontos percentuais.
Unidade : pontos percentuais
fiscal_balance_pct_gdp
number | null
Variação do saldo orçamental entre from e to, em pontos percentuais.
Unidade : pontos percentuais
current_account_pct_gdp
number | null
Variação da balança corrente entre from e to, em pontos percentuais.
Unidade : pontos percentuais
unemployment
number | null
Variação do desemprego entre from e to, em pontos percentuais.
Unidade : pontos percentuais
Rank · A posição do país pelo crescimento do PIB real no período por defeito, em África e na sua região. Calculada uma vez por edição, pelo que não depende de from nem de to.
from
integer
Primeiro ano do período da classificação (fixo).
to
integer
Último ano do período da classificação (fixo).
indicator
string
Indicador classificado.
Valores : real_gdp_index
change_percent
number | null
Crescimento do PIB real no período, em %.
Unidade : %
Position · Uma posição numa classificação.
position
integer
Posição, 1 = maior crescimento.
out_of
integer
Número de países classificados.
Missing · Uma lacuna numa série.
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[]
Anos sem valor.
Performance
Tempo passado no servidor por cada rota, desde a chegada do pedido até ao envio da resposta, sem a rede. Medido em cada pedido e por uma sonda horária, para que uma rota pouco chamada tenha também a sua medida. Orçamento: 10 ms no percentil 99. Cada resposta indica também o seu próprio tempo no cabeçalho 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
Tempo total: depende do país
Tempo total = ida e volta pela rede + tempo de servidor. O servidor está nos Países Baixos. As respostas ficam em cache na Cloudflare, que tem pontos de presença em muitas cidades africanas: quando a resposta já lá está, sai da cidade mais próxima e a viagem até à Europa desaparece. A cache é esvaziada sempre que são publicados novos dados.
Ordens de grandeza publicadas (Cloudflare, Hats Network, OpenMetal); variam com o operador. Um país sem ponto de presença passa pela cidade mais próxima.
Citar a fonte
Os números mantêm a licença da sua fonte. Para os dados do FMI, cite: «Fonte: Fundo Monetário Internacional, World Economic Outlook (outubro de 2026)», com a ligação, e depois «via Syli Atlas». A linha 1 de cada CSV e a página Método indicam a fonte exata. O que o Syli Atlas calcula (totais, posições, variações) está sob CC BY 4.0: reutilização livre, incluindo comercial, mencionando o Syli Atlas.
Erros
Sempre a mesma forma, com um código estável a testar nos seus programas.
- {
- "error": {
- "code": "unknown_area",
- "message": "Unknown area: XXX",
- "docs": "https://syliatlas.com/pt/api#errors"
- }
- }
Limites e cache
- Pedidos por minuto e por endereço IP
- 60
- Quota restante
- ratelimit-limit · ratelimit-remaining
- Acima do limite
- 429 · retry-after
- Cache
- max-age=3600 · etag
- Tempo de servidor
- server-timing
Os dados mudam no máximo uma vez por dia: envie If-None-Match, uma resposta 304 quase não custa nada.
Fora do âmbito
Sem cotações bolsistas. Vêm da MansaAPI, cuja licença permite a apresentação no site mas não a redistribuição. Ficam nas páginas das bolsas e entrarão na API bolsa a bolsa, quando uma fonte oficial o permitir. Ver as bolsas