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を使用して、ドメインレーティングやバッジ要件を含むディレクトリの完全なプロフィールを取得します。
ドキュメント
開発者
API & MCP
公式AI Directoriesカタログ — curlまたはエージェントからAIツールと提出ディレクトリを検索できます。無料、ドキュメント完備、スクレイピングより優れています。
RESTGET · Bearer aid_
MCPStreamable HTTP
OpenAPImachine spec
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"
]
}
}
}
機械可読形式も
- /llms.txt — エージェント向けサイト概要
- /sitemap.xml
- 60 req/min · 400/hour IPごと
始める / クイックスタート
クイックスタート
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 APIキーを取得
開発者ダッシュボードに移動し、APIキーを作成します。キーはaid_で始まります。安全に保管してください — 完全なキーを再度表示することはできません。 利用規約への同意が必要 キーを作成するにはAPI利用規約への同意が必要です。ビジネスのクローン、AI Directoriesの再構築、一括再公開、無許可の公開SEOページ、悪意のあるターゲティング、認証情報の共有、アクセス制御の回避は禁止されており、プラットフォームの永久追放につながる可能性があります。 -
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 レスポンスを解析
成功した読み取りは{ 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_tools | GET /tools | q、カテゴリ、タグ、価格、注目、ページ、制限 |
get_top_tools | GET /tools/top | 制限、カテゴリ |
get_tool | GET /tools/{slug} | スラッグ |
list_categories | GET /categories | q、制限 |
list_tags | GET /tags | q、制限 |
search_directories | GET /directories | q、カテゴリ、コスト、注目、ページ、制限 |
get_directory | GET /directories/{slug} | スラッグ |
list_directory_categories | GET /directory-categories | — |
完全なフィールドノートはAIツールとディレクトリにあります。
REST API / 概要
REST API
スクリプト、CI、パートナー統合用のプレーンHTTP。MCPサーバーは同じパスを呼び出します — 結果がどのトランスポートから要求されたかに依存することはありません。
| 操作 | メソッド | パス | 認証 | 入力 |
|---|---|---|---|---|
| search_tools オプションのカテゴリ、タグ、価格、注目フィルター付きキーワード検索。 | GET | /tools | Bearer | q、カテゴリ、タグ、価格、注目、includeAdult、ページ、制限 |
| get_top_tools オープン数による上位N件のリスティング — キーワード不要。 | GET | /tools/top | Bearer | 制限、カテゴリ、includeAdult |
| list_categories ツール数付きAIツールカテゴリ — 検索フィルタリングの前に使用。 | GET | /categories | Bearer | q、制限 |
| list_tags ツール数付きAIツールタグ。 | GET | /tags | Bearer | q、制限 |
| get_tool 1つのAIツールの完全な公開リスティング。 | GET | /tools/{slug} | Bearer | スラッグ |
| search_directories 名前、カテゴリ、またはコストで提出ディレクトリを検索。 | GET | /directories | Bearer | q、カテゴリ、コスト、注目、ページ、制限 |
| get_directory 1つのディレクトリの完全な公開プロフィール。 | GET | /directories/{slug} | Bearer | スラッグ |
| list_directory_categories フィルター発見用のディレクトリカテゴリラベル。 | GET | /directory-categories | Bearer | — |
| submit_ai_tool AIツールリスティングを作成(オプションでディレクトリ提出をキューに入れる)。 | POST | /submit-ai-tool | X-API-Key | 名前、ウェブサイト、タグライン、説明、カテゴリ、価格、創業者名、創業者メール、タグ、支払いタイプ、… |
| get_tool_status キーが提出したツールのディレクトリ提出進捗をポーリング。 | GET | /ai-tools/status | X-API-Key | id | スラッグ | ウェブサイト |
ディスカバリーは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ツールカテゴリ — 検索フィルタリングの前に使用。
| REST | GET /categories |
|---|---|
| MCP | tools/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件のリスティング — キーワード不要。
| REST | GET /tools/top |
|---|---|
| MCP | tools/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
オプションのカテゴリ、タグ、価格、注目フィルター付きキーワード検索。
| REST | GET /tools |
|---|---|
| MCP | tools/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ツールの完全な公開リスティング。
| REST | GET /tools/{slug} |
|---|---|
| MCP | tools/call → get_tool |
| 認証 | Bearer |
| 入力 | スラッグ |
curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
-H "Authorization: Bearer aid_your_api_key"
list_tags
ツール数付きAIツールタグ。
| REST | GET /tags |
|---|---|
| MCP | tools/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
名前、カテゴリ、またはコストで提出ディレクトリを検索。
| REST | GET /directories |
|---|---|
| MCP | tools/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つのディレクトリの完全な公開プロフィール。
| REST | GET /directories/{slug} |
|---|---|
| MCP | tools/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
フィルター発見用のディレクトリカテゴリラベル。
| REST | GET /directory-categories |
|---|---|
| MCP | tools/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ツールリスティングを作成(オプションでディレクトリ提出をキューに入れる)。
| 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
あなたのキーで送信したツールのディレクトリ提出の進捗をポーリングします。
| 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ツール
AIツール
公開済みのAIツールのリストを閲覧、検索、取得します。
search_tools
カテゴリ、タグ、価格、注目のフィルターを使ったキーワード検索。
| REST | GET /tools |
|---|---|
| MCP | search_tools |
| Auth | Bearer aid_ |
| Input | q, 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} のすべてで返されます:
| フィールド | 型 | 備考 |
|---|---|---|
id | string | 安定した識別子 |
slug | string | /tools/{slug} にこれを使用 |
name、tagline、description | string | |
url | string | aidirectori.es 上のリスト |
website | string | 製品自身のサイト |
category | object | { slug, name }、または null |
tags | array | [{ slug, name }] |
pricing | string | FREE | FREEMIUM | PAID |
rating | number | 未評価の場合は 0 |
opens | number | クリック数;/tools/top がこれでソート |
featured | boolean | |
icon、frame | string | 画像URL、null許容 |
founderName、location | string | null許容。創業者のメールは決して含まれません |
domainRating | number | null許容 |
isForSale、askingPrice | boolean、number | 買収対象としてマークされたリスト |
discountCode、affiliate | string、boolean | |
createdAt、updatedAt | string | ISO 8601、null許容 |
GET /tools/{slug} は screenshots(URLの配列)、video、socials、faqs、features、affiliateLink を追加します。これら6つは単一ツールのエンドポイントのみにあります — 検索からは期待しないでください。
リストが未入力のフィールドは null になる可能性があります。防御的にコーディングしてください。
REST API / ディレクトリ
ディレクトリ
カタログのもう半分 — スタートアップおよびSaaS提出ディレクトリ。DRと価格情報付き。
スクレイパーは通常これを見逃します。これは実際に製品を提出するリストです。
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"
フィールドには、名前、リスト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、name | string | |
url | string | aidirectori.es 上のプロフィール |
website | string | ディレクトリ自身のサイト |
icon | string | null許容 |
cost | string | Free | Paid | Freemium |
type | string | リンクタイプ |
domainRating | number | null許容 — 多くの人がこれでソートする数値 |
monthlyVisits | number | null許容 |
requiresBadge | boolean | バックリンクバッジを要求するかどうか |
minimumPrice | number | 無料の場合は 0 |
submissionExperience | string | null許容 |
featured | boolean | |
categories | array | [{ slug, name }] |
smallDescription | string | null許容 |
createdAt、updatedAt | string | ISO 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が返ります。
フィールド型備考
namestring 最大100文字。websiteurl 製品の公開URL。taglinestring 最大200文字。descriptionstring 製品が何をするか。categorystring スラッグまたは名前。既存のカテゴリにマッピングします。pricingenumFREEPAIDFREEMIUM製品自身の価格 — ディレクトリパッケージではありません。founderNamestring POSTする前にこれを収集します。founderEmailemail これを収集します。公開カタログの読み取りでは決して返されません。ブラウザから送信しないでください。tagsstring[] スラッグまたは名前。
推奨
5
これらがなくてもリクエストは成功します — スラッグを生成し、アイコン/og:imageを取得し、パッケージを待機状態にします。ある場合は送信してください。
フィールド型備考
paymentTypeenumstarterpropremiumディレクトリパッケージ:30+、60+、または100+提出。顧客がすでにパッケージを選んでいる場合はこれを送信します。ツールを待機状態で作成し、管理者が後で設定できるようにする場合のみ省略します。slugstring 公開URLスラッグ。省略した場合は名前から生成(一意化)されます — すでに安定したスラッグがある場合は送信してください。iconurl 正方形ロゴ。省略した場合はサイトのファビコンを取得します — より良いリストのために独自のものを送信してください。frameurl メインスクリーンショット。省略した場合はog:imageを取得します — 製品ショットがある場合は送信してください。screenshotsurl[] ギャラリー画像。Cloudflareにミラーリングされます。必須ではありません。空の場合はフレームがヒーローをカバーします。
任意
11
公開URLの画像はCloudflareにミラーリングされます。
フィールド型備考
videourl YouTubeまたはVimeo。socialsobject URLへのキー、例:{ "twitter": "https://x.com/…" }。featuresobject 文字列マップ、例:{ "Templates": "50+" }。省略した場合は生成されます。faqarray 省略した場合は、サイトからスクレイピングまたは生成されます。affiliatestring アフィリエイトプログラムのコピー。affiliateLinkurldiscountCodestring リストに表示されるプロモコード。locationstring 会社の所在地。foundingDatestring 設立日、自由形式。isCustomerboolean すでに顧客であるかどうか。isLaunchedboolean 製品が公開されているかどうか。
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.completedDone 管理者があなたのキーで送信したツールのディレクトリ作業をDoneとマークしました。ペイロードは { event, occurredAt, tool, summary, submissions } です。support.repliedreply サポート返信が準備できました(AIまたは人間)。ペイロードは { event, occurredAt, conversation } です。サポートが有効な場合のみ。
リクエスト
| メソッド | POST |
|---|---|
| Content-Type | application/json |
| Auth | HMACヘッダー — APIキーではありません |
ヘッダー
3
フィールド型備考
X-AI-Directories-Eventstring 受け取ったペイロードの種類。これで分岐します — 同じURLが両方のイベントを受け取ります。X-AI-Directories-Signaturestring sha256=<hex> 署名シークレットを使用した生のボディのHMAC。シークレットを発行した場合に存在します。User-Agentstring 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
questionstring 顧客の質問。最大4000文字。message も受け付けます。conversationIdstring 以前返されたスレッドを続けます。externalIdstring あなたのチケットまたはスレッドID。再利用すると同じ会話が続きます。customerobject エンドカスタマー向けの任意の{ name, email, id }— submit の創業者ではありません。metadataobject 会話に保存される任意の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_) | 10 | 30 |
| プレミアム(有料Catalog APIプラン、管理者付与、または発行されたパートナーキー) | 60 | 120 |
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 | 不正なリクエスト |
| 401 | APIキーが欠落または無効 |
| 403 | キーは有効だが機能が有効化されていない |
| 404 | ツール、ディレクトリ、または会話が見つからない |
| 429 | レート制限 |
| 500 / 503 | サーバーまたはデータベースの問題 — 再試行 |
MCPはJSON-RPCエラーを使用します(-32601 メソッドが見つからない、-32603 内部、およびツール isError ペイロード)。