Dados Financeiros e Cambiais (FX)
Obtenha taxas de câmbio e preços de criptomoedas com chamadas API sem necessidade de chave. O erro que isto evita: recorrer a exchangerate.host, Fixer ou Alpha Vantage da memória de treinamento – todos agora exigem chave – ou usar uma taxa desatualizada da memória de treinamento num cálculo real.
APIs Classificadas
- Frankfurter (api.frankfurter.dev) – PADRÃO para FX fiduciário. Taxas de referência do Banco Central Europeu, ~30 moedas principais, histórico desde 1999, séries temporais, sem chave, sem limite de taxa que valha a pena preocupar-se.
- Camada gratuita da CoinGecko (api.coingecko.com) – preços de criptomoedas, capitalizações de mercado, variação em 24h para milhares de moedas. Sem chave, mas com um limite apertado: aproximadamente 5 a 15 chamadas/min de um IP anónimo. Agrupe IDs numa única chamada; em caso de erro 429, aguarde 60s.
Procedimento
- Fiduciário ou cripto? Fiduciário → Frankfurter. Cripto → CoinGecko. Conversão Cripto→fiduciário é uma chamada à CoinGecko (
vs_currencies=eur), não duas etapas. - Datas da taxa. As taxas de referência do BCE são atualizadas por volta das 16:00 CET nos dias úteis; o campo
dateda resposta indica o dia real que obteve. Pedidos em fins de semana/feriados devolvem a taxa do último dia útil anterior – mencione essa data, não a apresente como sendo de hoje. - Use IDs da CoinGecko, não tickers. O parâmetro
idsesperabitcoin,ethereum,solana– não BTC/ETH. Para uma moeda desconhecida, resolva primeiro através de/api/v3/search?query={nome}→coins[0].id. - Nunca faça matemática cambial a partir da memória. Se a tarefa multiplicar dinheiro por uma taxa, a taxa tem de vir de uma destas chamadas, com a data anexada.
Pergunte ao utilizador apenas se faltar: par de moedas ou criptomoeda (sem padrão), data/intervalo (padrão: a mais recente), quantia (padrão: 1).
Modelos de URL + formas reais das respostas
Taxa de câmbio mais recente:
https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP,JPY
{"amount":1.0,"base":"USD","date":"<último dia útil>","rates":{"EUR":0.87352,"GBP":0.74878,"JPY":161.15}}
Converta uma quantia no servidor com &amount=250 – rates vem pré-multiplicado.
Histórico / série temporal:
https://api.frankfurter.dev/v1/2024-01-15?base=USD&symbols=EUR ← uma data
https://api.frankfurter.dev/v1/2024-01-02..2024-01-31?base=USD&symbols=EUR ← intervalo
https://api.frankfurter.dev/v1/currencies ← mapa código → nome
Forma do intervalo: {"rates":{"2024-01-02":{"EUR":0.91274},"2024-01-03":{"EUR":0.91583}}} – chaveado por data, apenas dias úteis (um ano completo devolve ~256 pontos diários; sem chaves de fim-de-semana, portanto não trate lacunas como dados em falta). Omita a data final (/2024-01-02..) para ir até ao presente.
Preço à vista de criptomoeda:
https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd&include_24hr_change=true
{"bitcoin":{"usd":63289,"usd_24h_change":1.19},"ethereum":{"usd":1790.89,"usd_24h_change":1.90}}
IDs desconhecidos são silenciosamente omitidos da resposta – uma chave em falta significa um ID errado, não um preço nulo.
Tabela de mercado cripto (ranking, capitalização, fornecimento):
https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=20&page=1
Array de {"id","symbol","name","current_price","market_cap","market_cap_rank","price_change_percentage_24h","circulating_supply","ath"} – uma chamada substitui vinte chamadas /simple/price; prefira-a para qualquer lista.
Resultado
A taxa ou preço com a sua data/carimbo temporal e fonte nomeados, mais o URL exato usado. Qualquer conversão mostra a aritmética: 250 USD × 0,87352 (BCE, <data da taxa>) = 218,38 EUR.
NÃO utilize – recorra a X em vez disso
- exchangerate.host – cada pedido requer agora uma
access_key; verificado que falha sem chave. Frankfurter substitui-o. - Fixer, Alpha Vantage, Finnhub, Polygon, OpenExchangeRates – exigem chave; não envie um utilizador a registar-se quando Frankfurter/CoinGecko cobrem a necessidade.
- Cotações de ações/participações – nada sem chave sobrevive à verificação. Diga isso claramente e nomeie as opções pagas em vez de inventar um preço.
- PIB, inflação, desemprego, séries comerciais – government-open-data.
- Conselhos financeiros – este skill obtém números; juízos de compra/venda/alocação estão fora do âmbito. Apresente dados, não recomendações.
Padrão de qualidade
- Cada número transporta a sua data e fonte; nenhuma taxa ou preço tem origem na memória de treinamento.
- Respeitado o limite de ~30 moedas da Frankfurter – pares exóticos (ex: NGN, VND) são declarados como não suportados, não aproximados.
- Chamadas à CoinGecko são agrupadas; um erro 429 produz uma pausa, não um ciclo de repetição.
Recolhido e verificado quanto à atualidade a partir do projeto public-apis (MIT).