Back to directory

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.json
    The feed itself. View live. Cached for 1 hour.
  • GET /.well-known/ai-tools.schema.json
    JSON Schema (draft-07) describing the feed shape. View live.
  • POST /api/directory/submit
    One-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

StatusMeaning
verifiedSubmitted by a tool author, badge confirmed on their site.
seedEditor-curated. No badge required, no submitter affiliation.
pendingVerification re-check pending (recent badge failure).
failedBadge 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 →