1,850 curated public APIs — trust-rated, AI-ready, and 470 KB small. The first API directory built for both humans AND AI agents.
# Load directly into any LLM context
curl -s https://raw.githubusercontent.com/shivtcdfinance/public-api-access-ai-compatible/main/api_access.min.jsonClaude / Cursor / Copilot:
Load this file: https://raw.githubusercontent.com/shivtcdfinance/public-api-access-ai-compatible/main/ai_prompt.txt
Then ask: "Find me a free HTTPS API for currency exchange rates"
Python:
import json, urllib.request
url = "https://raw.githubusercontent.com/shivtcdfinance/public-api-access-ai-compatible/main/api_access.min.json"
apis = json.loads(urllib.request.urlopen(url).read())
# Safe APIs: trusted + no auth + HTTPS
safe = [a for a in apis if a['trust'] == 'trusted' and a['auth'] == 'no' and a['https']]
weather = [a for a in safe if 'weather' in a['name'].lower()]
print(weather[0]['url']) # Ready to callFor Humans — Live Demo
Every other API directory (public-apis, RapidAPI, APIList) is built for human browsing — long markdown tables, vague descriptions, no filtering. AI agents can't use those.
API Canon is different:
| Feature | Other directories | API Canon |
|---|---|---|
| Format | Markdown tables | Structured JSON |
| Trust signal | None | Domain-level rating (trusted/likely/unknown/suspicious) |
| Fits in LLM context | 5+ MB (too big) | 472 KB (fits everywhere) |
| Live demo | None | Searchable web UI |
| AI agent ready | No | Prompt templates included |
| Health-checked | Dead links rot silently | CI pings 100 random APIs weekly |
Web Browser — Live Demo
Open the demo, type "weather" or "crypto", filter by trust rating. Instant.
# Search for APIs by keyword
curl -s https://raw.githubusercontent.com/shivtcdfinance/public-api-access-ai-compatible/main/api_access.min.json \
| jq '.[] | select(.name | test("weather"; "i")) | {name, trust, auth}'Claude / Cursor / Copilot:
Load this file into your context: https://raw.githubusercontent.com/shivtcdfinance/api-canon/main/ai_prompt.txt
Then ask: "Find me a free HTTPS API for currency exchange rates"
ChatGPT Custom GPT:
Upload api_canon.min.json to your Knowledge.
Then prompt: "Using the API Canon, find the best API for [task]"
Python:
import json, urllib.request
url = "https://raw.githubusercontent.com/shivtcdfinance/api-canon/main/api_canon.min.json"
apis = json.loads(urllib.request.urlopen(url).read())
# Safe APIs: trusted + no auth + HTTPS
safe = [a for a in apis if a['trust'] == 'trusted' and a['auth'] == 'no' and a['https']]
weather = [a for a in safe if 'weather' in a['name'].lower()]
print(weather[0]['url']) # Ready to callEvery API entry:
{
"name": "OpenWeatherMap",
"desc": "Current weather forecasts, and historical data",
"cat": "weather",
"domain": "openweathermap.org",
"url": "https://openweathermap.org/api",
"auth": "apikey",
"https": true,
"cors": "unknown",
"trust": "trusted",
"source": "marcelscruz"
}| Field | Values | Description |
|---|---|---|
name |
string | API name |
desc |
string | Short description |
cat |
string | Category (finance, weather, geocoding, etc.) |
domain |
string | Provider domain |
url |
string | API documentation URL |
auth |
no / apikey / oauth |
Authentication required |
https |
true / false |
HTTPS support |
cors |
yes / no / unknown |
Cross-origin support |
trust |
trusted / likely_safe / marketplace / unknown / suspicious |
Trust rating |
source |
marcelscruz / public-api-lists |
Data provenance |
Every API domain is classified automatically:
| Rating | Count | Criteria |
|---|---|---|
| trusted | 252 | Google, Microsoft, Stripe, .gov/.edu, known providers |
| likely_safe | 61 | Hosted on Vercel/Render/GitHub Pages — reputable platforms |
| marketplace | 75 | RapidAPI, APYHub — vet individual APIs |
| unknown | 1,453 | Valid SSL, active DNS — probably fine, check before uploading data |
| suspicious | 10 | .xyz, .cf, .gq TLDs — excluded from trust tiers |
- Domain whitelist — ~200 known trusted organizations (Google, Microsoft, Stripe, GitHub, etc.)
- TLD blocklist — Free/cheap TLDs commonly used for disposable services
- Gov/edu detection —
.gov,.edu,.mildomains auto-trusted - Platform detection —
vercel.app,netlify.app,github.io= likely_safe - SSL validation — Spot-checked: 98% of unknown domains have valid SSL
- Health check — Weekly CI pings 100 random APIs, flags dead domains
| File | Size | Use |
|---|---|---|
api_access.min.json |
470 KB | Primary — load this into your app/AI agent |
api_access.full.json |
770 KB | Full version with category/auth indexes |
docs/index.html |
— | GitHub Pages searchable demo |
examples/ |
— | Python, curl, Node.js, AI prompt examples |
scripts/ |
— | Rebuild from upstream sources |
tests/ |
— | Schema + trust + health validation |
This repo is kept in sync from a central curated database:
Central DB (local, private)
└─ health_check.py → Weekly: pings APIs, prunes dead ones
└─ sync_to_github.py → Sanitizes & pushes clean data here
✓ Strips personal API keys / private entries
✓ Only marcelscruz + public-api-lists sources
✓ Zero personal data ever touches this repo
Built from two community-maintained API directories:
- marcelscruz/public-apis — 1,605 APIs in structured JSON
- public-api-lists/public-api-lists — 730+ community-vetted APIs
Both MIT-licensed. Clean, no malware, no telemetry. Full audit →
cd scripts
python3 build_db.py # Pulls latest from upstream, rebuilds api_canon.jsonFound a dead API? Wrong trust rating? Missing category?
- Open an issue with the API name and what's wrong
- Or: edit
api_canon.min.jsondirectly and open a PR - PRs are auto-validated by CI for JSON schema + trust consistency
- Shivansh Rao (@shivtcdfinance) — curation, trust system, build pipeline
- marcelscruz/public-apis — upstream data source
- public-api-lists/public-api-lists — upstream data source
- Jarvis (Hermes Agent) — built, audited, and deployed end-to-end
License: MIT — use freely in any project, commercial or personal.