Testing Free API Endpoints with Python
Learn how to test free public APIs using Python's requests library. No API keys required!
Prerequisites
- Python 3.8+ installed
-
requestslibrary:pip install requests
Testing JSONPlaceholder API
JSONPlaceholder is a free fake REST API for testing and prototyping.
import requests
# Test GET request
url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(f"Title: {data['title']}")
print(f"Body: {data['body']}")
else:
print(f"Error: {response.status_code}")
Testing a Free Weather API
OpenWeatherMap offers a free tier for weather data.
import requests
# Free API (no key required for basic usage)
url = "https://api.open-meteo.com/v1/forecast"
params = {
"latitude": 51.5074,
"longitude": -0.1278,
"current_weather": True
}
response = requests.get(url, params=params)
if response.status_code == 200:
weather = response.json()["current_weather"]
print(f"Temperature: {weather['temperature']}°C")
print(f"Wind Speed: {weather['windspeed']} km/h")
else:
print(f"Error: {response.status_code}")
Testing Free AI Model via OpenRouter
import requests
import os
# Using OpenRouter free tier
url = "https://openrouter.ai/api/v1/chat/completions"
headers = {
"Authorization": f"Bearer {os.getenv('OPENROUTER_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"model": "google/gemini-2.0-flash-exp:free",
"messages": [{"role": "user", "content": "Explain REST APIs in 2 sentences"}]
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
print(result["choices"][0]["message"]["content"])
else:
print(f"Error: {response.status_code} - {response.text}")
Best Practices
- Always check status codes - Handle 200, 404, 429, 500 appropriately
-
Add timeouts -
requests.get(url, timeout=10) - Handle rate limits - Implement exponential backoff
- Validate responses - Check JSON structure before accessing keys
- Use environment variables - Never hardcode API keys
Conclusion
Testing free APIs is a great way to learn API integration without costs. Start with JSONPlaceholder for REST basics, then explore weather, AI, and other free tiers for real-world projects.
Top comments (0)