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
- Open the repo: Public APIs.
- Use your browser’s find (Ctrl/⌘ + F) or scan categories to locate your domain.
- 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)}¤t_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:
apiKeymeans you’ll need to sign up;OAuthimplies 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?
- Read the repo’s contribution guidelines.
- Submit a PR adding a new API or updating an entry (keep descriptions concise and neutral).
- 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.