AI Directories

offiziell

Durchsuchen 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_tools zu finden.
  • Tool-Details abrufen — Fordern Sie den vollständigen öffentlichen Eintrag für ein beliebiges Tool per Slug über get_tool an, 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_categories oder list_tags auflisten.
  • 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

In Claude öffnen

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_

www.aidirectori.es/api/v1

MCPStreamable HTTP

api/mcp

OpenAPIMaschinen-Spezifikation

openapi.json

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

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. 1 Holen Sie sich Ihren API-Schlüssel

    Gehen Sie zum Entwickler-Dashboard und erstellen Sie einen API-Schlüssel. Schlüssel beginnen mit aid_. 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. 2 Machen Sie Ihre erste Anfrage

    Übergeben Sie Ihren Schlüssel als Bearer-Token im Authorization-Header. X-API-Key wird 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 weiterhin 403 auf den Partner-Endpunkten, wenn er als X-API-Key gesendet 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. 3 Antwort parsen

    Erfolgreiche Lesevorgänge geben { success: true, data } zurück. Listen-Endpunkte enthalten außerdem pagination – seine Felder und die Regeln zur Limit-Begrenzung sollten Sie lesen, bevor Sie eine Paginierungsschleife schreiben. Achten Sie auf X-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.

ToolRESTEingabe
search_toolsGET /toolsq, category, tag, pricing, featured, page, limit
get_top_toolsGET /tools/toplimit, category
get_toolGET /tools/{slug}slug
list_categoriesGET /categoriesq, limit
list_tagsGET /tagsq, limit
search_directoriesGET /directoriesq, category, cost, featured, page, limit
get_directoryGET /directories/{slug}slug
list_directory_categoriesGET /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.

OperationMethodePfadAuthEingabe
search_tools Stichwortsuche mit optionalen Kategorie-, Tag-, Preis- und Featured-Filtern.GET/toolsBearerq, category, tag, pricing, featured, includeAdult, page, limit
get_top_tools Top-N-Einträge nach Öffnungen – kein Stichwort erforderlich.GET/tools/topBearerlimit, category, includeAdult
list_categories KI-Tool-Kategorien mit Tool-Anzahl – vor dem Filtern der Suche verwenden.GET/categoriesBearerq, limit
list_tags KI-Tool-Tags mit Tool-Anzahl.GET/tagsBearerq, limit
get_tool Der vollständige öffentliche Eintrag für ein KI-Tool.GET/tools/{slug}Bearerslug
search_directories Einreichungsverzeichnisse nach Name, Kategorie oder Kosten durchsuchen.GET/directoriesBearerq, category, cost, featured, page, limit
get_directory Das vollständige öffentliche Profil für ein Verzeichnis.GET/directories/{slug}Bearerslug
list_directory_categories Verzeichnis-Kategorielabels zur Filtererkennung.GET/directory-categoriesBearer—
submit_ai_tool Erstellt einen KI-Tool-Eintrag (und stellt optional Verzeichniseinreichungen in die Warteschlange).POST/submit-ai-toolX-API-Keyname, 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/statusX-API-Keyid | 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.

pageDie Seite, die Sie erhalten haben, 1-basiert
limitTatsächlich angewendete Elemente pro Seite
totalÜbereinstimmende Elemente über alle Seiten
pagesceil(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.

RESTGET /categories
MCPtools/call → list_categories
AuthBearer
Eingabeq, 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.

RESTGET /tools/top
MCPtools/call → get_top_tools
AuthBearer
Eingabelimit, 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.

RESTGET /tools
MCPtools/call → search_tools
AuthBearer
Eingabeq, 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.

RESTGET /tools/{slug}
MCPtools/call → get_tool
AuthBearer
Eingabeslug
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.

RESTGET /tags
MCPtools/call → list_tags
AuthBearer
Eingabeq, 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.

RESTGET /directories
MCPtools/call → search_directories
AuthBearer
Eingabeq, 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.

RESTGET /directories/{slug}
MCPtools/call → get_directory
AuthBearer
Eingabeslug
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.

RESTGET /directory-categories
MCPtools/call → list_directory_categories
AuthBearer
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).

RESTPOST /submit-ai-tool
MCP—
AuthX-API-Key
Inputname, 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.

RESTGET /ai-tools/status
MCP—
AuthX-API-Key
Inputid | 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.

RESTGET /tools
MCPsearch_tools
AuthBearer aid_
Inputq, 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:

FeldTypHinweise
idstringStabiler Bezeichner
slugstringVerwenden Sie dies für /tools/{slug}
name, tagline, descriptionstring
urlstringDer Eintrag auf aidirectori.es
websitestringDie eigene Website des Produkts
categoryobject{ slug, name }, oder null
tagsarray[{ slug, name }]
pricingstringFREE | FREEMIUM | PAID
ratingnumber0 wenn unbewertet
opensnumberKlick-Durchläufe; wonach /tools/top sortiert
featuredboolean
icon, framestringBild-URLs, nullable
founderName, locationstringNullable. Keine Gründer-E-Mail, jemals
domainRatingnumberNullable
isForSale, askingPriceboolean, numberEinträge, die für die Übernahme markiert sind
discountCode, affiliatestring, boolean
createdAt, updatedAtstringISO 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

RESTGET /directories
MCPsearch_directories
AuthBearer aid_
Inputq, 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

FeldTypHinweise
id, slug, namestring
urlstringDas Profil auf aidirectori.es
websitestringDie eigene Website des Verzeichnisses
iconstringNullable
coststringFree | Paid | Freemium
typestringLink-Typ
domainRatingnumberNullable — die Zahl, nach der die meisten sortieren
monthlyVisitsnumberNullable
requiresBadgebooleanOb sie ein Backlink-Badge verlangen
minimumPricenumber0 wenn kostenlos
submissionExperiencestringNullable
featuredboolean
categoriesarray[{ slug, name }]
smallDescriptionstringNullable
createdAt, updatedAtstringISO 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

  • name string Maximal 100 Zeichen.
  • website url Öffentliche URL des Produkts.
  • tagline string Maximal 200 Zeichen.
  • description string Was das Produkt tut.
  • category string Slug oder Name. Wir ordnen ihn einer bestehenden Kategorie zu.
  • pricing enum FREE PAID FREEMIUM Die eigene Preisgestaltung des Produkts — nicht das Verzeichnispaket.
  • founderName string Sie sammeln dies, bevor Sie POST senden.
  • founderEmail email Sie sammeln dies. Wird nie bei öffentlichen Kataloglesungen zurückgegeben. Nicht aus einem Browser senden.
  • tags string[] 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

  • paymentType enum starter pro premium Verzeichnispaket: 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.
  • slug string Öffentlicher URL-Slug. Aus dem Namen generiert (und eindeutig gemacht), wenn weggelassen — senden Sie ihn, wenn Sie bereits einen stabilen Slug haben.
  • icon url Quadratisches Logo. Wenn weggelassen, rufen wir das Website-Favicon ab — senden Sie Ihr eigenes für einen besseren Eintrag.
  • frame url Haupt-Screenshot. Wenn weggelassen, rufen wir og:image ab — senden Sie ein Produktbild, wenn Sie eines haben.
  • screenshots url[] 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

  • video url YouTube oder Vimeo.
  • socials object Schlüssel zu URLs, z. B. { "twitter": "https://x.com/…" }.
  • features object Zeichenfolgen-Zuordnung, z. B. { "Templates": "50+" }. Generiert, wenn weggelassen.
  • faq array Wenn weggelassen, von der Website gescrapt oder generiert.
  • affiliate string Affiliate-Programmtext.
  • affiliateLink url
  • discountCode string Promo-Code, der im Eintrag angezeigt wird.
  • location string Wo das Unternehmen ansässig ist.
  • foundingDate string Gründungsdatum, frei formuliert.
  • isCustomer boolean Ob sie bereits Kunde sind.
  • isLaunched boolean 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.completed Done 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.replied reply Eine Support-Antwort ist bereit (KI oder Mensch). Payload ist { event, occurredAt, conversation }. Nur wenn Support aktiviert ist.

Anfrage

MethodePOST
Content-Typeapplication/json
AuthHMAC-Header — nicht Ihr API-Schlüssel

Header

3

FeldTypHinweise

  • X-AI-Directories-Event string Welche Payload Sie erhalten haben. Verzweigen Sie darauf — dieselbe URL empfängt beide Ereignisse.
  • X-AI-Directories-Signature string sha256=<hex> HMAC des rohen Bodys mit Ihrem Signing-Secret. Vorhanden, wenn wir ein Secret ausgestellt haben.
  • User-Agent string 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

  • question string Die Frage des Kunden. Maximal 4000 Zeichen. message wird ebenfalls akzeptiert.
  • conversationId string Setzen Sie einen Thread fort, den wir zuvor zurückgegeben haben.
  • externalId string Ihre Ticket- oder Thread-ID. Die Wiederverwendung setzt dasselbe Gespräch fort.
  • customer object Optional { name, email, id } für den Endkunden – nicht den Gründer von submit.
  • metadata object 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üsselREST / MinuteMCP / Minute
Standard (aid_ vom Dashboard)1030
Premium (bezahlter Catalog-API-Plan, Admin-Gewährung oder ausgegebener Partner-Schlüssel)60120

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." }
HTTPBedeutung
400Ungültige Anfrage
401Fehlender oder ungültiger API-Schlüssel
403Schlüssel gültig, aber Funktion nicht aktiviert
404Tool, Verzeichnis oder Konversation nicht gefunden
429Rate-Limit
500 / 503Server- oder Datenbankproblem – erneut versuchen

MCP verwendet JSON-RPC-Fehler (-32601 Methode nicht gefunden, -32603 intern und Tool isError-Payloads).