A legendary free API “treasure chest” for developers
Looking for APIs to learn with, build demos, ship side projects, or power a class assignment? public-apis is the go-to directory the global tech community has relied on for years.

It’s a curated list of free, publicly accessible APIs organized by topic: weather, games, AI/ML, finance, health, anime, sports, education, and a lot more.

Repo link: github.com/public-apis/public-apis

What is Public APIs?

A community-maintained catalog of hundreds of free APIs. Each entry includes a short description and useful columns like Auth, HTTPS, and CORS so you can quickly judge integration effort. It’s perfect for exploring ideas, practicing API calls, and spinning up proof-of-concepts.

Why is this repo so valuable?

  • 100% free — ideal for learning and prototyping without upfront cost.
  • Smart categorization — browse by domain and filter by auth/HTTPS/CORS.
  • Huge community — widely watched, forked, and updated regularly.
  • Idea generator — scroll a few minutes, leave with project ideas.
  • Reliable — entries are reviewed and maintained over time.
  • Open to contributions — help improve the list and learn via PRs.

Who should use it?

  • Students needing real data for assignments or capstone projects.
  • Engineers prototyping features or building demo apps.
  • Anyone tinkering to learn HTTP, JSON, auth, and client/server patterns.

What’s inside?

Categories like Animals, Anime, Business, Finance, Games & Comics, Health, Machine Learning, News, Open Data, Sports & Fitness, Weather, and more. Every API listing links to the official docs so you can dig in fast.

Getting started in 3 quick steps

  1. Open the repo: Public APIs.
  2. Use your browser’s find (Ctrl/⌘ + F) or scan categories to locate your domain.
  3. Click an API’s name to read its docs, grab a key if required, and make your first request.

Project ideas (with plain JS snippets)

1) Instant Weather Widget

Show current temperature for any coordinates using Open-Meteo (no auth required).

<div>
  Latitude: <input id="lat" value="10.8231">
  Longitude: <input id="lon" value="106.6297">
  <button onclick="getWeather()">Get Weather</button>
  <div id="weather"></div>
</div>

<script>
async function getWeather() {
  const lat = document.getElementById('lat').value;
  const lon = document.getElementById('lon').value;
  const url = `https://api.open-meteo.com/v1/forecast?latitude=${encodeURIComponent(lat)}&longitude=${encodeURIComponent(lon)}&current_weather=true`;
  const res = await fetch(url);
  const data = await res.json();
  const cw = data.current_weather;
  document.getElementById('weather').textContent =
    `Temp: ${cw.temperature}°C, Wind: ${cw.windspeed} km/h`;
}
</script>

2) Minimal Crypto Ticker

Display BTC/ETH prices with CoinGecko free endpoint.

<div>BTC: $<span id="btc">--</span> | ETH: $<span id="eth">--</span></div>

<script>
async function loadCrypto() {
  const url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd";
  const res = await fetch(url);
  const data = await res.json();
  document.getElementById("btc").textContent = data.bitcoin.usd.toLocaleString();
  document.getElementById("eth").textContent = data.ethereum.usd.toLocaleString();
}
loadCrypto();
</script>

3) Random Anime Quote

Fun landing section fetching a quote from Animechan.

<blockquote id="quote">Loading...</blockquote>
<cite id="from"></cite>

<script>
async function randomAnimeQuote() {
  const res = await fetch("https://animechan.xyz/api/random");
  const data = await res.json();
  document.getElementById("quote").textContent = "“" + data.quote + "”";
  document.getElementById("from").textContent = data.character + " — " + data.anime;
}
randomAnimeQuote();
</script>

Tips to use the list effectively

  • Watch for Auth: apiKey means you’ll need to sign up; OAuth implies a redirect flow; blank often means no auth.
  • Mind CORS when calling from the browser — if it’s “No,” proxy via a tiny server.
  • Prefer HTTPS APIs for security; the table marks this clearly.
  • Skim issues/PRs on the API’s own repo for current status and breaking changes.

Want to contribute?

  1. Read the repo’s contribution guidelines.
  2. Submit a PR adding a new API or updating an entry (keep descriptions concise and neutral).
  3. Include docs links, note auth type, HTTPS, and CORS accurately.

FAQ

Are all APIs truly free?

They’re listed as free to use. Some offer paid tiers or rate limits; always check each API’s documentation.

Can I use these in commercial projects?

Many allow it, but terms vary. Review each API’s ToS/license before shipping to production.

What if an API goes down?

It happens. Pick an alternative from the same category or add a fallback service in your code.


Explore the repo here: Public APIs on GitHub — save it, star it, and keep it handy whenever you need real data fast.