For AI agents and developers
AI Tool Index is built to be read by software as well as people. A free, open copy of the directory is available now. Paid, fresher data feeds are planned.
Developer API subscription. You can subscribe to the Developer API plan below via Stripe. The enriched
/api/v1/tools endpoint is still being built; subscribers will be emailed their API key when it is ready. Pay-per-request (x402) is planned.Available now (free)
| Endpoint | What it returns |
|---|---|
/llms.txt | Plain-text guide for AI assistants: what this site is and where the data lives. |
/llms-full.txt | Every tool as plain text: name, URL, pricing, description and details link, plus glossary. |
/api/tools.json | The full directory: 621 tools and 27 categories with name, official URL, category, pricing model, description and date checked. |
/api/sample.json | A 10-tool sample of the same schema for quick testing. |
/api/categories.json | Category list with tool counts. |
/api/openapi.json | OpenAPI description of the above and the planned paid endpoint. |
Paid access
Free
$0
- Static JSON files above
- Updated when the directory is updated
- Attribution appreciated: "Source: AI Tool Index"
Developer API key
$19/month
- Bearer-token API key
- Adds pricing source URLs and a change feed (what moved since last check)
- Higher rate limit and bulk export
Pay per request (x402)
≈$0.01/request
- No account or key: an agent pays in USDC per call
- Returns HTTP 402 with payment terms, then data after payment
- Same enriched data as the API key tier
Interested? Email [email protected].
Endpoint structure (stubbed)
Planned paid endpoint: GET /api/v1/tools, with ?category=, ?pricing= and ?since= filters. Without payment it responds 402 Payment Required. The free static files stay open. The stub below is draft code only and is not deployed.
// functions/api/v1/tools.js (Cloudflare Pages Function - not deployed)
// Draft only: shows where payment wiring would go.
export async function onRequestGet({ request, env }) {
const key = request.headers.get("Authorization")?.replace("Bearer ", "");
// STUB 1: API-key tier. Look the key up in KV (issued after a Stripe checkout webhook).
if (key && env.API_KEYS && await env.API_KEYS.get(key)) {
return Response.json(await loadFullDataset(env)); // enriched data + change feed
}
// STUB 2: pay-per-request tier (x402). Needs a wallet address + facilitator.
// const paid = await verifyX402(request, env.X402_PAY_TO, env.X402_FACILITATOR);
// if (paid) return Response.json(await loadFullDataset(env));
return new Response(JSON.stringify({
error: "payment_required",
free: "/api/tools.json", sample: "/api/sample.json", docs: "/for-agents/"
}), { status: 402, headers: { "content-type": "application/json" } });
}
Data schema
{ "id": "chatgpt", "name": "ChatGPT", "url": "https://chatgpt.com/",
"category": "chatbots", "pricing": "freemium", // free | freemium | paid | trial | unknown
"description": "...", "pricing_source": "https://.../pricing",
"affiliate_url": null, "featured": false, "checked": "2026-10-31", "added": "2026-10-31" }
Data is provided as-is, without warranty. Vendor names belong to their owners.