Documentation

This guide covers everything you need to know about using free public APIs listed in our directory.

Introduction

FWVAPI is a curated directory of free and open public APIs. Each entry includes authentication type, protocol, response format, rate limits, and category tags.

Quick Start

Pick an API from our catalog that does not require authentication:

curl -s "https://restcountries.com/v3.1/name/netherlands" | python3 -m json.tool

Authentication

TypeDescriptionHeader Example
FreeNo authentication requiredN/A
API KeyRegister for a free keyX-API-Key: your_key
OAuthStandard OAuth 2.0 flowAuthorization: Bearer token

Making Requests

MethodPurposeExample
GETRetrieve dataGET /api/v1/users
POSTCreate a resourcePOST /api/v1/users
PUTUpdate a resourcePUT /api/v1/users/42
DELETERemove a resourceDELETE /api/v1/users/42

Rate Limiting

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1709856000
Retry-After: 30

Error Handling

CodeMeaningAction
200SuccessProcess the response
400Bad RequestCheck your parameters
401UnauthorizedVerify your API key
429Too Many RequestsWait and retry with backoff
500Server ErrorRetry later

Pagination

Offset-based

GET /api/items?page=2&per_page=25

Cursor-based

GET /api/items?cursor=eyJpZCI6MTAwfQ&limit=25

cURL Examples

# Get current weather for Amsterdam
curl -s "https://api.open-meteo.com/v1/forecast?latitude=52.37&longitude=4.89&current_weather=true"

# Get a random user
curl -s "https://randomuser.me/api/" | python3 -m json.tool

Python Examples

import requests

response = requests.get("https://api.open-meteo.com/v1/forecast", params={
    "latitude": 52.37,
    "longitude": 4.89,
    "current_weather": True
})
data = response.json()
print(f"Temperature: {data['current_weather']['temperature']}C")

JavaScript Examples

const response = await fetch(
  "https://api.open-meteo.com/v1/forecast?latitude=52.37&longitude=4.89&current_weather=true"
);
const data = await response.json();
console.log(`Temperature: ${data.current_weather.temperature}C`);