API Documentation

One API key unlocks every category below | weather, finance & crypto, geography and space/nature data. Free to start, no credit card, ready in about two minutes.

Verified email, no password

We ask for an email address only to confirm you're a real person and to reach you about your key later. No account, no password, ever.

One shape, every category

Same header, same rate-limit headers, same error format everywhere | learn it once, use it for weather, finance, geography and space data alike.

Get a free API key

Enter your email address. We'll send a confirmation link | click it within 30 minutes and your free API key will be shown right there (100 requests/day, no credit card).

Authentication & rate limits

Send your key as the X-Api-Key header (or the apiKey query parameter). Every response includes X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset so you always know where you stand.

Free, Pro & Business tiers

100 requests/day free, no credit card. Need more? See Pricing for Pro/Business plans and to upgrade an existing key.

Endpoints

Weather & Environment
MethodEndpointDescriptionSource
GET/api/v1/weather/geocode?city=...Look up coordinates for a city nameOpen-Meteo
GET/api/v1/weather/current?lat=&lon=Current conditions for a coordinateOpen-Meteo
GET/api/v1/weather/forecast?lat=&lon=&days=1-16Current + daily forecastOpen-Meteo
GET/api/v1/weather/air-quality?lat=&lon=PM2.5/PM10, ozone, AQIOpen-Meteo
GET/api/v1/weather/alerts?state=CALive active severe weather alerts for a US stateNWS
Finance & Crypto
MethodEndpointDescriptionSource
GET/api/v1/finance/exchange-rates?base=USD&symbols=EUR,GBPLatest FX ratesFrankfurter
GET/api/v1/finance/convert?from=&to=&amount=Convert an amount between currenciesFrankfurter
GET/api/v1/finance/crypto/prices?ids=bitcoin,ethereum&vs=usdLive crypto prices + 24h change. Response includes stale/asOfUtc: if CoinGecko's shared rate limit is briefly exhausted, the last known price is returned with stale: true instead of an errorCoinGecko
Geography & Reference
MethodEndpointDescriptionSource
GET/api/v1/geography/countries?search=...Search countries by namemledoze/countries
GET/api/v1/geography/countries/{code}Country by ISO alpha-2/alpha-3 codemledoze/countries
GET/api/v1/geography/holidays?country=US&year=2026Public holidays for a country/yearNager.Date
GET/api/v1/geography/ip-lookup?ip=...Geolocate an IPv4/IPv6 addressip-api.com
Space, Nature & Misc
MethodEndpointDescriptionSource
GET/api/v1/space/iss-locationLive ISS latitude/longitude/altitudeWhere The ISS At
GET/api/v1/space/sunrise-sunset?lat=&lon=&date=Sunrise, sunset, solar noon, day lengthsunrise-sunset.org
GET/api/v1/space/people-in-spaceWho's currently in space and on which craftopen-notify.org
GET/api/v1/nature/earthquakes?minMagnitude=&limit=Recent earthquakesUSGS
GET/api/v1/nature/species?scientificName=&country=&limit=Live species-occurrence sightings worldwide, e.g. from iNaturalist/eBirdGBIF
GET/api/v1/misc/quoteRandom quoteDummyJSON
GET/api/v1/misc/joke?category=Random joke, optionally filtered by categorychucknorris.io
GET/api/v1/misc/joke/categoriesList of valid joke category idschucknorris.io
GET/api/v1/misc/adviceRandom life adviceAdvice Slip
GET/api/v1/misc/activityRandom activity suggestion for when you're boredBored API
GET/api/v1/aviation/liveEvery aircraft currently tracked worldwide (~13,000 at a time). Refreshes every 15 minutesOpenSky Network
GET/api/v1/aviation/historyAircraft-count/altitude/speed trend over the last 24 hours, sampled every 15 minOpenSky Network
Books & Culture
MethodEndpointDescriptionSource
GET/api/v1/books/search?q=dune&limit=10Search books by title/authorOpen Library
GET/api/v1/books/isbn/{isbn}Full book details (authors, publisher, cover, subjects) by ISBN-10/13Open Library
Food & Nutrition
MethodEndpointDescriptionSource
GET/api/v1/food/product/{barcode}Nutrition facts, ingredients, allergens and Nutri-Score by barcode. Includes stale/asOfUtc, same fallback behavior as crypto pricesOpen Food Facts
GET/api/v1/food/search?q=nutella&limit=10Search products by name/brandOpen Food Facts
GET/api/v1/food/cocktails/search?q=margaritaSearch cocktail recipes by nameTheCocktailDB
GET/api/v1/food/cocktails/{id}Full recipe: ingredients, measures, glass and instructions by idTheCocktailDB
Entertainment
MethodEndpointDescriptionSource
GET/api/v1/entertainment/shows/search?q=breaking+bad&limit=10Search TV showsTVMaze
GET/api/v1/entertainment/shows/{id}Full show details, cast and rating by idTVMaze
Knowledge & Reference
MethodEndpointDescriptionSource
GET/api/v1/knowledge/wikipedia/summary?title=Albert EinsteinArticle summary, image and link (English Wikipedia)Wikipedia
GET/api/v1/knowledge/wikipedia/search?q=quantum computing&limit=10Full-text article searchWikipedia
GET/api/v1/knowledge/wikipedia/daily-feed?date=YYYY-MM-DDToday's (or a past date's) featured article, in-the-news links and on-this-day factsWikipedia
GET/api/v1/knowledge/dictionary?word=helloEnglish word definitions, phonetics and parts of speechdictionaryapi.dev
GET/api/v1/knowledge/universities?name=&country=Search universities by name and/or countryHipolabs Universities API
Music
MethodEndpointDescriptionSource
GET/api/v1/music/artists/search?q=queen&limit=10Search artistsMusicBrainz
GET/api/v1/music/releases/search?q=...&limit=10Search album/release titlesMusicBrainz
Trivia & Games
MethodEndpointDescriptionSource
GET/api/v1/games/trivia?amount=10&category=&difficulty=&type=Trivia questions; difficulty: easy/medium/hard, type: multiple/booleanOpen Trivia DB
GET/api/v1/games/trivia/categoriesList of valid category idsOpen Trivia DB
MethodEndpointDescription
POST/api/v1/keysRequest a free key (body: { "email": "..." }) | sends a confirmation email, no key returned directly
GET/api/v1/statusLive reachability of every upstream data source, key-less

Example response

GET /api/v1/weather/current?lat=51.5&lon=-0.13

{
  "latitude": 51.5,
  "longitude": -0.13,
  "timezone": "Europe/London",
  "current": {
    "timestamp": "2026-07-02T12:00:00",
    "temperatureC": 21.4,
    "apparentTemperatureC": 20.9,
    "windSpeedKmh": 13.2,
    "windDirectionDeg": 210,
    "precipitationMm": 0,
    "weatherCode": 1,
    "condition": "Mainly clear",
    "isDay": true
  },
  "daily": [ ]
}

Error codes

StatuserrorMeaning
400invalid_parameterA required or malformed query parameter
401missing_api_keyNo X-Api-Key header sent
401invalid_api_keyKey doesn't exist (any more)
404not_foundNo matching data for the given parameters
429rate_limit_exceededDaily limit reached, see X-RateLimit-Reset
429upstream_rate_limitedA shared per-minute budget on the upstream (e.g. crypto prices, IP lookup, food product/search, music search, trivia) is briefly exhausted across all FreeOpenAPI.dev traffic, retry in a few seconds
502upstream_unavailableThe upstream data source timed out or errored, try again shortly
503email_not_configuredEmail verification is temporarily unavailable

Code examples

# Step 1: request a free key (sends a confirmation link to your email)
curl -X POST http://freeopenapi.dev/api/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com"}'

# Step 2: click the link in your inbox, then use the key it shows you
curl "http://freeopenapi.dev/api/v1/weather/current?lat=51.5&lon=-0.13" \
  -H "X-Api-Key: YOUR_API_KEY"
const res = await fetch("http://freeopenapi.dev/api/v1/weather/current?lat=51.5&lon=-0.13", {
  headers: { "X-Api-Key": "YOUR_API_KEY" }
});
const data = await res.json();
console.log(`${data.current.temperatureC}°C, ${data.current.condition}`);
import requests

resp = requests.get(
    "http://freeopenapi.dev/api/v1/finance/crypto/prices",
    params={"ids": "bitcoin,ethereum", "vs": "usd"},
    headers={"X-Api-Key": "YOUR_API_KEY"},
)
data = resp.json()
print(data["prices"])
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");

var json = await http.GetStringAsync("http://freeopenapi.dev/api/v1/geography/holidays?country=US&year=2026");
Console.WriteLine(json);
<?php
$ch = curl_init("http://freeopenapi.dev/api/v1/space/iss-location");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-Api-Key: YOUR_API_KEY"]);
$data = json_decode(curl_exec($ch), true);
echo "ISS altitude: {$data['altitudeKm']} km";
Fair use

The Free tier is meant for personal projects, prototypes and low-traffic apps (100 requests/day comfortably covers a dashboard refreshing every few minutes). Need more for a product or service? Leave your email when requesting a key and we'll reach out as soon as Pro/Business are available.