Broad public API directory with a strong AI and agent focus.
V1 is intentionally simple:
- static, build-time rendered pages
- Cloudflare Worker + static assets
- public APIs with availability metadata
- multiple public GitHub sources
- strong category and capability landing pages
- lightweight client-side search on top of a crawlable archive
- TypeScript for the Worker and build pipeline
- Tailwind CSS v4
- vanilla browser JavaScript for search/filter behavior
- Wrangler for Cloudflare deployment
public-api-lists/public-api-listspublic-apis/public-apistools-collection/apis-collection
The build reads versioned snapshots from data/vendor/ instead of fetching these sources live. Run
npm run sources:refresh to update the snapshots from upstream.
npm run buildbuilds the full static site intodist/npm run typecheckruns TypeScript checksnpm run checkruns type checks pluswrangler types --checknpm run cf:typegenregeneratesworker-configuration.d.tsnpm run sources:refreshrefreshes versioned API source snapshots indata/vendor/npm run devbuilds the site, then starts Wrangler local developmentnpm run audit:linksaudits all target docs URLs with 10 parallel workers and refreshes the ignore listnpm run screenshots:capturecaptures up to 60 missing or stale real screenshots into.cache/screenshotsusing Playwright
V1 supports two modes:
- default: generated SVG placeholders for every API entry
- local/CI capture mode:
npm run screenshots:capturerenders real screenshots with Playwright into.cache/screenshots/ - optional remote mode: if
SCREENSHOT_API_BASE_URLis provided, the build tries to fetch real screenshots and caches them in.cache/screenshots/
If remote screenshot capture is unavailable, the build does not fail.
Recommended production path:
- run
npm run audit:linksfirst, so dead targets land indata/api-ignore-list.json - run
npm run screenshots:capture -- --concurrency=5 --limit=60 --stale-days=90 - then run
npm run build
The deploy workflow restores and saves .cache/screenshots, installs Chromium, refreshes a bounded batch of up to 60 missing screenshots plus screenshots older than 90 days, and then deploys.
The repository includes GitHub Actions workflows for CI and Cloudflare deployment.
Required secrets for deploy:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
Optional screenshot-related secrets:
SCREENSHOT_API_BASE_URLSCREENSHOT_API_TOKEN