Aprendizado@joaoguirunas

O Repositório com Todas as APIs Grátis (e um Painel no Claude Code)

Use o public-apis, a lista com quase 2 mil APIs grátis: ache a API certa, teste com curl e monte um painel de câmbio e clima com o Claude Code.

public-apis
$ git clone https://github.com/public-apis/public-apis
✓ repositório pronto para uso local

O que é

O Repositório com Todas as APIs Grátis (e um Painel no Claude Code)

O public-apis é um dos maiores repositórios do GitHub (mais de 480 mil estrelas, licença MIT): uma lista mantida pela comunidade com quase 2 mil APIs, organizadas em 51 categorias como clima, câmbio, cripto, notícia, esporte e dados da NASA. Nesta página você aprende a ler a tabela, escolher a API certa e pedir ao Claude Code um painel de câmbio e clima.

Nem tudo é "só pegar e usar": cerca de metade das APIs não pede chave, mas muitas pedem uma chave gratuita ou login, algumas só valem para uso não comercial, e a lista envelhece. Você vai ver como testar antes de codar e como guardar chaves com segurança.

No fim, você leva o prompt do painel, o HTML de exemplo e um roteiro para checar o risco antes de entregar algo a um cliente.

Uma lista, quase 2 mil APIs

Cerca de 1.966 APIs em 51 categorias no dia 01/10/2026, com colunas de autenticação, HTTPS e CORS.

Painel em um arquivo

Câmbio e clima em um único index.html, gerado pelo Claude Code a partir de um prompt pronto.

Teste antes de codar

Chamadas com curl para confirmar que a API responde, antes de gastar tempo no código.

Honestidade sobre a lista

Fontes patrocinadas no topo, endpoints que mudam e termos de uso: o que olhar antes de usar com cliente.

Nível: iniciante · Tempo estimado: ~15 min. Não exige instalação: só navegador e Claude Code

Atenção:

Ainda não gravamos nem testamos o painel gerado pelo Claude Code neste tutorial. As chamadas das APIs de exemplo (Open-Meteo, Frankfurter, AwesomeAPI) foram testadas ao vivo em 01/10/2026, e o HTML de exemplo abaixo teve a lógica de busca verificada, mas a renderização no navegador não foi conferida. Teste e confira os números contra a fonte.

Pré-requisitos

  • Claude Code aberto numa pasta vazia
  • Um navegador (Chrome, Safari, Firefox)
  • Opcional: conta gratuita nas APIs que pedem chave
  • Custo: o repositório é gratuito (licença MIT). Cada API tem as próprias regras de uso e limites, e algumas são pagas ou restritas a uso não comercial

Conceitos-chave

  1. 01

    API

    Um endereço na internet que devolve dados em formato JSON (cotação, clima, filme). Você chama, ela responde.

  2. 02

    Chave (apiKey) e OAuth

    Algumas APIs não pedem nada (Auth = No). Outras pedem uma chave gratuita que você cria no site delas (apiKey). Outras exigem login (OAuth). Não é verdade que a maioria só pede uma chave: na contagem de 01/10/2026, cerca de 48% não pediam nada, 44% pediam apiKey e 8% OAuth.

  3. 03

    CORS

    Regra do navegador. Se a API responde com permissão (CORS = Yes na tabela), dá para chamá-la direto de uma página HTML. Se não, você precisa de um servidor no meio.

  4. 04

    Limites e termos de uso

    Toda API tem um limite de chamadas e regras. Várias são gratuitas só para uso não comercial. Antes de usar em entrega para cliente, leia os termos.

Atenção:

O topo do README do public-apis traz conteúdo patrocinado da APILayer (uma tabela de APIs com link de rastreio). Essas APIs pedem conta e chave e têm plano pago. Pule esse bloco e vá direto às categorias logo abaixo. A lista é curadoria da comunidade: o repositório não valida se cada API continua no ar ou no mesmo plano.

Passo a passo

  1. 01

    Passo 1 — Abrir o repositório e ir às categorias

    Abra o repositório (licença MIT) e role até as tabelas por categoria. No dia 01/10/2026 ele listava cerca de 1.966 APIs em 51 categorias (o número muda a cada contribuição). O repositório passa de 480 mil estrelas.

    https://github.com/public-apis/public-apis
  2. 02

    Passo 2 — Ler as colunas Auth e CORS

    Cada tabela tem API, Description, Auth, HTTPS e CORS. Para o primeiro projeto, procure Auth = No e CORS = Yes: funciona sem criar conta e direto do navegador.

  3. 03

    Passo 3 — Escolher a categoria do seu projeto

    As categorias do vídeo existem no README com estes nomes: clima = Weather; mapa e CEP = Geocoding; filme e série = Video; música = Music; cripto = Cryptocurrency; notícia = News; esporte = Sports & Fitness; finanças = Finance e Currency Exchange; NASA e ciência = Science & Math e Open Data.

  4. 04

    Passo 4 — Testar a API no terminal antes de pedir ao Claude

    Duas chamadas sem chave, testadas em 01/10/2026. O câmbio responde com a cotação do dólar em reais, e o clima com a temperatura atual de São Paulo. A Frankfurter mudou de endereço: o README da lista ainda cita frankfurter.app, mas o host atual é api.frankfurter.dev.

    curl "https://api.frankfurter.dev/v1/latest?base=USD&symbols=BRL" curl "https://api.open-meteo.com/v1/forecast?latitude=-23.55&longitude=-46.63&current=temperature_2m&timezone=America/Sao_Paulo"
  5. 05

    Passo 5 — Pedir ao Claude Code para montar o painel

    Cole o prompt do painel (o primeiro abaixo). Ele escolhe uma API de câmbio e uma de clima, testa cada endpoint e cria um index.html único.

  6. 06

    Passo 6 — Abrir o index.html e conferir os números

    Dê duplo clique no arquivo para abrir no navegador. Compare a cotação com o site da API ou do Banco Central antes de confiar. Se algo ficar em "…", abra o console do navegador (F12) e veja o erro.

  7. 07

    Passo 7 — Ampliar e revisar antes de entregar

    Troque cidade e moedas, adicione cripto ou notícia (prompt de ampliar). Antes de entregar para cliente, rode o prompt de checagem de risco.

  8. 08

    Passo 8 — Guardar chaves fora do código

    Se a API pedir chave (como a da NASA), guarde em um arquivo .env que esteja no .gitignore e nunca escreva a chave no HTML público. Use o prompt de API com chave.

HTML do painel de exemplo

Este é um painel de arquivo único com câmbio (Frankfurter) e clima (Open-Meteo), as duas APIs sem chave e com CORS liberado. Salve como index.html se quiser ver funcionando sem pedir nada ao Claude. A lógica de busca foi testada em Node; a renderização no navegador não foi verificada.

index.html
<!doctype html>
<html lang="pt-BR">
<meta charset="utf-8">
<title>Painel: câmbio e clima</title>
<style>body{font-family:system-ui;max-width:420px;margin:2rem auto}.card{border:1px solid #ddd;border-radius:12px;padding:1rem;margin:.5rem 0}.n{font-size:2rem;font-weight:700}</style>
<h1>Painel</h1>
<div class="card"><div>Dólar (USD → BRL)</div><div class="n" id="usd">…</div></div>
<div class="card"><div>Euro (EUR → BRL)</div><div class="n" id="eur">…</div></div>
<div class="card"><div>São Paulo agora</div><div class="n" id="temp">…</div></div>
<script>
async function carregar() {
  const [cambio, clima] = await Promise.all([
    fetch("https://api.frankfurter.dev/v1/latest?base=USD&symbols=BRL,EUR").then(r => r.json()),
    fetch("https://api.open-meteo.com/v1/forecast?latitude=-23.55&longitude=-46.63&current=temperature_2m&timezone=America/Sao_Paulo").then(r => r.json())
  ]);
  const brl = cambio.rates.BRL;
  document.getElementById("usd").textContent = "R$ " + brl.toFixed(2);
  document.getElementById("eur").textContent = "R$ " + (brl / cambio.rates.EUR).toFixed(2);
  document.getElementById("temp").textContent = clima.current.temperature_2m + " °C";
}
carregar();
</script>
</html>

Prompts prontos

O primeiro é o pedido do painel, o mesmo que o post mostra. Copie e cole no Claude Code.

Prompt: o painel de câmbio e clima (o do post)

Abra a lista https://github.com/public-apis/public-apis (README), escolha uma API de câmbio e uma de clima que NÃO exijam chave (coluna Auth = No) e tenham CORS = Yes, teste cada endpoint com curl e me diga qual escolheu e por quê. Depois crie um único arquivo index.html com um painel simples em português: cotação do dólar e do euro em reais e a temperatura atual de São Paulo. Use fetch direto no navegador, mostre mensagem de erro amigável se alguma API falhar e não use bibliotecas externas. Se alguma API listada estiver fora do ar ou mudou de endereço, troque por outra da mesma categoria e me avise.

No prompt abaixo, troque [DESCREVA EM 1 FRASE] pelo seu projeto, por exemplo: um site que mostra a previsão do tempo da minha cidade.

Prompt: escolher a API certa para o meu projeto

Meu projeto é [DESCREVA EM 1 FRASE]. Consulte as categorias relevantes do README de github.com/public-apis/public-apis e me traga 3 APIs candidatas em uma tabela: nome, o que entrega, tipo de autenticação, limite de uso (se a documentação disser), se permite uso comercial e link da documentação. Teste uma chamada de cada uma e descarte as que não responderem. Recomende uma e explique o risco de depender dela.

Prompt: ampliar o painel

No painel do index.html, adicione (1) cotação do bitcoin em dólar usando a API do CoinGecko (api.coingecko.com/api/v3/simple/price), (2) um botão para atualizar e (3) o horário da última atualização. Mantenha o arquivo único e trate falhas de rede.

Prompt: checagem de risco antes de entregar a cliente

Revise as APIs que o painel usa. Para cada uma: abra a documentação oficial, me diga se há limite de requisições, se o uso comercial é permitido (por exemplo, a Open-Meteo é gratuita para uso não comercial), se há SLA e quem mantém. Marque o que for projeto de hobby e proponha alternativa com empresa por trás e limite de uso claro. Não altere o código ainda.

Prompt: API que exige chave (exemplo NASA)

Quero usar a API APOD da NASA (api.nasa.gov/planetary/apod). Me explique como pedir a chave gratuita em api.nasa.gov, guarde a chave em um arquivo .env que esteja no .gitignore e crie um script em Node que leia a chave do ambiente e mostre a imagem do dia. Nunca escreva a chave dentro do código nem do HTML.

Dica:

A lista envelhece. Em 01/10/2026 a API da NASA estava marcada como "sem chave" no README, mas exigia chave, e a CoinCap v2 não respondia. Teste com curl antes de codar e peça ao Claude para trocar a API que falhar.

Erros comuns

  • CORS error no console → a API não libera chamadas do navegador → peça ao Claude para chamar via servidor (Node) ou escolha uma API com CORS = Yes.
  • 403 API_KEY_MISSING ou 401 → falta a chave → crie a chave gratuita no site da API (como em api.nasa.gov) e guarde em .env.
  • O endpoint mudou ou saiu do ar (frankfurter.app agora é api.frankfurter.dev) → a lista é curadoria da comunidade, sem validação → teste com curl e peça ao Claude para trocar por outra da mesma categoria.
  • 429 Too Many Requests → você passou do limite → respeite o limite, guarde a resposta em cache e não consulte a cada segundo.
  • Chave exposta em repositório público → qualquer um pode usá-la → revogue a chave, crie outra e passe a usar .env e .gitignore.
  • API "gratuita para uso não comercial" usada num produto pago → quebra os termos → leia os termos e prefira APIs com empresa por trás e limite claro.
  • Painel mostra "…" e nunca atualiza → erro de rede ou resposta em formato inesperado → abra o console (F12) e cole a mensagem de erro para o Claude corrigir.
  • Números sem fonte → o cliente não confia → mostre de onde veio o dado e quando foi atualizado.

Checklist final

  • Abri o repositório, pulei o bloco patrocinado e achei a categoria do meu projeto
  • Filtrei as APIs por Auth e CORS
  • Testei a API com curl antes de codar
  • O painel abre no navegador e os números conferem com a fonte
  • Li limites e termos de uso comercial das APIs que usei
  • Nenhuma chave está no código nem no Git
  • O painel mostra uma mensagem amigável quando a API cai
  • Para cliente: usei API com empresa por trás e limite claro

Próximos passos

Comece agora

Pronto para colocar O Repositório com Todas as APIs Grátis (e um Painel no Claude Code) para rodar?

Abrir o public-apis no GitHub

Próximo passo

Veja os outros recursos do catálogo

Dezenas de recursos entre squads, skills, apps e integrações — todos usados em produção pelo João.

Voltar ao catálogo

Formação Gestor de IA

Aprenda a montar recursos como este, do zero

Quero ser Gestor de IA

Formação Gestor de IA

Falta um passo pro checkout

Deixa seu nome e WhatsApp. Você vai direto pro pagamento e a gente te acompanha de perto na entrada.

Com DDD. Só usamos pra te acompanhar na formação.