AI Directories

公式

AI Directoriesのカタログを検索し、掲載情報を確認し、提出ディレクトリを閲覧します。

AI Directories MCPで何ができますか?

  • AIツールの検索 — search_toolsを使用して、キーワード、カテゴリ、タグ、または価格でAIツールを検索するよう依頼します。
  • ツール詳細の取得 — get_toolを使用して、スラッグ経由で任意のツールの完全な公開リスト(スクリーンショットやFAQを含む)をリクエストします。
  • トップツールの閲覧 — get_top_toolsを使用して、オープン数で最も人気のあるAIツールを、カテゴリでフィルタリング可能な形で依頼します。
  • カテゴリとタグの探索 — list_categoriesまたはlist_tagsを使用して、アシスタントにすべてのAIツールカテゴリまたはタグを件数付きで一覧表示させます。
  • 提出先ディレクトリの検索 — search_directoriesを使用して、名前、コスト、またはカテゴリでディレクトリを検索し、提出先を特定します。
  • ディレクトリプロフィールの取得 — get_directoryを使用して、ドメインレーティングやバッジ要件を含むディレクトリの完全なプロフィールを取得します。

ドキュメント

開発者

Claudeで開く

API & MCP

公式AI Directoriesカタログ — curlまたはエージェントからAIツールと提出ディレクトリを検索できます。無料、ドキュメント完備、スクレイピングより優れています。

RESTGET · Bearer aid_

www.aidirectori.es/api/v1

MCPStreamable HTTP

api/mcp

OpenAPImachine spec

openapi.json

AI Directoriesカタログを検索し、リスティングを参照し、提出ディレクトリを閲覧できます — エージェントまたはcurlから利用可能です。RESTとMCPは同じバックエンドを共有しています。第三者のスクレイパーが公開ページをラップしてダンプに課金しています。これが公式ソースです。

例 — 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"
  }
}

できること

  • キーワード、カテゴリ、タグ、または価格でAIツールを検索
  • スラッグで1つのツールを取得(完全な公開リスティング)
  • カテゴリとタグを一覧表示
  • 提出ディレクトリを検索(DR、コスト、バッジ)
  • aid_キーで1つのディレクトリプロフィールを取得

できないこと

  • 創業者のメールやプライベート分析を読む
  • HTMLサイトをスクレイピングしたり、クローラーになりすましたりする
  • カタログを競合ディレクトリとして再公開する
  • 発行されたキーなしでパートナー書き込みAPIを呼び出す

存在理由

人々がaidirectori.esをスクレイピングしてエクスポートを販売していました。公式APIは製品、研究、エージェント向けに無料です — 帰属表示、レート制限、ライセンス付き:完全なカタログを競合ディレクトリや有料スクレイプとして再公開することはできません。

エージェントに組み込む

Cursor: .cursor/mcp.json または ~/.cursor/mcp.json。Authorization:の後にスペースを入れないでください — mcp-remoteは空白で分割されます。MCPのインストールを参照してください。

{
  "mcpServers": {
    "aidirectories": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://www.aidirectori.es/api/mcp",
        "--header", "Authorization:Bearer aid_your_real_key"
      ]
    }
  }
}

機械可読形式も

始める / クイックスタート

クイックスタート

aid_キーを作成し、ツールを検索し、1つのリスティングを取得し、ディレクトリを検索します。

開発者ダッシュボードでキーを作成し、これらをコピーします。

1. AIツールを検索

curl -s "https://www.aidirectori.es/api/v1/tools?q=image&limit=5" \
  -H "Authorization: Bearer aid_your_api_key"

2. 1つのリスティングを取得

curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
  -H "Authorization: Bearer aid_your_api_key"

3. ディレクトリを検索

curl -s "https://www.aidirectori.es/api/v1/directories?q=ai&limit=5" \
  -H "Authorization: Bearer aid_your_api_key"

MCPでも同じ操作:同じBearerトークンでサーバーを追加し、search_tools、get_tool、search_directoriesを呼び出します。MCPインストールを参照してください。

始める / 認証

認証

APIキーによるBearerトークン。開発者ダッシュボードからキーを生成します。標準10/分、プレミアム60/分。

認証

APIキーによるBearerトークン。開発者ダッシュボードからキーを生成します。

レート制限

標準キーは10リクエスト/分。プレミアムキーは60。開発者ダッシュボードからアップグレードできます。レート制限ヘッダーはすべてのレスポンスに含まれます。

ベースURL

https://www.aidirectori.es/api/v1

  1. 1 APIキーを取得

    開発者ダッシュボードに移動し、APIキーを作成します。キーはaid_で始まります。安全に保管してください — 完全なキーを再度表示することはできません。 利用規約への同意が必要 キーを作成するにはAPI利用規約への同意が必要です。ビジネスのクローン、AI Directoriesの再構築、一括再公開、無許可の公開SEOページ、悪意のあるターゲティング、認証情報の共有、アクセス制御の回避は禁止されており、プラットフォームの永久追放につながる可能性があります。
  2. 2 最初のリクエストを行う

    AuthorizationヘッダーでキーをBearerトークンとして渡します。X-API-Keyもすべてのエンドポイントで受け入れられます。この2つは交換可能です — キーが到達できる範囲はキーに依存し、送信されるヘッダーには依存しません。ダッシュボードのaid_キーでも、X-API-Keyとして送信するとパートナーエンドポイントで403が得られます。403が表示される場合、必要なのは別のヘッダーではなく別のキーです。
    curl -s "https://www.aidirectori.es/api/v1/tools?q=ai&limit=5" \
      -H "Authorization: Bearer aid_your_api_key"
    
  3. 3 レスポンスを解析

    成功した読み取りは{ success: true, data }を返します。リストエンドポイントにはpaginationも含まれます — そのフィールドと制限クランプルールはページングループを書く前に読む価値があります。X-RateLimit-Remainingに注意してください。
    {
      "success": true,
      "data": [
        {
          "slug": "transclipper",
          "name": "TransClipper",
          "website": "https://transclipper.ai"
        }
      ]
    }
    

パートナーキー

提出サービス用にツールを送信するディレクトリパートナーは、POST /submit-ai-tool、ステータス、ウェブフック、サポート用に発行されたキーを使用します。これらのキーはカタログ読み取りでも機能します。ディレクトリをお持ちですか?を参照してください。

MCP / インストール

MCPのインストール

ホスト型Streamable HTTP MCP — RESTと同じBearerキーを送信します。

サーバーはStreamable HTTP上でModel Context Protocolを話します。ホスト型です。すべてのツールはREST APIと同じ機能をラップしています。開発者ダッシュボードからAuthorization: Bearer aid_…を送信します。

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

プロジェクトスコープ: .cursor/mcp.json。グローバル: ~/.cursor/mcp.json。Claude Desktop: claude_desktop_config.json(stdioのみ — この同じブロック)。

{
  "mcpServers": {
    "aidirectories": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://www.aidirectori.es/api/mcp",
        "--header", "Authorization:Bearer aid_your_real_key"
      ]
    }
  }
}

Authorization:の後にスペースを入れないでください — mcp-remoteは引数を空白で分割するため、"Authorization: Bearer …"はヘッダーを壊します。ファイルを編集した後、クライアントを完全に再起動してください。

サーバーを追加した後、エージェントにツールの一覧表示を依頼します。search_tools、get_top_tools、get_tool、list_categories、list_tags、search_directories、get_directory、list_directory_categoriesが表示されるはずです。

検証

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 / ツール

MCPツール

すべてのMCPツールはRESTカタログの薄いラッパーです。

認証はRESTと同じBearer aid_キーです。

ツールREST入力
search_toolsGET /toolsq、カテゴリ、タグ、価格、注目、ページ、制限
get_top_toolsGET /tools/top制限、カテゴリ
get_toolGET /tools/{slug}スラッグ
list_categoriesGET /categoriesq、制限
list_tagsGET /tagsq、制限
search_directoriesGET /directoriesq、カテゴリ、コスト、注目、ページ、制限
get_directoryGET /directories/{slug}スラッグ
list_directory_categoriesGET /directory-categories—

完全なフィールドノートはAIツールとディレクトリにあります。

REST API / 概要

REST API

スクリプト、CI、パートナー統合用のプレーンHTTP。MCPサーバーは同じパスを呼び出します — 結果がどのトランスポートから要求されたかに依存することはありません。

操作メソッドパス認証入力
search_tools オプションのカテゴリ、タグ、価格、注目フィルター付きキーワード検索。GET/toolsBearerq、カテゴリ、タグ、価格、注目、includeAdult、ページ、制限
get_top_tools オープン数による上位N件のリスティング — キーワード不要。GET/tools/topBearer制限、カテゴリ、includeAdult
list_categories ツール数付きAIツールカテゴリ — 検索フィルタリングの前に使用。GET/categoriesBearerq、制限
list_tags ツール数付きAIツールタグ。GET/tagsBearerq、制限
get_tool 1つのAIツールの完全な公開リスティング。GET/tools/{slug}Bearerスラッグ
search_directories 名前、カテゴリ、またはコストで提出ディレクトリを検索。GET/directoriesBearerq、カテゴリ、コスト、注目、ページ、制限
get_directory 1つのディレクトリの完全な公開プロフィール。GET/directories/{slug}Bearerスラッグ
list_directory_categories フィルター発見用のディレクトリカテゴリラベル。GET/directory-categoriesBearer—
submit_ai_tool AIツールリスティングを作成(オプションでディレクトリ提出をキューに入れる)。POST/submit-ai-toolX-API-Key名前、ウェブサイト、タグライン、説明、カテゴリ、価格、創業者名、創業者メール、タグ、支払いタイプ、…
get_tool_status キーが提出したツールのディレクトリ提出進捗をポーリング。GET/ai-tools/statusX-API-Keyid | スラッグ | ウェブサイト

ディスカバリーはGET /にあり、OpenAPIドキュメントはGET /openapi.jsonにあります。カタログレスポンスのフィールドノートはAIツールとディレクトリにあります。

エンベロープ、ページネーション、制限

すべてのレスポンスは同じエンベロープです。dataは検索では配列、単一項目ルックアップではオブジェクトです。dataを読む前にsuccessを確認してください。

{ "success": true, "data": [], "pagination": { "page": 1, "limit": 20, "total": 0, "pages": 0 } }

{ "success": false, "error": "Invalid or revoked API key." }

GET /toolsとGET /directoriesはpaginationオブジェクトを返します。タクソノミーエンドポイント — /categories、/tags、/directory-categories — はリスト全体を返し、paginationキーは含みません。

ページ取得したページ(1始まり)
制限実際に適用された1ページあたりの項目数
合計全ページにわたる一致項目数
ページ数ceil(合計 / 制限)、一致なしの場合は0

過大な制限は拒否ではなくクランプされます。 最大値以上を要求すると最大値が返され、200が付きます — エラーは通知されません。/toolsと/directoriesはデフォルト20、上限100です。/categoriesと/tagsは上限500です。欠落、ゼロ、負、または非数値のlimitはデフォルトにフォールバックし、pageは最小1です。要求したページサイズを取得したと想定するのではなく、レスポンスからpagination.limitを読み戻してください — その想定がページングループを無限ループに変えるのです。

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

AIツール

ライブカタログを閲覧、検索、フィルタリングするか、スラッグで1つのリスティングを取得します。MCP search_tools、get_top_tools、get_tool、list_categories、list_tagsに対応します。

list_categories

ツール数付きAIツールカテゴリ — 検索フィルタリングの前に使用。

RESTGET /categories
MCPtools/call → list_categories
認証Bearer
入力q、制限
curl -s "https://www.aidirectori.es/api/v1/categories" \
  -H "Authorization: Bearer aid_your_api_key"

get_top_tools

オープン数による上位N件のリスティング — キーワード不要。

RESTGET /tools/top
MCPtools/call → get_top_tools
認証Bearer
入力制限、カテゴリ、includeAdult
curl -s "https://www.aidirectori.es/api/v1/tools/top?limit=10&category=image" \
  -H "Authorization: Bearer aid_your_api_key"

search_tools

オプションのカテゴリ、タグ、価格、注目フィルター付きキーワード検索。

RESTGET /tools
MCPtools/call → search_tools
認証Bearer
入力q、カテゴリ、タグ、価格、注目、includeAdult、ページ、制限
curl -s "https://www.aidirectori.es/api/v1/tools?q=ai&limit=5" \
  -H "Authorization: Bearer aid_your_api_key"

get_tool

1つのAIツールの完全な公開リスティング。

RESTGET /tools/{slug}
MCPtools/call → get_tool
認証Bearer
入力スラッグ
curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
  -H "Authorization: Bearer aid_your_api_key"

list_tags

ツール数付きAIツールタグ。

RESTGET /tags
MCPtools/call → list_tags
認証Bearer
入力q、制限
curl -s "https://www.aidirectori.es/api/v1/tags" \
  -H "Authorization: Bearer aid_your_api_key"

ディレクトリ

提出ディレクトリカタログ — Domain Rating、コスト、バッジ、カテゴリ。MCP search_directories、get_directory、list_directory_categoriesに対応します。

search_directories

名前、カテゴリ、またはコストで提出ディレクトリを検索。

RESTGET /directories
MCPtools/call → search_directories
認証Bearer
入力q、カテゴリ、コスト、注目、ページ、制限
curl -s "https://www.aidirectori.es/api/v1/directories?cost=Free&limit=10" \
  -H "Authorization: Bearer aid_your_api_key"

get_directory

1つのディレクトリの完全な公開プロフィール。

RESTGET /directories/{slug}
MCPtools/call → get_directory
認証Bearer
入力スラッグ
curl -s "https://www.aidirectori.es/api/v1/directories/theres-an-ai-for-that" \
  -H "Authorization: Bearer aid_your_api_key"

list_directory_categories

フィルター発見用のディレクトリカテゴリラベル。

RESTGET /directory-categories
MCPtools/call → list_directory_categories
認証Bearer
入力—
curl -s "https://www.aidirectori.es/api/v1/directory-categories" \
  -H "Authorization: Bearer aid_your_api_key"

パートナー

書き込みとステータスエンドポイントには発行されたX-API-Keyが必要です。サーバー上に保管してください。MCPはこれらを呼び出しません。完全なフィールドリストは提出とパートナーにあります。

submit_ai_tool

AIツールリスティングを作成(オプションでディレクトリ提出をキューに入れる)。

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

あなたのキーで送信したツールのディレクトリ提出の進捗をポーリングします。

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ツール

AIツール

公開済みのAIツールのリストを閲覧、検索、取得します。

search_tools

カテゴリ、タグ、価格、注目のフィルターを使ったキーワード検索。

RESTGET /tools
MCPsearch_tools
AuthBearer aid_
Inputq, category, tag, pricing (FREE | FREEMIUM | PAID), featured, includeAdult, page, limit (最大100)
curl -s "https://www.aidirectori.es/api/v1/tools?q=transclipper&limit=5" \
  -H "Authorization: Bearer aid_your_api_key"

各項目には、名前、スラッグ、リストURL、ウェブサイト、タグライン、説明、カテゴリ、タグ、価格、評価、オープン数、アイコン、タイムスタンプが含まれます。創業者のメールは含まれません。

アダルトリストはデフォルトで除外されます。 search_tools と get_top_tools は、明示的に要求しない限りアダルトリストを保留します。

除外はカテゴリとタグに基づきます。アダルトツールは一般的なカテゴリ(image、writing、video)に分類されながら、タグは正確に付けられることが多いためです。したがって、category=image は脱衣アプリを含めずに画像ツールを返します。

オプトインする方法は3つあります:includeAdult=true、category=nsfw、または tag=ai-undressing などのアダルトタグを指定することです。何も隠されたり到達不能になったりすることはありません — 単に、要求しなかった場合に得られないだけです。

get_top_tools

最も多く開かれている公開ツール。オプションでカテゴリスラッグを指定できます。

curl -s "https://www.aidirectori.es/api/v1/tools/top?limit=10&category=image" \
  -H "Authorization: Bearer aid_your_api_key"

get_tool

完全な公開リスト:スクリーンショット、FAQ、ソーシャルリンク、機能。

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"

カテゴリは slug、name、description、icon、toolsCount を返します。タグは slug、name、toolsCount を返します。どちらもページネーションされません — 全リストが返るので、キャッシュしてローカルでフィルタリングしてください。

ツールのフィールド

/tools、/tools/top、/tools/{slug} のすべてで返されます:

フィールド型備考
idstring安定した識別子
slugstring/tools/{slug} にこれを使用
name、tagline、descriptionstring
urlstringaidirectori.es 上のリスト
websitestring製品自身のサイト
categoryobject{ slug, name }、または null
tagsarray[{ slug, name }]
pricingstringFREE | FREEMIUM | PAID
ratingnumber未評価の場合は 0
opensnumberクリック数;/tools/top がこれでソート
featuredboolean
icon、framestring画像URL、null許容
founderName、locationstringnull許容。創業者のメールは決して含まれません
domainRatingnumbernull許容
isForSale、askingPriceboolean、number買収対象としてマークされたリスト
discountCode、affiliatestring、boolean
createdAt、updatedAtstringISO 8601、null許容

GET /tools/{slug} は screenshots(URLの配列)、video、socials、faqs、features、affiliateLink を追加します。これら6つは単一ツールのエンドポイントのみにあります — 検索からは期待しないでください。

リストが未入力のフィールドは null になる可能性があります。防御的にコーディングしてください。

REST API / ディレクトリ

ディレクトリ

カタログのもう半分 — スタートアップおよびSaaS提出ディレクトリ。DRと価格情報付き。

スクレイパーは通常これを見逃します。これは実際に製品を提出するリストです。

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"

フィールドには、名前、リストURL、ウェブサイト、ドメインレーティング、月間訪問数、リンクタイプ、バッジ要件、最低価格、カテゴリが含まれます。

get_directory

説明、FAQ、提出リンク、取引コピーを追加します。

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"

slug と name のみを返します。ページネーションされません。これらは ?category= が受け入れる値です — 推測せずに読み取ってください。

ディレクトリのフィールド

フィールド型備考
id、slug、namestring
urlstringaidirectori.es 上のプロフィール
websitestringディレクトリ自身のサイト
iconstringnull許容
coststringFree | Paid | Freemium
typestringリンクタイプ
domainRatingnumbernull許容 — 多くの人がこれでソートする数値
monthlyVisitsnumbernull許容
requiresBadgebooleanバックリンクバッジを要求するかどうか
minimumPricenumber無料の場合は 0
submissionExperiencestringnull許容
featuredboolean
categoriesarray[{ slug, name }]
smallDescriptionstringnull許容
createdAt、updatedAtstringISO 8601

GET /directories/{slug} は fullDescription、features、useCases、faq、deal({ text, code } または null)、frame、socials を追加します。

2つの url フィールドに注意:url は当社のプロフィールページ、website はディレクトリ自体です。直接提出フォームのURL(submissionLink)はカタログAPIやMCPには含まれません — これらはサイトとダッシュボードの有料リスト製品の一部です。

提出先の選定

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'

無料、バッジ不要、強いドメイン優先。

REST API / 提出とパートナー

提出とパートナー

ツールの提出、ステータスのポーリング、ウェブフック、サポートのためのAPIキーエンドポイント。

これらは匿名ではありません。パートナーごとにキーを発行します。MCPはこれらを呼び出しません。

ツールの提出

POST https://www.aidirectori.es/api/v1/submit-ai-tool

リストを作成します。paymentType を送信すると、そのパッケージのディレクトリ提出がキューに入ります。省略すると、ツールは待機状態で作成され、パッケージは後で管理者が設定できます。

必須

9

これらが欠けていると400が返ります。

フィールド型備考

  • name string 最大100文字。
  • website url 製品の公開URL。
  • tagline string 最大200文字。
  • description string 製品が何をするか。
  • category string スラッグまたは名前。既存のカテゴリにマッピングします。
  • pricing enum FREE PAID FREEMIUM 製品自身の価格 — ディレクトリパッケージではありません。
  • founderName string POSTする前にこれを収集します。
  • founderEmail email これを収集します。公開カタログの読み取りでは決して返されません。ブラウザから送信しないでください。
  • tags string[] スラッグまたは名前。

推奨

5

これらがなくてもリクエストは成功します — スラッグを生成し、アイコン/og:imageを取得し、パッケージを待機状態にします。ある場合は送信してください。

フィールド型備考

  • paymentType enum starter pro premium ディレクトリパッケージ:30+、60+、または100+提出。顧客がすでにパッケージを選んでいる場合はこれを送信します。ツールを待機状態で作成し、管理者が後で設定できるようにする場合のみ省略します。
  • slug string 公開URLスラッグ。省略した場合は名前から生成(一意化)されます — すでに安定したスラッグがある場合は送信してください。
  • icon url 正方形ロゴ。省略した場合はサイトのファビコンを取得します — より良いリストのために独自のものを送信してください。
  • frame url メインスクリーンショット。省略した場合はog:imageを取得します — 製品ショットがある場合は送信してください。
  • screenshots url[] ギャラリー画像。Cloudflareにミラーリングされます。必須ではありません。空の場合はフレームがヒーローをカバーします。

任意

11

公開URLの画像はCloudflareにミラーリングされます。

フィールド型備考

  • video url YouTubeまたはVimeo。
  • socials object URLへのキー、例:{ "twitter": "https://x.com/…" }。
  • features object 文字列マップ、例:{ "Templates": "50+" }。省略した場合は生成されます。
  • faq array 省略した場合は、サイトからスクレイピングまたは生成されます。
  • affiliate string アフィリエイトプログラムのコピー。
  • affiliateLink url
  • discountCode string リストに表示されるプロモコード。
  • location string 会社の所在地。
  • foundingDate string 設立日、自由形式。
  • isCustomer boolean すでに顧客であるかどうか。
  • isLaunched boolean 製品が公開されているかどうか。
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 https://www.aidirectori.es/api/v1/ai-tools/status — あなたのキーで送信したツールを、id、slug、website のいずれか1つで検索します。他のクライアントのツールは 404 を返します。

これはいつでも使用できます — ウェブフックが発火したときだけでなく。summary.isComplete が false の間はポーリングし、その後停止(またはDoneを待つ)します。submissionState は IN_QUEUE、ASSIGNED、IN_PROGRESS、REVIEW、DONE、またはディレクトリワークフローがない場合は null です。

curl -s "https://www.aidirectori.es/api/v1/ai-tools/status?slug=my-ai-tool" \
  -H "X-API-Key: YOUR_API_KEY"

ウェブフック

APIクライアントに保存されたHTTPS URLにJSONをPOSTします — 各提出時に送信されるわけではありません。申請時にURLを提供してください。webhookUrl として保存し、署名シークレットを送信します。ディレクトリのDoneとサポート返信の両方が同じエンドポイントに届きます。

ディレクトリイベントは、管理者があなたのキーで送信したツールでDoneをクリックし、かつ webhookUrl が設定されている場合に発火します。URLがない場合:何も送信しません。エンドポイントがダウンしているか非2xxの場合:ツールは依然としてDoneとマークされます。まだ再試行はしません — フォールバックが必要な場合はステータスをポーリングしてください。

イベント

2

本文を解析する前に X-AI-Directories-Event を読み取ってください。

フィールド型備考

  • directory_submissions.completed Done 管理者があなたのキーで送信したツールのディレクトリ作業をDoneとマークしました。ペイロードは { event, occurredAt, tool, summary, submissions } です。
  • support.replied reply サポート返信が準備できました(AIまたは人間)。ペイロードは { event, occurredAt, conversation } です。サポートが有効な場合のみ。

リクエスト

メソッドPOST
Content-Typeapplication/json
AuthHMACヘッダー — APIキーではありません

ヘッダー

3

フィールド型備考

  • X-AI-Directories-Event string 受け取ったペイロードの種類。これで分岐します — 同じURLが両方のイベントを受け取ります。
  • X-AI-Directories-Signature string sha256=<hex> 署名シークレットを使用した生のボディのHMAC。シークレットを発行した場合に存在します。
  • User-Agent string AI-Directories-Webhook/1.0

署名の検証

提供されたシークレットを使用して生のリクエストボディに対するHMAC-SHA256。X-AI-Directories-Signature の sha256= プレフィックスを除去した後、16進ダイジェストと比較します。タイミングセーフな比較を使用してください。

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));
}

ペイロード

submissions には、実際に提出したディレクトリのみが含まれます。各行には、ライブの listingUrl、証明スクリーンショット、ドメインレーティング、誰が提出したか(ADMIN または OWNER)を含めることができます。確認応答として 2xx を返してください。

{
  "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"
    }
  ]
}

カスタマーサポート

製品UIからの質問を転送します。可能な場合はナレッジベースから回答し、できない場合はダッシュボードで人間が返信します。デフォルトではオフ — 有効にするまで、POST /support/ask は 403 を返します。提出と同じ X-API-Key を使用します。MCPはこれを呼び出せません。

デフォルトモードはハイブリッド:AIが可能な場合は回答し、それ以外の場合は会話は人間のために pending のままです。クライアントを人間のみ(AIなし)に設定できます。製品知識がない場合、質問は人が対応するまで待機します。

質問の送信

POST https://www.aidirectori.es/api/v1/support/ask

ボディ

5 question は必須です。会話を続けるには conversationId または externalId を再利用してください。人間専用クライアントは、冪等な再試行のために metadata.peerPushMessageId を送信できます。

FieldTypeNotes

  • question string 顧客の質問。最大4000文字。message も受け付けます。
  • conversationId string 以前返されたスレッドを続けます。
  • externalId string あなたのチケットまたはスレッドID。再利用すると同じ会話が続きます。
  • customer object エンドカスタマー向けの任意の { name, email, id } — submit の創業者ではありません。
  • metadata object 会話に保存される任意のJSON。
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" }
  }'

ハイブリッド/AI: 200 と status: "answered" を組み合わせると、reply の準備ができたことを意味します(replySource は ai または human)。pending は、ポーリングするかウェブフックを待つことを意味します。

{
  "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" }
    ]
  }
}

人間専用クライアントは、履歴、customer、または messages[] のないスリムなエンベロープを受け取ります。message は、人間が返信するまで null であり、その後は単一のエージェントメッセージになります。

{
  "success": true,
  "data": {
    "id": "64a1b2c3d4e5f6789012345",
    "externalId": "ticket-123",
    "status": "pending",
    "message": null
  }
}

会話をポーリングする

GET https://www.aidirectori.es/api/v1/support/conversations/:id — または ?id=、?externalId=、?status=pending で一覧表示します。保留中の推奨間隔: 5〜15秒。ハイブリッドの一覧結果は完全な messages 配列を省略します。人間専用は ask と同じスリムな形状を返します。

curl -s "https://www.aidirectori.es/api/v1/support/conversations/64a1b2c3d4e5f6789012345" \
  -H "X-API-Key: YOUR_API_KEY"

返信準備完了時のウェブフック

webhookUrl が設定されている場合、support.replied を POST します — directory Done と同じHMAC。ハイブリッド/AIペイロードは reply / replySource を使用します。人間専用は、role: "agent" と source: "human" を持つ単一の conversation.message を使用します。

{
  "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"
    }
  }
}

キー、ウェブフックURL、署名シークレット、またはサポートアクセスについては、support@thedirectori.es にメールしてください — または Got a directory? から申請してください。

リファレンス / レート制限

レート制限

標準キーは1分間に10リクエスト。プレミアムキーは60。すべてのレスポンスにヘッダーが含まれます。

制限はAPIキーごとであり、IPごとではありません — また、RESTとMCPは別々の予算を使用するため、エージェントのバーストがサーバー側スクリプトを枯渇させることはありません。

キーREST / 分MCP / 分
標準(ダッシュボードの aid_)1030
プレミアム(有料Catalog APIプラン、管理者付与、または発行されたパートナーキー)60120

MCPの予算が大きいのは、エージェントがファンアウトするためです: ユーザーからの1つの質問が、通常、複数の並列ツール呼び出しになります。

ハンドシェイクは無料

initialize、notifications/initialized、ping、および tools/list は無料です。クライアントの接続や再起動は割り当てを消費しません — tools/call のみが消費します。不正なリクエストボディも課金されません。

すべてのレスポンスには X-RateLimit-Limit、X-RateLimit-Remaining、および X-RateLimit-Reset が含まれます。429 は Retry-After も送信します。

あなたの開発者ダッシュボード からアップグレード(月額$9)。検索エンジンやアシスタントのクローラーを装ってカタログをダンプしないでください。

より高い制限が必要ですか? support@thedirectori.es にメールしてください。

パートナーの submit/support キーには独自の書き込み制限があります。読み取り時にはプレミアムカタログ予算を使用します。

リファレンス / エラー

エラー

JSONエラー形式とHTTPステータスコード。

{ "success": false, "error": "Tool not found." }
HTTP意味
400不正なリクエスト
401APIキーが欠落または無効
403キーは有効だが機能が有効化されていない
404ツール、ディレクトリ、または会話が見つからない
429レート制限
500 / 503サーバーまたはデータベースの問題 — 再試行

MCPはJSON-RPCエラーを使用します(-32601 メソッドが見つからない、-32603 内部、およびツール isError ペイロード)。