AI Directories
offiziellDurchsuchen Sie den AI Directories-Katalog, schlagen Sie einen Eintrag nach und stöbern Sie in den Einreichungsverzeichnissen.
Was kann man mit AI Directories MCP machen?
- KI-Tools suchen — Bitten Sie darum, KI-Tools nach Stichwort, Kategorie, Tag oder Preis mithilfe von
search_toolszu finden. - Tool-Details abrufen — Fordern Sie den vollständigen öffentlichen Eintrag für ein beliebiges Tool per Slug über
get_toolan, einschließlich Screenshots und FAQs. - Top-Tools durchsuchen — Fragen Sie nach den beliebtesten KI-Tools nach Öffnungen, optional nach Kategorie gefiltert, mit
get_top_tools. - Kategorien und Tags erkunden — Lassen Sie den Assistenten alle KI-Tool-Kategorien oder -Tags mit Anzahl mithilfe von
list_categoriesoderlist_tagsauflisten. - Einreichungsverzeichnisse finden — Durchsuchen Sie Verzeichnisse nach Name, Kosten oder Kategorie mit
search_directories, um Einreichungsziele zu identifizieren. - Verzeichnisprofile abrufen — Rufen Sie das vollständige Profil eines Verzeichnisses ab, einschließlich Domain-Rating und Badge-Anforderungen, über
get_directory.
Dokumentation
Developers
API & MCP
Offizieller AI Directories-Katalog – durchsuchen Sie KI-Tools und Einreichungsverzeichnisse per curl oder über einen Agenten. Kostenlos, dokumentiert und besser als Scraping.
RESTGET · Bearer aid_
MCPStreamable HTTP
OpenAPIMaschinen-Spezifikation
Durchsuchen Sie den AI Directories-Katalog, rufen Sie einen Eintrag ab und stöbern Sie in Einreichungsverzeichnissen – über einen Agenten oder per curl. REST und MCP nutzen dasselbe Backend. Drittanbieter-Scraper verpacken unsere öffentlichen Seiten und verlangen Geld für einen Datenabzug. Dies ist die offizielle Quelle.
Beispiel – GET /tools/transclipper
curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
-H "Authorization: Bearer aid_your_api_key"
{
"success": true,
"data": {
"id": "69b81f3e40816562014e004a",
"slug": "transclipper",
"name": "TransClipper",
"url": "https://www.aidirectori.es/ai-tools/transclipper",
"website": "https://transclipper.ai",
"tagline": "Steal the Blueprint Behind Any Viral Video",
"description": "TransClipper is a powerful AI-driven tool designed for efficient content clipping and transcription.",
"category": { "slug": "video", "name": "Video" },
"tags": [
{ "slug": "ai", "name": "AI" },
{ "slug": "content-creation", "name": "Content Creation" }
],
"pricing": "FREE",
"rating": 4,
"opens": 4030,
"featured": true,
"icon": "https://cdn.aidirectori.es/icons/1784893027853-vpj1hwsqkq.png"
}
}
Was Sie tun können
- KI-Tools nach Stichwort, Kategorie, Tag oder Preis durchsuchen
- Ein Tool per Slug abrufen (vollständiger öffentlicher Eintrag)
- Kategorien und Tags auflisten
- Einreichungsverzeichnisse durchsuchen (DR, Kosten, Badge)
- Ein Verzeichnisprofil mit Ihrem aid_-Schlüssel abrufen
Was Sie nicht tun können
- Gründer-E-Mails oder private Analysen lesen
- Die HTML-Seite scrapen oder einen Crawler imitieren
- Den Katalog als konkurrierendes Verzeichnis neu veröffentlichen
- Partner-Schreib-APIs ohne ausgestellten Schlüssel aufrufen
Warum es das gibt
Leute haben aidirectori.es gescrapet und den Export verkauft. Die offizielle API ist kostenlos für Produkte, Forschung und Agenten – mit Namensnennung, Ratenlimits und einer Lizenz: Sie dürfen den vollständigen Katalog nicht als konkurrierendes Verzeichnis oder bezahlten Scrape neu veröffentlichen.
In einen Agenten einbinden
Cursor: .cursor/mcp.json oder ~/.cursor/mcp.json. Kein Leerzeichen nach Authorization: – mcp-remote teilt bei Leerzeichen. Siehe MCP installieren.
{
"mcpServers": {
"aidirectories": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://www.aidirectori.es/api/mcp",
"--header", "Authorization:Bearer aid_your_real_key"
]
}
}
}
Auch maschinenlesbar
- /llms.txt – Seitenkurzbeschreibung für Agenten
- /sitemap.xml
- 60 Anfragen/Min · 400/Stunde pro IP
Loslegen / Schnellstart
Schnellstart
Erstellen Sie einen aid_-Schlüssel, dann suchen Sie Tools, rufen einen Eintrag ab und durchsuchen Verzeichnisse.
Erstellen Sie einen Schlüssel im Entwickler-Dashboard und kopieren Sie dann diese.
1. KI-Tools durchsuchen
curl -s "https://www.aidirectori.es/api/v1/tools?q=image&limit=5" \
-H "Authorization: Bearer aid_your_api_key"
2. Einen Eintrag abrufen
curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
-H "Authorization: Bearer aid_your_api_key"
3. Verzeichnisse durchsuchen
curl -s "https://www.aidirectori.es/api/v1/directories?q=ai&limit=5" \
-H "Authorization: Bearer aid_your_api_key"
Dieselben Operationen über MCP: Fügen Sie den Server mit demselben Bearer-Token hinzu und rufen Sie dann search_tools, get_tool und search_directories auf. Siehe MCP-Installation.
Loslegen / Authentifizierung
Authentifizierung
Bearer-Token über API-Schlüssel. Generieren Sie Schlüssel in Ihrem Entwickler-Dashboard. Standard 10/Min, Premium 60/Min.
Authentifizierung
Bearer-Token über API-Schlüssel. Generieren Sie Schlüssel in Ihrem Entwickler-Dashboard.
Ratenlimits
Standard-Schlüssel erhalten 10 Anfragen pro Minute. Premium-Schlüssel erhalten 60. Upgrade über Ihr Entwickler-Dashboard. Ratenlimit-Header sind in jeder Antwort enthalten.
Basis-URL
https://www.aidirectori.es/api/v1
-
1 Holen Sie sich Ihren API-Schlüssel
Gehen Sie zum Entwickler-Dashboard und erstellen Sie einen API-Schlüssel. Schlüssel beginnen mitaid_. Bewahren Sie ihn sicher auf – Sie können den vollständigen Schlüssel nicht erneut einsehen. Akzeptable Nutzung erforderlich Das Erstellen eines Schlüssels erfordert die Zustimmung zur API-Richtlinie für akzeptable Nutzung. Das Kopieren von Geschäften, der Neuaufbau von AI Directories, die Massenveröffentlichung, unbefugte öffentliche SEO-Seiten, missbräuchliches Targeting, die Weitergabe von Anmeldedaten und die Umgehung von Zugriffskontrollen sind untersagt und können zu einem dauerhaften Plattformverbot führen. -
2 Machen Sie Ihre erste Anfrage
Übergeben Sie Ihren Schlüssel als Bearer-Token imAuthorization-Header.X-API-Keywird ebenfalls auf jedem Endpunkt akzeptiert. Beide sind austauschbar – was ein Schlüssel erreichen kann, hängt vom Schlüssel ab, nicht vom Header, in dem er ankommt. Ein Dashboard-aid_-Schlüssel erhält weiterhin403auf den Partner-Endpunkten, wenn er alsX-API-Keygesendet wird; wenn Sie 403 sehen, benötigen Sie einen anderen Schlüssel, nicht einen anderen Header.curl -s "https://www.aidirectori.es/api/v1/tools?q=ai&limit=5" \ -H "Authorization: Bearer aid_your_api_key" -
3 Antwort parsen
Erfolgreiche Lesevorgänge geben{ success: true, data }zurück. Listen-Endpunkte enthalten außerdempagination– seine Felder und die Regeln zur Limit-Begrenzung sollten Sie lesen, bevor Sie eine Paginierungsschleife schreiben. Achten Sie aufX-RateLimit-Remaining.{ "success": true, "data": [ { "slug": "transclipper", "name": "TransClipper", "website": "https://transclipper.ai" } ] }
Partner-Schlüssel
Verzeichnispartner, die uns Tools für den Einreichungsdienst senden, verwenden weiterhin einen ausgestellten Schlüssel für POST /submit-ai-tool, Status, Webhooks und Support. Diese Schlüssel funktionieren auch für Katalog-Lesevorgänge. Siehe Haben Sie ein Verzeichnis?.
MCP / Installation
MCP installieren
Gehostetes Streamable-HTTP-MCP – senden Sie denselben Bearer-Schlüssel wie bei REST.
Der Server spricht das Model Context Protocol über Streamable HTTP. Er ist gehostet. Jedes Tool umschließt dieselben Funktionen wie die REST-API. Senden Sie Authorization: Bearer aid_… von Ihrem Entwickler-Dashboard.
https://www.aidirectori.es/api/mcp
Claude Code
claude mcp add --transport http aidirectories https://www.aidirectori.es/api/mcp \
--header "Authorization: Bearer aid_your_api_key"
Cursor / Claude Desktop
Projektbereich: .cursor/mcp.json. Global: ~/.cursor/mcp.json. Claude Desktop: claude_desktop_config.json (nur stdio – derselbe Block).
{
"mcpServers": {
"aidirectories": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://www.aidirectori.es/api/mcp",
"--header", "Authorization:Bearer aid_your_real_key"
]
}
}
}
Kein Leerzeichen nach Authorization: – mcp-remote teilt Argumente bei Leerzeichen, daher bricht "Authorization: Bearer …" den Header. Starten Sie den Client nach dem Bearbeiten der Datei vollständig neu.
Nach dem Hinzufügen des Servers bitten Sie den Agenten, die Tools aufzulisten. Sie sollten search_tools, get_top_tools, get_tool, list_categories, list_tags, search_directories, get_directory und list_directory_categories sehen.
Überprüfen
curl -s https://www.aidirectori.es/api/mcp -X POST \
-H "Authorization: Bearer aid_your_api_key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
MCP / Tools
MCP-Tools
Jedes MCP-Tool ist ein dünner Wrapper über den REST-Katalog.
Die Authentifizierung ist derselbe Bearer-aid_-Schlüssel wie bei REST.
| Tool | REST | Eingabe |
|---|---|---|
search_tools | GET /tools | q, category, tag, pricing, featured, page, limit |
get_top_tools | GET /tools/top | limit, category |
get_tool | GET /tools/{slug} | slug |
list_categories | GET /categories | q, limit |
list_tags | GET /tags | q, limit |
search_directories | GET /directories | q, category, cost, featured, page, limit |
get_directory | GET /directories/{slug} | slug |
list_directory_categories | GET /directory-categories | — |
Vollständige Feldnotizen finden Sie unter KI-Tools und Verzeichnisse.
REST-API / Übersicht
REST-API
Einfaches HTTP für Skripte, CI und Partnerintegrationen. Der MCP-Server ruft dieselben Pfade auf – ein Ergebnis hängt also nie davon ab, welcher Transport danach gefragt hat.
| Operation | Methode | Pfad | Auth | Eingabe |
|---|---|---|---|---|
| search_tools Stichwortsuche mit optionalen Kategorie-, Tag-, Preis- und Featured-Filtern. | GET | /tools | Bearer | q, category, tag, pricing, featured, includeAdult, page, limit |
| get_top_tools Top-N-Einträge nach Öffnungen – kein Stichwort erforderlich. | GET | /tools/top | Bearer | limit, category, includeAdult |
| list_categories KI-Tool-Kategorien mit Tool-Anzahl – vor dem Filtern der Suche verwenden. | GET | /categories | Bearer | q, limit |
| list_tags KI-Tool-Tags mit Tool-Anzahl. | GET | /tags | Bearer | q, limit |
| get_tool Der vollständige öffentliche Eintrag für ein KI-Tool. | GET | /tools/{slug} | Bearer | slug |
| search_directories Einreichungsverzeichnisse nach Name, Kategorie oder Kosten durchsuchen. | GET | /directories | Bearer | q, category, cost, featured, page, limit |
| get_directory Das vollständige öffentliche Profil für ein Verzeichnis. | GET | /directories/{slug} | Bearer | slug |
| list_directory_categories Verzeichnis-Kategorielabels zur Filtererkennung. | GET | /directory-categories | Bearer | — |
| submit_ai_tool Erstellt einen KI-Tool-Eintrag (und stellt optional Verzeichniseinreichungen in die Warteschlange). | POST | /submit-ai-tool | X-API-Key | name, website, tagline, description, category, pricing, founderName, founderEmail, tags, paymentType, … |
| get_tool_status Fragt den Fortschritt der Verzeichniseinreichung für ein Tool ab, das Ihr Schlüssel eingereicht hat. | GET | /ai-tools/status | X-API-Key | id | slug | website |
Die Erkennung befindet sich unter GET / und das OpenAPI-Dokument unter GET /openapi.json. Feldnotizen für Katalogantworten finden Sie unter KI-Tools und Verzeichnisse.
Umschlag, Paginierung und Limits
Jede Antwort verwendet denselben Umschlag. data ist ein Array bei Suchen und ein Objekt bei Einzelabfragen. Prüfen Sie success, bevor Sie data lesen.
{ "success": true, "data": [], "pagination": { "page": 1, "limit": 20, "total": 0, "pages": 0 } }
{ "success": false, "error": "Invalid or revoked API key." }
GET /tools und GET /directories geben ein pagination-Objekt zurück. Die Taxonomie-Endpunkte – /categories, /tags, /directory-categories – geben die gesamte Liste und überhaupt keinen pagination-Schlüssel zurück.
| page | Die Seite, die Sie erhalten haben, 1-basiert |
|---|---|
| limit | Tatsächlich angewendete Elemente pro Seite |
| total | Übereinstimmende Elemente über alle Seiten |
| pages | ceil(total / limit) oder 0, wenn nichts übereinstimmt |
Ein übermäßiges Limit wird begrenzt, nicht abgelehnt. Fragen Sie mehr als das Maximum an und Sie erhalten das Maximum, mit einem 200 – kein Fehler teilt Ihnen mit, dass es passiert ist. /tools und /directories standardmäßig 20 und begrenzt auf 100; /categories und /tags begrenzt auf 500. Ein fehlendes, null, negatives oder nicht-numerisches limit fällt auf den Standardwert zurück, und page wird auf mindestens 1 gesetzt. Lesen Sie also pagination.limit aus der Antwort zurück, anstatt anzunehmen, dass Sie die angeforderte Seitengröße erhalten haben – diese Annahme verwandelt eine Paginierungsschleife in eine Endlosschleife.
page=1
while :; do
body=$(curl -s "https://www.aidirectori.es/api/v1/tools?limit=100&page=$page" \
-H "Authorization: Bearer $AID_KEY")
echo "$body" | jq -e '.success' >/dev/null || { echo "$body"; break; }
echo "$body" | jq -c '.data[]'
pages=$(echo "$body" | jq '.pagination.pages')
[ "$page" -ge "$pages" ] && break
page=$((page + 1))
sleep 6 # stay under 10 req/min on a standard key
done
KI-Tools
Durchsuchen, suchen und filtern Sie den Live-Katalog oder rufen Sie einen Eintrag per Slug ab. Entspricht MCP search_tools, get_top_tools, get_tool, list_categories und list_tags.
list_categories
KI-Tool-Kategorien mit Tool-Anzahl – vor dem Filtern der Suche verwenden.
| REST | GET /categories |
|---|---|
| MCP | tools/call → list_categories |
| Auth | Bearer |
| Eingabe | q, limit |
curl -s "https://www.aidirectori.es/api/v1/categories" \
-H "Authorization: Bearer aid_your_api_key"
get_top_tools
Top-N-Einträge nach Öffnungen – kein Stichwort erforderlich.
| REST | GET /tools/top |
|---|---|
| MCP | tools/call → get_top_tools |
| Auth | Bearer |
| Eingabe | limit, category, includeAdult |
curl -s "https://www.aidirectori.es/api/v1/tools/top?limit=10&category=image" \
-H "Authorization: Bearer aid_your_api_key"
search_tools
Stichwortsuche mit optionalen Kategorie-, Tag-, Preis- und Featured-Filtern.
| REST | GET /tools |
|---|---|
| MCP | tools/call → search_tools |
| Auth | Bearer |
| Eingabe | q, category, tag, pricing, featured, includeAdult, page, limit |
curl -s "https://www.aidirectori.es/api/v1/tools?q=ai&limit=5" \
-H "Authorization: Bearer aid_your_api_key"
get_tool
Der vollständige öffentliche Eintrag für ein KI-Tool.
| REST | GET /tools/{slug} |
|---|---|
| MCP | tools/call → get_tool |
| Auth | Bearer |
| Eingabe | slug |
curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
-H "Authorization: Bearer aid_your_api_key"
list_tags
KI-Tool-Tags mit Tool-Anzahl.
| REST | GET /tags |
|---|---|
| MCP | tools/call → list_tags |
| Auth | Bearer |
| Eingabe | q, limit |
curl -s "https://www.aidirectori.es/api/v1/tags" \
-H "Authorization: Bearer aid_your_api_key"
Verzeichnisse
Der Katalog der Einreichungsverzeichnisse – Domain Rating, Kosten, Badge und Kategorien. Entspricht MCP search_directories, get_directory und list_directory_categories.
search_directories
Einreichungsverzeichnisse nach Name, Kategorie oder Kosten durchsuchen.
| REST | GET /directories |
|---|---|
| MCP | tools/call → search_directories |
| Auth | Bearer |
| Eingabe | q, category, cost, featured, page, limit |
curl -s "https://www.aidirectori.es/api/v1/directories?cost=Free&limit=10" \
-H "Authorization: Bearer aid_your_api_key"
get_directory
Das vollständige öffentliche Profil für ein Verzeichnis.
| REST | GET /directories/{slug} |
|---|---|
| MCP | tools/call → get_directory |
| Auth | Bearer |
| Eingabe | slug |
curl -s "https://www.aidirectori.es/api/v1/directories/theres-an-ai-for-that" \
-H "Authorization: Bearer aid_your_api_key"
list_directory_categories
Verzeichnis-Kategorielabels zur Filtererkennung.
| REST | GET /directory-categories |
|---|---|
| MCP | tools/call → list_directory_categories |
| Auth | Bearer |
| Eingabe | — |
curl -s "https://www.aidirectori.es/api/v1/directory-categories" \
-H "Authorization: Bearer aid_your_api_key"
Partner
Schreib- und Status-Endpunkte benötigen einen ausgestellten X-API-Key. Bewahren Sie ihn auf Ihrem Server auf. MCP ruft diese nicht auf. Vollständige Feldlisten finden Sie unter Einreichen & Partner.
submit_ai_tool
Erstellt einen KI-Tool-Eintrag (und stellt optional Verzeichniseinreichungen in die Warteschlange).
| REST | POST /submit-ai-tool |
|---|---|
| MCP | — |
| Auth | X-API-Key |
| Input | name, website, tagline, description, category, pricing, founderName, founderEmail, tags, paymentType, … |
curl -s -X POST "https://www.aidirectori.es/api/v1/submit-ai-tool" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Tool",
"website": "https://mytool.com",
"tagline": "One-line pitch",
"description": "What the product does.",
"category": "productivity",
"pricing": "FREE",
"paymentType": "pro",
"founderName": "Jane Founder",
"founderEmail": "jane@mytool.com",
"tags": ["ai", "productivity"],
"icon": "https://mytool.com/icon.png",
"frame": "https://mytool.com/screenshot.png",
"screenshots": ["https://mytool.com/gallery-1.png"]
}'
get_tool_status
Fragen Sie den Fortschritt der Verzeichnis-Einreichung für ein Tool ab, das Ihr Schlüssel eingereicht hat.
| REST | GET /ai-tools/status |
|---|---|
| MCP | — |
| Auth | X-API-Key |
| Input | id | slug | website |
curl -s "https://www.aidirectori.es/api/v1/ai-tools/status?slug=my-ai-tool" \
-H "X-API-Key: YOUR_API_KEY"
REST API / AI-Tools
AI-Tools
Durchsuchen, suchen und abrufen Sie veröffentlichte KI-Tool-Einträge.
search_tools
Stichwortsuche mit Kategorie-, Tag-, Preis- und Feature-Filtern.
| REST | GET /tools |
|---|---|
| MCP | search_tools |
| Auth | Bearer aid_ |
| Input | q, category, tag, pricing (FREE | FREEMIUM | PAID), featured, includeAdult, page, limit (max 100) |
curl -s "https://www.aidirectori.es/api/v1/tools?q=transclipper&limit=5" \
-H "Authorization: Bearer aid_your_api_key"
Jeder Eintrag enthält Name, Slug, Listen-URL, Website, Tagline, Beschreibung, Kategorie, Tags, Preis, Bewertung, Öffnungen, Symbol und Zeitstempel. Keine Gründer-E-Mail.
Erwachsenen-Einträge sind standardmäßig ausgeschlossen. search_tools und get_top_tools halten Erwachsenen-Einträge zurück, es sei denn, Sie fragen explizit danach.
Der Ausschluss erfolgt nach Kategorie und Tag, da Erwachsenen-Tools oft unter einer allgemeinen Kategorie eingetragen sind — image, writing, video — während sie sich selbst korrekt taggen. Daher gibt category=image Bild-Tools ohne die Entkleidungs-Apps zurück.
Drei Möglichkeiten, sich zu entscheiden: includeAdult=true, category=nsfw oder die Angabe eines Erwachsenen-Tags wie tag=ai-undressing. Nichts ist verborgen oder unerreichbar — es ist einfach nicht das, was Sie erhalten, wenn Sie nicht danach gefragt haben.
get_top_tools
Am häufigsten geöffnete veröffentlichte Tools. Optionaler Kategorie-Slug.
curl -s "https://www.aidirectori.es/api/v1/tools/top?limit=10&category=image" \
-H "Authorization: Bearer aid_your_api_key"
get_tool
Vollständiger öffentlicher Eintrag: Screenshots, FAQs, soziale Medien, Funktionen.
curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
-H "Authorization: Bearer aid_your_api_key"
list_categories / list_tags
curl -s "https://www.aidirectori.es/api/v1/categories" -H "Authorization: Bearer aid_your_api_key"
curl -s "https://www.aidirectori.es/api/v1/tags?q=photo" -H "Authorization: Bearer aid_your_api_key"
Kategorien geben slug, name, description, icon, toolsCount zurück. Tags geben slug, name, toolsCount zurück. Keine davon ist paginiert — Sie erhalten die gesamte Liste, also cachen Sie sie und filtern Sie lokal.
Tool-Felder
Zurückgegeben von /tools, /tools/top und /tools/{slug} gleichermaßen:
| Feld | Typ | Hinweise |
|---|---|---|
id | string | Stabiler Bezeichner |
slug | string | Verwenden Sie dies für /tools/{slug} |
name, tagline, description | string | |
url | string | Der Eintrag auf aidirectori.es |
website | string | Die eigene Website des Produkts |
category | object | { slug, name }, oder null |
tags | array | [{ slug, name }] |
pricing | string | FREE | FREEMIUM | PAID |
rating | number | 0 wenn unbewertet |
opens | number | Klick-Durchläufe; wonach /tools/top sortiert |
featured | boolean | |
icon, frame | string | Bild-URLs, nullable |
founderName, location | string | Nullable. Keine Gründer-E-Mail, jemals |
domainRating | number | Nullable |
isForSale, askingPrice | boolean, number | Einträge, die für die Übernahme markiert sind |
discountCode, affiliate | string, boolean | |
createdAt, updatedAt | string | ISO 8601, nullable |
GET /tools/{slug} fügt screenshots (Array von URLs), video, socials, faqs, features und affiliateLink hinzu. Diese sechs sind nur auf dem Einzel-Tool-Endpunkt — erwarten Sie sie nicht von einer Suche.
Jedes Feld kann null sein, wenn ein Eintrag es nicht ausgefüllt hat. Programmieren Sie defensiv.
REST API / Verzeichnisse
Verzeichnisse
Die andere Hälfte des Katalogs — Startup- und SaaS-Einreichungsverzeichnisse, mit DR und Preisen.
Scraper übersehen dies normalerweise. Es ist die Liste, an die wir tatsächlich Produkte einreichen.
search_directories
| REST | GET /directories |
|---|---|
| MCP | search_directories |
| Auth | Bearer aid_ |
| Input | q, category, cost (Free | Paid | Freemium), featured, page, limit |
curl -s "https://www.aidirectori.es/api/v1/directories?cost=Free&limit=10" \
-H "Authorization: Bearer aid_your_api_key"
Felder umfassen Name, Listen-URL, Website, Domain-Rating, monatliche Besuche, Link-Typ, Badge-Anforderung, Mindestpreis und Kategorien.
get_directory
Fügt Beschreibung, FAQ, Einreichungslink und Angebotstext hinzu.
curl -s "https://www.aidirectori.es/api/v1/directories/theres-an-ai-for-that" \
-H "Authorization: Bearer aid_your_api_key"
list_directory_categories
curl -s "https://www.aidirectori.es/api/v1/directory-categories" \
-H "Authorization: Bearer aid_your_api_key"
Gibt nur slug und name zurück. Nicht paginiert. Dies sind die Werte, die ?category= akzeptiert — lesen Sie sie, anstatt zu raten.
Verzeichnis-Felder
| Feld | Typ | Hinweise |
|---|---|---|
id, slug, name | string | |
url | string | Das Profil auf aidirectori.es |
website | string | Die eigene Website des Verzeichnisses |
icon | string | Nullable |
cost | string | Free | Paid | Freemium |
type | string | Link-Typ |
domainRating | number | Nullable — die Zahl, nach der die meisten sortieren |
monthlyVisits | number | Nullable |
requiresBadge | boolean | Ob sie ein Backlink-Badge verlangen |
minimumPrice | number | 0 wenn kostenlos |
submissionExperience | string | Nullable |
featured | boolean | |
categories | array | [{ slug, name }] |
smallDescription | string | Nullable |
createdAt, updatedAt | string | ISO 8601 |
GET /directories/{slug} fügt fullDescription, features, useCases, faq, deal ({ text, code } oder null), frame und socials hinzu.
Beachten Sie die beiden url-Felder: url ist unsere Profilseite, website ist das Verzeichnis selbst. Direkte Einreichungsformular-URLs (submissionLink) sind nicht in der Katalog-API oder MCP — sie sind Teil des kostenpflichtigen Listenprodukts auf der Website und im Dashboard.
Auswahl von Einreichungszielen
curl -s "https://www.aidirectori.es/api/v1/directories?cost=Free&limit=100" \
-H "Authorization: Bearer $AID_KEY" \
| jq -r '.data
| map(select(.requiresBadge == false and .domainRating != null))
| sort_by(-.domainRating)
| .[]
| [.domainRating, .name, .website] | @tsv'
Kostenlos, kein Badge erforderlich, stärkste Domains zuerst.
REST API / Einreichen & Partner
Einreichen & Partner
API-Schlüssel-Endpunkte zum Einreichen von Tools, Abfragen des Status, Webhooks und Support.
Diese sind nicht anonym. Wir stellen einen Schlüssel pro Partner aus. MCP ruft sie nicht auf.
Ein Tool einreichen
POST https://www.aidirectori.es/api/v1/submit-ai-tool
Erstellt einen Eintrag. Senden Sie paymentType, um Verzeichnis-Einreichungen für dieses Paket in die Warteschlange zu stellen. Lassen Sie es weg und das Tool wird als wartend erstellt, sodass das Paket später im Admin festgelegt werden kann.
Erforderlich
9
Fehlt eines davon, wird 400 zurückgegeben.
FeldTypHinweise
namestring Maximal 100 Zeichen.websiteurl Öffentliche URL des Produkts.taglinestring Maximal 200 Zeichen.descriptionstring Was das Produkt tut.categorystring Slug oder Name. Wir ordnen ihn einer bestehenden Kategorie zu.pricingenumFREEPAIDFREEMIUMDie eigene Preisgestaltung des Produkts — nicht das Verzeichnispaket.founderNamestring Sie sammeln dies, bevor Sie POST senden.founderEmailemail Sie sammeln dies. Wird nie bei öffentlichen Kataloglesungen zurückgegeben. Nicht aus einem Browser senden.tagsstring[] Slugs oder Namen.
Empfohlen
5
Die Anfrage ist ohne diese erfolgreich — wir generieren einen Slug, rufen Symbol/og:image ab und lassen das Paket als wartend. Senden Sie sie, wenn Sie sie haben.
FeldTypHinweise
paymentTypeenumstarterpropremiumVerzeichnispaket: 30+, 60+ oder 100+ Einreichungen. Senden Sie dies, wenn der Kunde bereits ein Paket gewählt hat. Lassen Sie es nur weg, wenn Sie möchten, dass das Tool als wartend erstellt wird, damit der Admin es später festlegen kann.slugstring Öffentlicher URL-Slug. Aus dem Namen generiert (und eindeutig gemacht), wenn weggelassen — senden Sie ihn, wenn Sie bereits einen stabilen Slug haben.iconurl Quadratisches Logo. Wenn weggelassen, rufen wir das Website-Favicon ab — senden Sie Ihr eigenes für einen besseren Eintrag.frameurl Haupt-Screenshot. Wenn weggelassen, rufen wir og:image ab — senden Sie ein Produktbild, wenn Sie eines haben.screenshotsurl[] Galeriebilder, zu Cloudflare gespiegelt. Nicht erforderlich; das Rahmenbild deckt das Hero ab, wenn dies leer ist.
Optional
11
Bilder unter öffentlichen URLs werden zu Cloudflare gespiegelt.
FeldTypHinweise
videourl YouTube oder Vimeo.socialsobject Schlüssel zu URLs, z. B.{ "twitter": "https://x.com/…" }.featuresobject Zeichenfolgen-Zuordnung, z. B.{ "Templates": "50+" }. Generiert, wenn weggelassen.faqarray Wenn weggelassen, von der Website gescrapt oder generiert.affiliatestring Affiliate-Programmtext.affiliateLinkurldiscountCodestring Promo-Code, der im Eintrag angezeigt wird.locationstring Wo das Unternehmen ansässig ist.foundingDatestring Gründungsdatum, frei formuliert.isCustomerboolean Ob sie bereits Kunde sind.isLaunchedboolean Ob das Produkt live ist.
curl -s -X POST "https://www.aidirectori.es/api/v1/submit-ai-tool" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Tool",
"website": "https://mytool.com",
"tagline": "One-line pitch",
"description": "What the product does.",
"category": "productivity",
"pricing": "FREE",
"paymentType": "pro",
"founderName": "Jane Founder",
"founderEmail": "jane@mytool.com",
"tags": ["ai", "productivity"],
"icon": "https://mytool.com/icon.png",
"frame": "https://mytool.com/screenshot.png",
"screenshots": ["https://mytool.com/gallery-1.png"]
}'
Einreichungsstatus abfragen
GET https://www.aidirectori.es/api/v1/ai-tools/status — suchen Sie ein Tool, das Ihr Schlüssel eingereicht hat, mit genau einem von id, slug oder website. Tools anderer Clients geben 404 zurück.
Verwenden Sie dies jederzeit — nicht nur, wenn ein Webhook ausgelöst wird. Fragen Sie ab, während summary.isComplete false ist, und stoppen Sie dann (oder warten Sie auf Done). submissionState ist IN_QUEUE, ASSIGNED, IN_PROGRESS, REVIEW, DONE oder null, wenn es keinen Verzeichnis-Workflow gibt.
curl -s "https://www.aidirectori.es/api/v1/ai-tools/status?slug=my-ai-tool" \
-H "X-API-Key: YOUR_API_KEY"
Webhook
Wir senden JSON per POST an eine HTTPS-URL, die auf Ihrem API-Client gespeichert ist — nicht bei jeder Einreichung gesendet. Geben Sie uns die URL bei Ihrer Bewerbung; wir speichern sie als webhookUrl und senden Ihnen ein Signing-Secret. Sowohl Verzeichnis-Done als auch Support-Antworten treffen auf denselben Endpunkt ein.
Das Verzeichnis-Ereignis wird ausgelöst, wenn ein Admin auf Done für ein Tool klickt, das Ihr Schlüssel eingereicht hat, und webhookUrl gesetzt ist. Fehlende URL: Wir senden nichts. Ihr Endpunkt ist down oder nicht-2xx: Das Tool wird trotzdem als Done markiert. Wir wiederholen noch nicht — fragen Sie den Status ab, wenn Sie einen Fallback benötigen.
Ereignisse
2
Lesen Sie X-AI-Directories-Event, bevor Sie den Body parsen.
FeldTypHinweise
directory_submissions.completedDone Admin hat die Verzeichnisarbeit für ein Tool als Done markiert, das Ihr Schlüssel eingereicht hat. Payload ist { event, occurredAt, tool, summary, submissions }.support.repliedreply Eine Support-Antwort ist bereit (KI oder Mensch). Payload ist { event, occurredAt, conversation }. Nur wenn Support aktiviert ist.
Anfrage
| Methode | POST |
|---|---|
| Content-Type | application/json |
| Auth | HMAC-Header — nicht Ihr API-Schlüssel |
Header
3
FeldTypHinweise
X-AI-Directories-Eventstring Welche Payload Sie erhalten haben. Verzweigen Sie darauf — dieselbe URL empfängt beide Ereignisse.X-AI-Directories-Signaturestring sha256=<hex> HMAC des rohen Bodys mit Ihrem Signing-Secret. Vorhanden, wenn wir ein Secret ausgestellt haben.User-Agentstring AI-Directories-Webhook/1.0
Signatur verifizieren
HMAC-SHA256 über den rohen Anfrage-Body mit dem Secret, das wir Ihnen gegeben haben. Vergleichen Sie den Hex-Digest mit X-AI-Directories-Signature, nachdem Sie das sha256=-Präfix entfernt haben. Verwenden Sie einen timing-sicheren Vergleich.
const crypto = require("crypto");
function verifySignature(rawBody, signatureHeader, secret) {
const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
const received = String(signatureHeader || "").replace(/^sha256=/, "");
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(received));
}
Payload
submissions enthält nur Verzeichnisse, an die wir tatsächlich eingereicht haben. Jede Zeile kann die Live-listingUrl, einen Beweis-Screenshot, das Domain-Rating und wer eingereicht hat (ADMIN oder OWNER) enthalten. Geben Sie 2xx zurück, um zu bestätigen.
{
"event": "directory_submissions.completed",
"occurredAt": "2026-09-01T13:00:00.000Z",
"tool": {
"id": "64a1b2c3d4e5f6789012345",
"name": "My AI Tool",
"slug": "my-ai-tool",
"website": "https://myaitool.com",
"paymentStatus": "prolist",
"paymentLabel": "Pro · 60+",
"targetDirectoriesCount": 60
},
"summary": {
"submittedCount": 62,
"recordedSubmissions": 62,
"notes": "All high-DR directories completed"
},
"submissions": [
{
"name": "There's An AI For That",
"slug": "theres-an-ai-for-that",
"url": "https://theresanaiforthat.com",
"listingUrl": "https://theresanaiforthat.com/ai/my-ai-tool",
"domainRating": 81,
"isSubmitted": true,
"submittedBy": "ADMIN",
"submittedAt": "2026-09-01T12:00:00.000Z"
}
]
}
Kundensupport
Leiten Sie eine Frage aus Ihrer Produkt-UI weiter; wir antworten aus Ihrer Wissensdatenbank, wenn möglich, oder ein Mensch antwortet in unserem Dashboard. Standardmäßig deaktiviert — bis wir es aktivieren, gibt POST /support/ask 403 zurück. Gleiches X-API-Key wie beim Einreichen. MCP kann dies nicht aufrufen.
Der Standardmodus ist hybrid: KI antwortet, wenn möglich, sonst bleibt die Konversation pending für einen Menschen. Wir können den Client auf nur-Mensch (keine KI) setzen. Ohne Produktwissen warten Fragen auf eine Person.
Eine Frage senden
POST https://www.aidirectori.es/api/v1/support/ask
Body
5 question ist erforderlich. Verwenden Sie conversationId oder externalId erneut, um einen Thread fortzusetzen. Nur-menschliche Clients können metadata.peerPushMessageId für idempotente Wiederholungen senden.
FieldTypeNotes
questionstring Die Frage des Kunden. Maximal 4000 Zeichen. message wird ebenfalls akzeptiert.conversationIdstring Setzen Sie einen Thread fort, den wir zuvor zurückgegeben haben.externalIdstring Ihre Ticket- oder Thread-ID. Die Wiederverwendung setzt dasselbe Gespräch fort.customerobject Optional{ name, email, id }für den Endkunden – nicht den Gründer von submit.metadataobject Beliebige JSON-Daten, die auf der Konversation gespeichert werden.
curl -s -X POST "https://www.aidirectori.es/api/v1/support/ask" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "How do I cancel my subscription?",
"externalId": "ticket-123",
"customer": { "name": "Ada", "email": "ada@example.com" }
}'
Hybrid/AI: 200 mit status: "answered" bedeutet, dass reply bereit ist (replySource ist ai oder human). pending bedeutet, abzufragen oder auf den Webhook zu warten.
{
"success": true,
"data": {
"id": "64a1b2c3d4e5f6789012345",
"status": "answered",
"externalId": "ticket-123",
"reply": "You can cancel from Settings → Billing.",
"replySource": "ai",
"messages": [
{ "role": "customer", "content": "How do I cancel my subscription?" },
{ "role": "assistant", "content": "You can cancel from Settings → Billing.", "source": "ai" }
]
}
}
Nur-menschliche Clients erhalten eine schlanke Hülle – keine Historie, customer oder messages[]. message ist null, bis ein Mensch antwortet, dann eine einzelne Agentennachricht.
{
"success": true,
"data": {
"id": "64a1b2c3d4e5f6789012345",
"externalId": "ticket-123",
"status": "pending",
"message": null
}
}
Eine Konversation abfragen
GET https://www.aidirectori.es/api/v1/support/conversations/:id – oder auflisten mit ?id=, ?externalId= oder ?status=pending. Empfohlenes Intervall während des Wartens: 5–15 Sekunden. Hybrid-Listenergebnisse lassen das vollständige messages-Array aus; nur-menschlich gibt dieselbe schlanke Form wie ask zurück.
curl -s "https://www.aidirectori.es/api/v1/support/conversations/64a1b2c3d4e5f6789012345" \
-H "X-API-Key: YOUR_API_KEY"
Webhook, wenn eine Antwort bereit ist
Wenn webhookUrl gesetzt ist, senden wir per POST support.replied – gleiche HMAC wie bei directory Done. Hybrid/AI-Payload verwendet reply / replySource. Nur-menschlich verwendet ein einzelnes conversation.message mit role: "agent" und source: "human".
{
"event": "support.replied",
"occurredAt": "2026-09-09T09:01:00.000Z",
"conversation": {
"id": "64a1b2c3d4e5f6789012345",
"status": "answered",
"externalId": "ticket-123",
"reply": "You can cancel from Settings → Billing.",
"replySource": "human"
}
}
{
"event": "support.replied",
"occurredAt": "2026-09-11T12:00:00.000Z",
"conversation": {
"id": "64a1b2c3d4e5f6789012345",
"externalId": "ticket-123",
"status": "answered",
"message": {
"id": "...",
"role": "agent",
"source": "human",
"content": "Thanks — here's how to cancel…",
"createdAt": "2026-09-11T12:00:00.000Z"
}
}
}
E-Mail an support@thedirectori.es für einen Schlüssel, eine Webhook-URL, ein Signing-Secret oder Support-Zugang – oder bewerben Sie sich über Got a directory?.
Referenz / Rate-Limits
Rate-Limits
Standard-Schlüssel erhalten 10 Anfragen pro Minute. Premium-Schlüssel erhalten 60. Header bei jeder Antwort.
Limits gelten pro API-Schlüssel, nicht pro IP – und REST und MCP greifen auf getrennte Budgets zu, sodass ein Agenten-Burst Ihre serverseitigen Skripte nicht aushungern kann.
| Schlüssel | REST / Minute | MCP / Minute |
|---|---|---|
Standard (aid_ vom Dashboard) | 10 | 30 |
| Premium (bezahlter Catalog-API-Plan, Admin-Gewährung oder ausgegebener Partner-Schlüssel) | 60 | 120 |
Das MCP-Budget ist das größere, weil Agenten sich verzweigen: Eine Frage eines Benutzers wird routinemäßig zu mehreren parallelen Tool-Aufrufen.
Der Handshake ist kostenlos
initialize, notifications/initialized, ping und tools/list kosten nichts. Das Verbinden eines Clients oder das Neustarten eines Clients verbraucht kein Kontingent – nur tools/call tut das. Ein fehlerhafter Anforderungstext wird ebenfalls nicht berechnet.
Jede Antwort enthält X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset. 429 sendet auch Retry-After.
Upgrade über Ihr Entwickler-Dashboard ($9/Monat). Geben Sie sich nicht als Suchmaschinen- oder Assistenten-Crawler aus, um das Verzeichnis auszulesen.
Benötigen Sie ein höheres Limit? E-Mail an support@thedirectori.es.
Partner-Submit/Support-Schlüssel haben eigene Schreiblimits; sie verwenden das Premium-Katalogbudget beim Lesen.
Referenz / Fehler
Fehler
JSON-Fehlerformat und HTTP-Statuscodes.
{ "success": false, "error": "Tool not found." }
| HTTP | Bedeutung |
|---|---|
| 400 | Ungültige Anfrage |
| 401 | Fehlender oder ungültiger API-Schlüssel |
| 403 | Schlüssel gültig, aber Funktion nicht aktiviert |
| 404 | Tool, Verzeichnis oder Konversation nicht gefunden |
| 429 | Rate-Limit |
| 500 / 503 | Server- oder Datenbankproblem – erneut versuchen |
MCP verwendet JSON-RPC-Fehler (-32601 Methode nicht gefunden, -32603 intern und Tool isError-Payloads).