A JSON API is a web service that accepts HTTP requests and returns data in JSON (JavaScript Object Notation) format. JSON has become the standard data interchange format for web APIs because it is lightweight, human-readable, and natively supported by every modern programming language. Unlike XML-based SOAP services, JSON APIs are simple to consume with a single HTTP request and a few lines of parsing code.
In 2026, thousands of free JSON APIs are available for developers. Some require authentication tokens, while others are completely open. This guide covers the best free REST APIs that return JSON responses, with working code examples you can copy and paste.
These public APIs return JSON responses and either require no authentication at all or offer a generous free tier with a simple API key:
| API | Category | Auth Required | Free Tier |
|---|---|---|---|
| JSONPlaceholder | Mock Data | No | Unlimited |
| Open Meteo | Weather | No | 10,000 req/day |
| CoinGecko | Crypto | No | 30 req/min |
| REST Countries | Geography | No | Unlimited |
| Dog API | Images | No | Unlimited |
| PokeAPI | Games | No | 100 req/min |
| ExchangeRate-API | Currency | Free Key | 1,500 req/month |
| IPInfo | IP Geolocation | Free Key | 50,000 req/month |
| CommandSector QR API | QR Codes | Free Key | 100 req/day |
| CommandSector Email API | Email Validation | Free Key | 100 req/day |
| CommandSector IP Geo API | IP Geolocation | Free Key | 100 req/day |
| CommandSector Crypto API | Crypto Prices | Free Key | 100 req/day |
| Chuck Norris API | Humor | No | Unlimited |
| Quotable | Quotes | No | Unlimited |
| Numbers API | Trivia | No | Unlimited |
Instead of managing a dozen different API keys, CommandSector offers a unified API suite where a single free key unlocks 13+ JSON APIs. Every endpoint follows consistent REST conventions, returns well-structured JSON, and uses the same authentication header. Here is what is available on the free tier (100 requests/day per endpoint):
/api/qr/*) - Generate styled QR codes in PNG, SVG, or base64/api/email/*) - Verify email addresses, check MX records, detect disposable emails/api/pdf/*) - Convert HTML to PDF, merge, split, and compress PDFs/api/screenshot/*) - Capture full-page website screenshots/api/ai/*) - Summarize, rewrite, and extract data from text/api/crypto/*) - Real-time cryptocurrency price data/api/currency/*) - Live exchange rates for 150+ currencies/api/ip-geo/*) - Look up location data from IP addresses/api/url/*) - Extract metadata, shorten URLs/api/invoice/*) - Generate professional PDF invoices/api/image/*) - Create placeholder and dynamic images/api/tts/*) - Convert text to audio files/api/devtools/*) - Hashing, encoding, UUID generation, and moreBelow are working examples using CommandSector APIs. Replace YOUR_KEY with your free API key from /signup.
# Get geolocation data for an IP address
curl -s "https://api.commandsector.in/api/ip-geo/lookup?ip=8.8.8.8&api_key=YOUR_KEY" | python3 -m json.tool
# Response:
# {
# "ip": "8.8.8.8",
# "country": "United States",
# "region": "California",
# "city": "Mountain View",
# "lat": 37.386,
# "lon": -122.0838,
# "isp": "Google LLC"
# }
import requests
response = requests.get(
"https://api.commandsector.in/api/email/validate",
params={"email": "user@example.com", "api_key": "YOUR_KEY"}
)
data = response.json()
print(f"Valid: {data['is_valid']}")
print(f"Disposable: {data['is_disposable']}")
print(f"MX Records: {data['has_mx']}")
# Output:
# Valid: True
# Disposable: False
# MX Records: True
const response = await fetch(
"https://api.commandsector.in/api/crypto/price?symbol=BTC&api_key=YOUR_KEY"
);
const data = await response.json();
console.log(`Bitcoin: $${data.price}`);
console.log(`24h Change: ${data.change_24h}%`);
console.log(`Market Cap: $${data.market_cap}`);
// Output:
// Bitcoin: $104,231.45
// 24h Change: 2.34%
// Market Cap: $2,041,000,000,000
async function convertCurrency(amount, from, to) {
const res = await fetch(
`https://api.commandsector.in/api/currency/convert?from=${from}&to=${to}&amount=${amount}&api_key=YOUR_KEY`
);
const data = await res.json();
return data.converted_amount;
}
// Convert 100 USD to EUR
const result = await convertCurrency(100, "USD", "EUR");
console.log(`100 USD = ${result} EUR`);
When evaluating free JSON APIs, pay attention to how the responses are structured. A well-designed REST API should follow these conventions:
{"status": "success", "data": {...}}page, limit, and total fields so you can iterate through large datasets2026-01-15T10:30:00Z format, not Unix timestampsCommandSector APIs follow all of these conventions. Every endpoint returns a consistent JSON envelope with status, data, and error fields. Rate limit information is included in response headers (X-RateLimit-Remaining, X-RateLimit-Reset).
With so many free APIs available, here is what to look for:
Access-Control-Allow-Origin headers.APIs like CommandSector are ideal because they combine a generous free tier with transparent paid plans ($9.99/month for Pro, $49.99/month for Enterprise), so you never have to migrate to a different service as your traffic increases.
Access 13+ JSON APIs with one key. 100 requests/day free. No credit card required.
Sign Up FreeQR codes, PDFs, TTS, crypto, AI text tools and more. One API key, all tools.
Sign Up Free →