Skip to content

CharlieJamesGwapo/awesome-apis-for-students

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Awesome APIs for Students Awesome

A curated list of free public APIs perfect for student projects, capstones, thesis work, and learning to code β€” with code examples in JavaScript, PHP, Python, C# / .NET, Go, and Java.

Most "awesome APIs" lists are huge dumps that overwhelm a student trying to ship their first weather app. This list is opinionated: every API here is free or has a generous free tier, doesn't require a credit card to start, and is suitable for a student project you can finish in a weekend.

For each category, you'll find code samples in multiple languages so you can plug them into whatever you're learning β€” whether that's a Laravel app, a .NET MVC project, a React frontend, or a Python notebook.


Contents


Legend

Symbol Meaning
πŸ†“ No authentication required β€” just fetch() and go
πŸ”‘ Free API key required (no credit card)
πŸ’³ Free tier exists but credit card or paid plan available
πŸ† Recommended for first-time API users

Quick Start by Language

How to call a JSON API in each major student language. Examples use the wttr.in weather API (no key needed).

JavaScript (Browser / Node.js)

const res = await fetch("https://wttr.in/Manila?format=j1");
const data = await res.json();
console.log(data.current_condition[0].temp_C);

PHP

<?php
$json = file_get_contents("https://wttr.in/Manila?format=j1");
$data = json_decode($json, true);
echo $data["current_condition"][0]["temp_C"];

With Guzzle (Laravel / modern PHP):

use GuzzleHttp\Client;
$client = new Client();
$response = $client->get("https://wttr.in/Manila?format=j1");
$data = json_decode($response->getBody(), true);
echo $data["current_condition"][0]["temp_C"];

Python

import requests
r = requests.get("https://wttr.in/Manila?format=j1")
data = r.json()
print(data["current_condition"][0]["temp_C"])

C# / .NET

using System.Net.Http;
using System.Text.Json;

var client = new HttpClient();
var json = await client.GetStringAsync("https://wttr.in/Manila?format=j1");
var doc = JsonDocument.Parse(json);
var temp = doc.RootElement
    .GetProperty("current_condition")[0]
    .GetProperty("temp_C").GetString();
Console.WriteLine(temp);

Go

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    resp, _ := http.Get("https://wttr.in/Manila?format=j1")
    defer resp.Body.Close()
    var data map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&data)
    cond := data["current_condition"].([]interface{})[0].(map[string]interface{})
    fmt.Println(cond["temp_C"])
}

Java

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://wttr.in/Manila?format=j1"))
    .build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());

APIs by Category

Weather

  • πŸ†“πŸ† wttr.in β€” Get the weather for any city as JSON, plain text, or ASCII art. No API key, no signup, just https://wttr.in/Manila?format=j1.
  • πŸ”‘πŸ† OpenWeatherMap β€” Free tier: 1,000 calls/day. Current weather, forecast, historical data. The default choice for weather projects.
  • πŸ”‘ WeatherAPI.com β€” Free tier: 1M calls/month. More generous than OpenWeatherMap.
  • πŸ†“ Open-Meteo β€” Free non-commercial weather API. No key required, includes forecasts and historical data.
  • πŸ†“ 7Timer! β€” Free weather forecast for stargazing, civil aviation, agriculture.

Geocoding & Maps

  • πŸ†“πŸ† Nominatim (OpenStreetMap) β€” Free geocoding and reverse geocoding. Be respectful β€” max 1 req/sec.
  • πŸ”‘ OpenCage Geocoding β€” 2,500 free requests/day. Cleaner JSON than Nominatim.
  • πŸ†“ REST Countries β€” Country info: capital, population, currencies, flags, languages.
  • πŸ†“ IP-API β€” Free IP geolocation. 45 requests/minute. No key.
  • πŸ†“ ipapi.co β€” IP-based geolocation. Free for 1,000 requests/day.
  • πŸ”‘ Mapbox β€” 50,000 map loads/month free. Maps, geocoding, directions, isochrones.

Currency & Finance

  • πŸ”‘πŸ† ExchangeRate-API β€” 1,500 currency requests/month free. Reliable.
  • πŸ†“ Frankfurter β€” Currency conversion using ECB data. No key, no limits documented.
  • πŸ†“ CoinGecko β€” Free crypto API: prices, market cap, history. 10-30 calls/minute.
  • πŸ”‘ Polygon.io β€” Stock market data. Free tier: 5 API calls/min.
  • πŸ”‘ Alpha Vantage β€” Stocks, forex, crypto. 25 requests/day free.
  • πŸ”‘ Finnhub β€” Stocks and economic data. 60 calls/minute free.

News

  • πŸ”‘πŸ† NewsAPI β€” Free for development: 100 requests/day. Headlines from 80,000+ sources.
  • πŸ†“ GNews β€” 100 requests/day free.
  • πŸ†“ The Guardian Open Platform β€” Generous free tier with full article content.
  • πŸ†“ Reddit JSON API β€” Append .json to any Reddit URL β€” instant JSON. No auth for read.
  • πŸ†“ Hacker News API β€” Stories, comments, users. No key.

Sports

Food & Recipes

  • πŸ†“πŸ† TheMealDB β€” Free recipes, ingredients, categories. Test key 1.
  • πŸ†“ TheCocktailDB β€” Cocktail recipes from the same maintainer as TheMealDB.
  • πŸ”‘ Spoonacular β€” 150 requests/day free. Recipe search, nutrition, meal planning.
  • πŸ†“ Open Food Facts β€” Crowdsourced food product database. Scan a barcode, get the data.
  • πŸ†“ Edamam Recipe Search β€” 5 requests/minute free.

Entertainment & Media

  • πŸ”‘πŸ† TMDB (The Movie DB) β€” Movies, TV shows, cast, posters. Generous free tier β€” the go-to for movie apps.
  • πŸ†“ OMDb β€” Movie info via title search. 1,000 requests/day free.
  • πŸ†“ Jikan (MyAnimeList) β€” Anime and manga data. No key, rate-limited.
  • πŸ†“ AniList GraphQL β€” GraphQL API for anime/manga.
  • πŸ†“ Spotify Web API β€” Music metadata, playlists. Requires OAuth but free.
  • πŸ†“ Deezer β€” Music tracks, artists, albums. No auth for public data.
  • πŸ†“ Giphy β€” GIFs. Free with API key.
  • πŸ†“ Pexels β€” Free stock photos and videos. Free with API key.
  • πŸ†“ Unsplash β€” High-quality free photos. 50 requests/hour on demo tier.

Education & Books

AI & Machine Learning

  • πŸ’³πŸ† Hugging Face Inference API β€” Free tier for many models: text gen, classification, image gen.
  • πŸ’³ Google Gemini API β€” Generous free tier for text + multimodal models.
  • πŸ’³ Groq β€” Free tier with very fast inference on Llama / Mixtral models.
  • πŸ’³ OpenAI β€” Pay as you go, $5 free credit on signup (subject to change).
  • πŸ’³ Anthropic Claude API β€” High-quality models with a free trial.
  • πŸ†“ Cloudflare Workers AI β€” Free quota of LLM/image inference.
  • πŸ†“ DeepL Translate β€” 500,000 chars/month free. Higher quality than Google Translate for many language pairs.

Government & Open Data

  • πŸ†“ NASA Open APIs β€” Astronomy Picture of the Day (APOD), Mars rover photos, asteroids. Demo key works for testing.
  • πŸ†“ USGS Earthquake β€” Real-time and historical earthquake data.
  • πŸ†“ Data.gov β€” US government open datasets across hundreds of agencies.
  • πŸ†“ World Bank Open Data β€” Country-level economic indicators.
  • πŸ†“ WHO GHO β€” World Health Organization global health observatory data.

Philippines-Specific

Random & Fun

  • πŸ†“πŸ† JSONPlaceholder β€” Fake REST API for testing and prototyping. The first API every student should hit.
  • πŸ†“ PokΓ©mon API β€” All PokΓ©mon data ever. Most popular learning API on GitHub.
  • πŸ†“ Star Wars API (SWAPI) β€” Star Wars films, characters, planets.
  • πŸ†“ Rick and Morty API β€” Characters, episodes, locations.
  • πŸ†“ Dog API β€” Random dog images by breed.
  • πŸ†“ Cat Facts β€” Random cat facts.
  • πŸ†“ Bored API β€” Get a random activity to do when bored.
  • πŸ†“ Advice Slip β€” Random advice. One endpoint, no key.
  • πŸ†“ Joke API β€” Programming, dark, pun jokes.
  • πŸ†“ Quotable β€” Famous quotes API.
  • πŸ†“ uselessfacts β€” Random useless facts.

Developer Tools & Utilities

  • πŸ†“ GitHub REST API β€” Repos, issues, users. 60 requests/hour unauthed, 5,000 with token.
  • πŸ†“ GitLab API β€” Same idea for GitLab projects.
  • πŸ†“ QR Code Generator β€” Generate QR codes via URL. No key.
  • πŸ†“ QR Code Monkey API β€” Higher-quality QR codes with logo support.
  • πŸ†“ Have I Been Pwned β€” Check if an email has been in a breach. (Some endpoints require key now.)
  • πŸ†“ is.gd / TinyURL β€” URL shortener APIs.
  • πŸ†“ Public Holidays β€” Public holidays for 100+ countries by year.
  • πŸ†“ Worldtime API β€” Current time and timezone for any city.
  • πŸ†“ ipify β€” Get the caller's public IP. One endpoint.
  • πŸ†“ picsum.photos β€” Lorem Ipsum for images. https://picsum.photos/300/200 returns a random 300x200 image.
  • πŸ†“ Robohash β€” Generate unique robot avatars from any string.
  • πŸ†“ DiceBear Avatars β€” Generate avatars from initials, identicons, etc.

Project Ideas

If you're staring at a blank IDE wondering what to build, here are projects sized for a weekend, a semester, or a capstone β€” each pairs naturally with APIs from this list.

Weekend Projects

  1. Weather Dashboard β€” Open-Meteo + your city. Show today's forecast with icons.
  2. Crypto Tracker β€” CoinGecko. Track your favorite coins with portfolio totals.
  3. Movie Watchlist β€” TMDB. Search movies, save to a local watchlist.
  4. Recipe Finder β€” TheMealDB. Find recipes by ingredients you have.
  5. Pomodoro + Random Quote β€” Quotable. New motivational quote at every break.
  6. QR Code Generator for Class β€” goqr.me. Generate attendance QR codes.
  7. Currency Converter β€” Frankfurter. Multi-currency converter for your barangay shop.
  8. PokΓ©dex Clone β€” PokeAPI. Search and view PokΓ©mon with stats.
  9. Random Workout Generator β€” Bored API + custom logic.
  10. Birthday Reminder with Astronomy Pic β€” NASA APOD shows the picture from someone's birthday.

Semester / Group Project

  1. Internet Cafe Reservation System β€” show available PC stations + per-hour rates with QR code check-in.
  2. Event Locator β€” Nominatim + REST Countries to map and filter events.
  3. PSGC-Powered Address Form β€” Use PSGC API for proper Philippine address dropdowns (region β†’ province β†’ city β†’ barangay).
  4. Earthquake Alert System β€” USGS + email/SMS notifications for nearby quakes.
  5. News Aggregator with Sentiment β€” NewsAPI + Hugging Face sentiment classifier.
  6. Online Library Catalog β€” Open Library + Google Books for ISBN lookup.
  7. Recipe + Nutrition Tracker β€” Spoonacular for recipes, log to your DB.
  8. AI Chatbot with Context β€” Groq or Gemini, with chat history saved to MySQL.
  9. Anime Recommendation Engine β€” Jikan + simple content-based filtering.
  10. OFW Remittance Calculator β€” ExchangeRate-API + BSP rates for accurate PHP conversions.

Capstone-Worthy

  1. Disaster Information Hub β€” Combine USGS, PAGASA, WHO, and news APIs for a regional emergency dashboard.
  2. Smart Cafe POS with AI Ordering β€” POS integrated with Spoonacular + a Groq chatbot for menu recommendations.
  3. Multi-LLM Chat Studio β€” One UI, switchable backends (Gemini, Groq, Claude, OpenAI). Compare outputs side by side.
  4. Local Business Directory with Maps β€” Mapbox + custom DB + reviews.
  5. Vaccination Record System β€” WHO API for reference data + your own immunization tracking schema.
  6. Esports Tournament Tracker β€” TheSportsDB + scrapers for local tournaments.

HTTP Client Cheat Sheet

What to install in each language to make API calls cleanly.

JavaScript / Node.js

# Built-in fetch in modern Node and browsers β€” no install needed.
# For React: just use fetch or axios
npm install axios

PHP

# Built-in: file_get_contents() and curl_*
# Modern: Guzzle
composer require guzzlehttp/guzzle

# Laravel: built-in HTTP client
use Illuminate\Support\Facades\Http;
$response = Http::get("https://wttr.in/Manila?format=j1");

Python

pip install requests        # most common
pip install httpx           # async-friendly modern alternative

C# / .NET

# HttpClient is built-in (System.Net.Http)
# For nicer API: install RestSharp
dotnet add package RestSharp
# Or Refit for typed HTTP clients
dotnet add package Refit

Go

// Built-in net/http is enough for most cases.
// Popular wrapper: resty
go get github.com/go-resty/resty/v2

Java

// Built-in java.net.http.HttpClient (Java 11+)
// Popular wrapper: OkHttp
implementation 'com.squareup.okhttp3:okhttp:4.12.0'

// Spring Boot: WebClient or RestTemplate

Frameworks Worth Knowing

  • PHP: Laravel (full-stack), Symfony (enterprise), CodeIgniter (lightweight), Slim (microframework).
  • C# / .NET: ASP.NET Core MVC, ASP.NET Core Web API, Blazor (full-stack with C#), Minimal APIs.
  • JavaScript: Express (Node), Next.js (React), NestJS (Angular-style), SvelteKit, Astro.
  • Python: Django (full-stack), Flask (micro), FastAPI (async APIs).
  • Go: Gin, Echo, Fiber, Chi.
  • Java: Spring Boot, Quarkus, Micronaut.

  • πŸ†“ ChuckNorris.io β€” Random Chuck Norris jokes, no auth, perfect for first-API tutorials.

  • πŸ†“ icanhazdadjoke β€” Wholesome dad jokes API. Set Accept header to application/json.

  • πŸ†“ Studio Ghibli API β€” Films, characters, locations from Studio Ghibli. Great for movie list demos.

  • πŸ”‘ The One API (Lord of the Rings) β€” Books, movies, characters, quotes from LotR. Free with key.

  • πŸ†“ Disney API β€” Search Disney characters, films, TV shows. No auth.

  • πŸ”‘ Marvel API β€” Comics, characters, creators. Free tier with key.

  • πŸ”‘ RAWG Video Games β€” Largest video game database. Free tier 20k requests/month.

  • πŸ†“ ZenQuotes β€” Random inspirational quotes. Excellent for first API project.

  • πŸ†“ Yes No β€” Yes/no oracle with a GIF. Single endpoint, fun for binary decisions.

  • πŸ†“ Datamuse β€” Word-finding query engine: rhymes, synonyms, related words. No auth.

  • πŸ†“ Time API β€” Current time in any timezone, time conversion. Free.

  • πŸ†“ ShrtCo β€” Free URL shortener API. No auth, simple JSON response.

  • πŸ†“ Faker API β€” Generate fake data for testing: users, addresses, products, images.

  • πŸ†“ Random Data API β€” Random users, addresses, beers, banks. Great for seeding dev databases.

  • πŸ†“ NASA Image and Video Library β€” Search NASA media archive. No auth required.

  • πŸ†“ iTunes Search β€” Apple's music, podcast, app, and book search API. No auth.

  • πŸ”‘ Geoapify β€” Geocoding, routing, places. 3,000 free requests/day.

  • πŸ†“ Lyrics.ovh β€” Fetch song lyrics by artist + title. Free, no auth.

  • πŸ†“ Open5e β€” D&D 5th edition spells, monsters, classes. Free, no auth.

  • πŸ†“ Breaking Bad API β€” Characters, episodes, quotes from Breaking Bad / Better Call Saul.

Contributing

Pull requests welcome! See contributing.md. Add APIs that are:

  • Free or have a generous free tier with no credit card required
  • Suitable for student projects (good docs, reasonable rate limits)
  • Active and maintained (last update within the last 2 years)

Add language code samples for popular APIs to help students from any language background.

License

CC0

To the extent possible under law, Charlie James Zapico Abejo has waived all copyright and related or neighboring rights to this work.


Built by a student, for students. If this list helped you ship something, consider starring the repo so other students can find it. ⭐

About

Curated free public APIs perfect for student projects, capstones, and learning. With code samples in JavaScript, PHP, Python, C#/.NET, Go, and Java + 25+ project ideas.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors