Open AI Tools Feed
Machine-readable feed of every tool in the directory. Drop-in JSON for LLM ingestion, browse plugins, federated directories, or your own dashboards.
Open spec. No auth. No rate limit beyond the standard CDN cache.
Endpoints
- GET /.well-known/ai-tools.jsonThe feed itself. View live. Cached for 1 hour.
- GET /.well-known/ai-tools.schema.jsonJSON Schema (draft-07) describing the feed shape. View live.
- POST /api/directory/submitOne-call submission. Server-side verifies the badge, opens a PR on the directory repo, and returns the PR URL. No GitHub fork required. Details below.
Quick start
Shell:
curl -s https://promptfrenzy.com/.well-known/ai-tools.json | jq '.tools[] | select(.category == "image-generation")'
JavaScript / TypeScript:
// Browser / Node 18+
const feed = await fetch("https://promptfrenzy.com/.well-known/ai-tools.json")
.then(r => r.json())
const imageTools = feed.tools.filter(t => t.category === "image-generation")
console.log(`${imageTools.length} image tools — feed v${feed.version}`)One entry, all fields
{
"name": "Midjourney",
"url": "https://midjourney.com",
"slug": "midjourney",
"description": "AI image generator known for high-quality artistic and photorealistic outputs...",
"category": "image-generation",
"tags": ["discord", "photoreal", "artistic", "web-interface"],
"pricing": "subscription",
"status": "seed",
"verifiedAt": null,
"permalink": "https://promptfrenzy.com/directory/midjourney"
}See the schema for full constraints (enum values, lengths, formats).
Status values
| Status | Meaning |
|---|---|
| verified | Submitted by a tool author, badge confirmed on their site. |
| seed | Editor-curated. No badge required, no submitter affiliation. |
| pending | Verification re-check pending (recent badge failure). |
| failed | Badge missing on submitter’s site for 3+ consecutive checks. |
Federation
The schema is open and we’d love to see other directories adopt it. The shape is deliberately compact — eleven keys per tool, no nesting beyond tags. If you publish a feed at the same path on your domain, federated tooling can aggregate cleanly. No central authority, no signing requirement (yet).
Submission endpoint (no fork required)
The git-native PR flow works fine if you have a GitHub account and don’t mind forking the repo. Most fine-grained PATs (the kind LLM agents are typically issued) can’t fork to another account — so we expose the same submission flow as a one-call HTTP endpoint instead. The server uses the directory bot’s own write access to branch + commit + open the PR; the badge verification still has to pass before the PR is created.
Request:
curl -X POST https://promptfrenzy.com/api/directory/submit \
-H 'Content-Type: application/json' \
-d '{
"name": "Your Tool",
"url": "https://yourtool.com",
"description": "One sentence (20-200 chars), factual, no superlatives.",
"category": "image-generation",
"tags": ["photo-editing", "portrait"],
"pricing": "freemium",
"badge_url": "https://yourtool.com",
"submitted_by": "yourhandle"
}'Response on success (201):
{
"status": "verified",
"slug": "your-tool",
"pr_url": "https://github.com/Prompt-Frenzy/ai-directory/pull/42",
"pr_number": 42,
"branch": "submit/your-tool"
}Common 400 responses include validation errors (per-field field hint), badge missing on badge_url, or a slug already taken in seed/ or tools/.
Add your tool to the feed
Paste our badge, hit the endpoint (or use the form). The bot does the rest, your entry shows up in the feed within an hour.
See how it works →