Skip to main content
Welcome to Public APIs! This guide will walk you through finding and using APIs from our directory of 1,000+ free public APIs.

Overview

The Public APIs directory is a curated collection of free APIs organized by category. Each API listing includes essential information about authentication, security, and CORS support to help you integrate quickly.
1

Browse by category

Start by exploring APIs organized into 50+ categories. You can browse through categories like Development, Finance, Weather, Entertainment, and more.Navigate to the API Categories tab to see all available categories, or use the search to find specific APIs.
Example categories
# Popular categories include:
- Development: GitHub, Docker Hub, APIs for developers
- Weather: Real-time weather and climate data
- Finance: Stock market, crypto, and currency exchange
- Entertainment: Music, video, games, and anime
- Social: Authentication, email, and social networks
2

Check API requirements

Each API listing includes three important pieces of information:
  • Auth: Authentication method (No Auth, API Key, OAuth, etc.)
  • HTTPS: Whether the API supports secure HTTPS connections
  • CORS: Whether you can call the API directly from browsers
  • No Auth: Free to use immediately, no authentication required
  • API Key: Register for a free API key from the provider’s website
  • OAuth: Requires implementing OAuth flow for user authentication
  • X-Mashape-Key: API key sent via specific header
  • User-Agent: Requires User-Agent header in requests
For quick prototyping, start with APIs that don’t require authentication. You can always add auth later.
3

Follow the documentation

Click on the API name to access the official documentation. This will show you:
  • Available endpoints and methods
  • Request parameters and formats
  • Response structure and data types
  • Rate limits and usage policies
  • Example requests and responses
Always check the API’s terms of service and rate limits before using it in production.
4

Make your first API call

Most public APIs follow REST patterns. Here’s an example using a popular API from the directory:
Dog Facts API (No Auth)
# Simple GET request to fetch random dog facts
curl -X GET "https://dog-api.kinduff.com/api/facts" \
     -H "Accept: application/json"
{
  "facts": [
    "Dogs have three eyelids."
  ],
  "success": true
}
JavaScript fetch example
// Using fetch in JavaScript
fetch('https://dog-api.kinduff.com/api/facts')
  .then(response => response.json())
  .then(data => console.log(data.facts[0]))
  .catch(error => console.error('Error:', error));
Python requests example
# Using requests in Python
import requests

response = requests.get('https://dog-api.kinduff.com/api/facts')
data = response.json()
print(data['facts'][0])

Common Use Cases

Here are some popular ways developers use Public APIs:

Random Content

Use APIs like Cat Facts, Dog Facts, or Bored API to add random content to your applications

Data Enrichment

Enhance your data with IPstack (geolocation), Agify (age prediction), or Genderize (gender detection)

Weather Integration

Add weather forecasts with OpenWeatherMap, Weatherstack, or other weather APIs

Financial Data

Integrate stock prices, crypto data, or currency exchange rates from finance APIs

Example: Currency Conversion API

Here’s a complete example using a currency conversion API from the directory:
cURL request
# Get current exchange rates (No Auth required)
curl -X GET "https://api.exchangerate.host/latest?base=USD" \
     -H "Accept: application/json"
{
  "motd": {
    "msg": "If you like this project, please support us.",
    "url": "https://exchangerate.host/#/donate"
  },
  "success": true,
  "base": "USD",
  "date": "2024-03-04",
  "rates": {
    "EUR": 0.92,
    "GBP": 0.79,
    "JPY": 149.85,
    "CAD": 1.35
  }
}
Converting currency in JavaScript
// Convert 100 USD to EUR
async function convertCurrency(amount, from, to) {
  const response = await fetch(
    `https://api.exchangerate.host/latest?base=${from}`
  );
  const data = await response.json();
  const rate = data.rates[to];
  return (amount * rate).toFixed(2);
}

convertCurrency(100, 'USD', 'EUR')
  .then(result => console.log(`100 USD = ${result} EUR`));

Next Steps

Browse Categories

Explore all 50+ API categories to find what you need

Learn About Auth

Understand different authentication methods and how to use them

CORS Guide

Learn about CORS and when it matters for your application

Contribute

Add new APIs or improve existing listings

Need Help?

Join our Discord community to ask questions, share APIs, and connect with other developers.
If you encounter issues with a specific API, check the API’s official documentation or support channels for help.