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.
