I kept running into the same small problem while building frontend demos, hackathon projects, and prototype apps:
I needed free APIs to test with, but finding the right one usually meant scrolling through long GitHub lists, checking whether each API needed authentication, checking HTTPS support, and checking CORS manually.
So I turned a public API directory into a searchable JSON endpoint.
The result is a small REST API with 1,460+ public APIs that can be queried by category, authentication type, HTTPS support, CORS support, or randomly when you just need an idea.
What it does
The API lets you search public APIs programmatically.
Useful when you want to quickly find APIs for:
- frontend demos
- weekend projects
- hackathons
- coding tutorials
- AI agents that need API discovery
- testing fetch requests
- building example apps
Base URL
https://free-api-directory-nxmezfwbj-kawinthorn11-7692s-projects.vercel.app
1. Get all categories
const res = await fetch(
"https://free-api-directory-nxmezfwbj-kawinthorn11-7692s-projects.vercel.app/categories"
);
const data = await res.json();
console.log(data.categories);
Example response shape:
{"count":51,"categories":["Animals","Anime","Authentication & Authorization","Blockchain","Business","Calendar","Development","Finance","Games & Comics","Programming","Security","Test Data","Weather"]}
2. Search APIs by category
For example, find Weather APIs:
const res = await fetch(
"https://free-api-directory-nxmezfwbj-kawinthorn11-7692s-projects.vercel.app/entries?category=Weather"
);
const data = await res.json();
console.log(data.count);
console.log(data.entries);
You can also filter by CORS support:
const res = await fetch(
"https://free-api-directory-nxmezfwbj-kawinthorn11-7692s-projects.vercel.app/entries?category=Weather&cors=yes"
);
const data = await res.json();
console.log(data.entries);
This is useful for frontend developers because CORS support matters when building browser-based demos.
3. Find APIs that do not require auth
Sometimes you just want an API you can use immediately without creating an account.
const res = await fetch(
"https://free-api-directory-nxmezfwbj-kawinthorn11-7692s-projects.vercel.app/entries?auth=No&https=true"
);
const data = await res.json();
console.log(data.count);
console.log(data.entries);
This is useful when you want an API for a quick demo without managing API keys.
4. Get a random API idea
const res = await fetch(
"https://free-api-directory-nxmezfwbj-kawinthorn11-7692s-projects.vercel.app/random"
);
const data = await res.json();
console.log(data.entries[0]);
You can also restrict random results by category:
const res = await fetch(
"https://free-api-directory-nxmezfwbj-kawinthorn11-7692s-projects.vercel.app/random?category=Weather"
);
const data = await res.json();
console.log(data.entries[0]);
Available endpoints
GET /categories
GET /entries
GET /entries?category=Weather&cors=yes
GET /entries?auth=No&https=true
GET /random
GET /random?category=Weather
Example response item
{"API":"Open-Meteo","Description":"Global weather forecast API for non-commercial use","Auth":"No","HTTPS":true,"Cors":"Yes","Link":"https://open-meteo.com/","Category":"Weather"}
Why I built this
The original public API lists are useful, but they are mostly optimized for humans reading Markdown.
I wanted something easier to use from code.
For example:
- A frontend tutorial can fetch APIs by category.
- A hackathon project can quickly find no-auth APIs.
- A demo app can use random API ideas.
- An AI agent can search for public APIs programmatically.
- A developer can filter for HTTPS and CORS support before choosing an API.
RapidAPI version
I also published it on RapidAPI here:
https://rapidapi.com/kawinthorn11collab/api/free-api-directory-api
What I might add next
If people find this useful, the next improvements I’m considering are:
- pagination
- sorting
- better search
- shortcuts like
noAuth=true - filtering by multiple categories
- API popularity/ranking
- better frontend UI
- saved collections
I would appreciate feedback from other developers:
What filters would make this more useful for finding APIs quickly?