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는 동일한 백엔드를 공유합니다. 제3자 스크래퍼가 공개 페이지를 감싸서 덤프에 요금을 청구합니다. 이것이 공식 소스입니다.
예시 — 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 도구 검색
- 슬러그로 도구 하나 가져오기 (전체 공개 목록)
- 카테고리 및 태그 나열
- 제출 디렉토리 검색 (DR, 비용, 배지)
- aid_ 키로 디렉토리 프로필 하나 가져오기
할 수 없는 작업
- 창업자 이메일 또는 비공개 분석 읽기
- 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. AI 도구 검색
curl -s "https://www.aidirectori.es/api/v1/tools?q=image&limit=5" \
-H "Authorization: Bearer aid_your_api_key"
2. 목록 하나 가져오기
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/min, 프리미엄 60/min.
인증
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도 모든 엔드포인트에서 허용됩니다. 둘은 상호 교환 가능합니다 — 키가 도달할 수 있는 것은 키에 달려 있으며, 도착하는 헤더가 아닙니다. 대시보드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, 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 | — |
전체 필드 노트는 AI 도구 및 디렉토리 아래에 있습니다.
REST API / 개요
REST API
스크립트, CI 및 파트너 통합을 위한 일반 HTTP. MCP 서버는 동일한 경로를 호출합니다 — 따라서 결과는 어떤 전송이 요청했는지에 의존하지 않습니다.
| 작업 | 메서드 | 경로 | 인증 | 입력 |
|---|---|---|---|---|
| search_tools 선택적 카테고리, 태그, 가격 및 featured 필터가 있는 키워드 검색. | GET | /tools | Bearer | q, category, tag, pricing, featured, includeAdult, page, limit |
| get_top_tools opens 기준 상위 N개 목록 — 키워드 불필요. | GET | /tools/top | Bearer | limit, category, includeAdult |
| list_categories 도구 수가 포함된 AI 도구 카테고리 — 검색 필터링 전에 사용. | GET | /categories | Bearer | q, limit |
| list_tags 도구 수가 포함된 AI 도구 태그. | GET | /tags | Bearer | q, limit |
| get_tool 하나의 AI 도구에 대한 전체 공개 목록. | GET | /tools/{slug} | Bearer | slug |
| search_directories 이름, 카테고리 또는 비용으로 제출 디렉토리 검색. | GET | /directories | Bearer | q, category, cost, featured, page, limit |
| get_directory 하나의 디렉토리에 대한 전체 공개 프로필. | GET | /directories/{slug} | Bearer | slug |
| list_directory_categories 필터 검색을 위한 디렉토리 카테고리 레이블. | GET | /directory-categories | Bearer | — |
| submit_ai_tool AI 도구 목록 생성 (선택적으로 디렉토리 제출 대기열). | POST | /submit-ai-tool | X-API-Key | name, website, tagline, description, category, pricing, founderName, founderEmail, tags, paymentType, … |
| get_tool_status 키가 제출한 도구의 디렉토리 제출 진행 상황 폴링. | GET | /ai-tools/status | X-API-Key | id | slug | website |
검색은 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 키가 전혀 없습니다.
| page | 받은 페이지, 1부터 시작 |
|---|---|
| limit | 실제 적용된 페이지당 항목 수 |
| total | 모든 페이지의 일치 항목 |
| pages | ceil(total / limit), 일치 항목이 없으면 0 |
초과 크기 제한은 거부되지 않고 클램프됩니다. 최대값보다 많이 요청하면 최대값을 받게 되며, 200이 함께 표시됩니다 — 발생했다는 오류는 없습니다. /tools 및 /directories은 기본 20이고 최대 100입니다; /categories 및 /tags는 최대 500입니다. 누락, 0, 음수 또는 비숫자 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 도구
라이브 카탈로그를 탐색, 검색 및 필터링하거나 슬러그로 목록 하나를 가져오세요. 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, limit |
curl -s "https://www.aidirectori.es/api/v1/categories" \
-H "Authorization: Bearer aid_your_api_key"
get_top_tools
opens 기준 상위 N개 목록 — 키워드 불필요.
| REST | GET /tools/top |
|---|---|
| MCP | tools/call → get_top_tools |
| 인증 | Bearer |
| 입력 | 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
선택적 카테고리, 태그, 가격 및 featured 필터가 있는 키워드 검색.
| REST | GET /tools |
|---|---|
| MCP | tools/call → search_tools |
| 인증 | Bearer |
| 입력 | 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
하나의 AI 도구에 대한 전체 공개 목록.
| REST | GET /tools/{slug} |
|---|---|
| MCP | tools/call → get_tool |
| 인증 | Bearer |
| 입력 | slug |
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, limit |
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, 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
하나의 디렉토리에 대한 전체 공개 프로필.
| REST | GET /directories/{slug} |
|---|---|
| MCP | tools/call → get_directory |
| 인증 | Bearer |
| 입력 | 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
필터 검색을 위한 디렉토리 카테고리 레이블.
| 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은 이미지 도구를 반환하되, 탈의 앱은 제외합니다.
옵트인하는 세 가지 방법: 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, nullable |
founderName, location | string | Nullable. 창업자 이메일은 절대 포함되지 않음 |
domainRating | number | Nullable |
isForSale, askingPrice | boolean, number | 인수 대상으로 표시된 목록 |
discountCode, affiliate | string, boolean | |
createdAt, updatedAt | string | ISO 8601, nullable |
GET /tools/{slug}는 screenshots(URL 배열), video, socials, faqs, features, affiliateLink을 추가합니다. 이 여섯 개는 단일 도구 엔드포인트에서만 제공됩니다. 검색에서는 기대하지 마세요.
목록이 채우지 않은 필드는 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 | Nullable |
cost | string | Free | Paid | Freemium |
type | string | 링크 유형 |
domainRating | number | Nullable — 대부분이 정렬 기준으로 사용하는 숫자 |
monthlyVisits | number | Nullable |
requiresBadge | boolean | 백링크 배지를 요구하는지 여부 |
minimumPrice | number | 무료일 때 0 |
submissionExperience | string | Nullable |
featured | boolean | |
categories | array | [{ slug, name }] |
smallDescription | string | Nullable |
createdAt, updatedAt | string | ISO 8601 |
GET /directories/{slug}는 fullDescription, features, useCases, faq, deal ({ text, code } 또는 null), frame, socials을 추가합니다.
두 개의 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 중 정확히 하나로 조회합니다. 다른 클라이언트의 도구는 404을 반환합니다.
웹훅이 발생할 때뿐만 아니라 언제든지 사용하세요. summary.isComplete이 false인 동안 폴링한 다음 중지하거나(또는 완료를 기다림) 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으로 저장하고 서명 비밀번호를 보냅니다. 디렉토리 완료 및 지원 답변 이벤트 모두 동일한 엔드포인트로 전송됩니다.
디렉토리 이벤트는 관리자가 키가 제출한 도구에 완료를 클릭하고 webhookUrl이 설정된 경우 발생합니다. URL 누락: 아무것도 보내지 않습니다. 엔드포인트가 다운되거나 2xx가 아닌 경우: 도구는 여전히 완료로 표시됩니다. 아직 재시도하지 않습니다 — 폴백이 필요하면 상태를 폴링하세요.
이벤트
2
본문을 파싱하기 전에 X-AI-Directories-Event를 읽으세요.
필드유형참고
directory_submissions.completed완료 관리자가 키가 제출한 도구에 대한 디렉토리 작업을 완료로 표시했습니다. 페이로드는 { event, occurredAt, tool, summary, submissions }입니다.support.replied답변 지원 답변이 준비되었습니다(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 상태로 유지됩니다. 클라이언트를 인간 전용(no 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로 이메일을 보내거나 디렉토리가 있나요?에서 신청하세요.
참조 / 속도 제한
속도 제한
표준 키는 분당 10회 요청을 받습니다. 프리미엄 키는 60회. 모든 응답에 헤더가 포함됩니다.
제한은 IP가 아닌 API 키별로 적용됩니다 — REST와 MCP는 별도의 예산을 사용하므로 에이전트 폭주가 서버 측 스크립트를 굶기지 않습니다.
| 키 | REST / 분 | MCP / 분 |
|---|---|---|
표준 (대시보드의 aid_) | 10 | 30 |
| 프리미엄 (유료 Catalog API 플랜, 관리자 승인 또는 발급된 파트너 키) | 60 | 120 |
MCP 예산이 더 큰 이유는 에이전트가 분산되기 때문입니다: 사용자의 질문 하나가 일반적으로 여러 병렬 도구 호출이 됩니다.
핸드셰이크는 무료입니다
initialize, notifications/initialized, ping 및 tools/list는 비용이 들지 않습니다. 클라이언트 연결 또는 재시작은 할당량을 소비하지 않습니다 — tools/call만 소비합니다. 잘못된 요청 본문도 청구되지 않습니다.
모든 응답에는 X-RateLimit-Limit, X-RateLimit-Remaining 및 X-RateLimit-Reset가 포함됩니다. 429는 Retry-After도 보냅니다.
개발자 대시보드에서 업그레이드하세요 ($9/월). 검색 엔진 또는 어시스턴트 크롤러를 사칭하여 카탈로그를 덤프하지 마세요.
더 높은 제한이 필요하신가요? support@thedirectori.es로 이메일을 보내세요.
파트너 제출/지원 키는 자체 쓰기 제한이 있습니다; 읽기 시 프리미엄 카탈로그 예산을 사용합니다.
참조 / 오류
오류
JSON 오류 형태 및 HTTP 상태 코드.
{ "success": false, "error": "Tool not found." }
| HTTP | 의미 |
|---|---|
| 400 | 잘못된 요청 |
| 401 | API 키 누락 또는 잘못됨 |
| 403 | 키는 유효하지만 기능이 활성화되지 않음 |
| 404 | 도구, 디렉토리 또는 대화를 찾을 수 없음 |
| 429 | 속도 제한 |
| 500 / 503 | 서버 또는 데이터베이스 문제 — 재시도 |
MCP는 JSON-RPC 오류를 사용합니다(-32601 메서드 없음, -32603 내부, 및 도구 isError 페이로드).