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
| Type | Description | Header Example |
|---|---|---|
| Free | No authentication required | N/A |
| API Key | Register for a free key | X-API-Key: your_key |
| OAuth | Standard OAuth 2.0 flow | Authorization: Bearer token |
Making Requests
| Method | Purpose | Example |
|---|---|---|
GET | Retrieve data | GET /api/v1/users |
POST | Create a resource | POST /api/v1/users |
PUT | Update a resource | PUT /api/v1/users/42 |
DELETE | Remove a resource | DELETE /api/v1/users/42 |
Rate Limiting
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1709856000
Retry-After: 30
Error Handling
| Code | Meaning | Action |
|---|---|---|
200 | Success | Process the response |
400 | Bad Request | Check your parameters |
401 | Unauthorized | Verify your API key |
429 | Too Many Requests | Wait and retry with backoff |
500 | Server Error | Retry 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¤t_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¤t_weather=true"
);
const data = await response.json();
console.log(`Temperature: ${data.current_weather.temperature}C`);