PHP — API para Obter Dados de Criptomoedas
Olá Gente!
Ober a cotação de criptomoedas parece super simples, mas é dificil achar uma API boa e gratuita.
Para isto, iremos utilizar a API da CoinGecko:
https://www.coingecko.com/
Antes de obtemos os detalhes de uma moeda, iremos obter a listagem de todas as moedas disponíveis.
Para isto, faça um GET para:
https://api.coingecko.com/api/v3/coins/list
Exemplo:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.coingecko.com/api/v3/coins/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
));
$response = curl_exec($curl);
$response2 = json_decode($response, true);
curl_close($curl);
foreach( $response2 as $RegResponse )
{
var_dump($RegResponse);
echo "\n\r";
echo "\n\r";
}
?>
Aqui iremos receber um array, onde cada elemento contem os detalhes de uma moeda:
{
"id": "bitcoin",
"symbol": "btc",
"name": "Bitcoin"
}
Nestes dados, o que iremos utilizar para obter os detalhes das moedas é o “id”:
{
“id”: “bitcoin”,
“symbol”: “btc”,
“name”: “Bitcoin”
}
Agora iremos obter os detalhes da moeda “bitcoin”, para isto, faça uma GET para:
https://api.coingecko.com/api/v3/coins/bitcoin
Exemplo:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.coingecko.com/api/v3/coins/bitcoin",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
));
$response = curl_exec($curl);
$response2 = json_decode($response, true);
curl_close($curl);
var_dump($response2);
?>
Aqui teremos um grande objeto com os dados da Moeda, o preço fica no objeto “market_data” que contem a cotação de vários países:
{
"market_data": {
"current_price": {
"aed": 159185,
"ars": 35789264,
"aud": 65896,
"bch": 179.689,
"bdt": 4756322,
"bhd": 16341.27,
"bmd": 43342,
"bnb": 140.337,
"brl": 215516,
"btc": 1.0,
"cad": 58214,
"chf": 37430,
"clp": 40516525,
"cny": 308650,
"czk": 992226,
"dkk": 298217,
"dot": 6204,
"eos": 60667,
"eth": 18.581298,
"eur": 40010,
"gbp": 34234,
"gel": 116372,
"hkd": 338805,
"huf": 15461588,
"idr": 685245413,
"ils": 158639,
"inr": 3602875,
"jpy": 6408786,
"krw": 57732883,
"kwd": 13335.32,
"lkr": 13742531,
"ltc": 636.554,
"mmk": 91007619,
"mxn": 745332,
"myr": 204897,
"ngn": 39441373,
"nok": 454437,
"nzd": 70932,
"php": 2442208,
"pkr": 12112506,
"pln": 174408,
"rub": 3890622,
"sar": 162538,
"sek": 453021,
"sgd": 58130,
"thb": 1536002,
"try": 1315531,
"twd": 1350682,
"uah": 1639204,
"usd": 43342,
"vef": 4339.79,
"vnd": 1058013956,
"xag": 1881.85,
"xau": 21.33,
"xdr": 32542,
"xlm": 377712,
"xrp": 82536,
"yfi": 5.91368,
"zar": 817866,
"bits": 999702,
"link": 2801,
"sats": 99970208
}
}
}
A cotação desta moeda para o REAL fica em:
{
“brl”: 215516
}
Onde “BRL” é a Sigla para o Brasil.
Por hoje é isto, queridos desenvolvedores! 👩💼
Até logo! 👋
Leia também
API Mágica: notificações Web Push no navegador com PHP
Web Push com a API Mágica em PHP puro: o navegador se inscreve, o seu site envia a notificação e a API conta o clique. Sem Composer e sem biblioteca.
IndexNow: avisando o Bing e o Yandex mais rápido
Como criar a chave do IndexNow e avisar Bing e Yandex das suas páginas novas com Node.js e PHP: as requisições, os erros reais e as armadilhas.
llms.txt: por que importa e como gerar em PHP
Por que o llms.txt importa para quem quer ser citado pela IA, e como gerar o seu em PHP puro lendo o sitemap.xml que voce ja tem.