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는 동일한 백엔드를 공유합니다. 제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"
      ]
    }
  }
}

기계 판독 가능 항목

시작하기 / 빠른 시작

빠른 시작

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. 1 API 키 받기

    개발자 대시보드로 이동하여 API 키를 생성하세요. 키는 aid_로 시작합니다. 안전하게 저장하세요 — 전체 키를 다시 볼 수 없습니다. 허용 가능한 사용이 필요합니다 키 생성에는 API 허용 가능한 사용 정책에 대한 동의가 필요합니다. 비즈니스 복제, AI Directories 재구축, 대량 재게시, 무단 공개 SEO 페이지, 악의적 타겟팅, 자격 증명 공유 및 접근 제어 우회는 금지되며 영구 플랫폼 금지로 이어질 수 있습니다.
  2. 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. 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, 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—

전체 필드 노트는 AI 도구 및 디렉토리 아래에 있습니다.

REST API / 개요

REST API

스크립트, CI 및 파트너 통합을 위한 일반 HTTP. MCP 서버는 동일한 경로를 호출합니다 — 따라서 결과는 어떤 전송이 요청했는지에 의존하지 않습니다.

작업메서드경로인증입력
search_tools 선택적 카테고리, 태그, 가격 및 featured 필터가 있는 키워드 검색.GET/toolsBearerq, category, tag, pricing, featured, includeAdult, page, limit
get_top_tools opens 기준 상위 N개 목록 — 키워드 불필요.GET/tools/topBearerlimit, category, includeAdult
list_categories 도구 수가 포함된 AI 도구 카테고리 — 검색 필터링 전에 사용.GET/categoriesBearerq, limit
list_tags 도구 수가 포함된 AI 도구 태그.GET/tagsBearerq, limit
get_tool 하나의 AI 도구에 대한 전체 공개 목록.GET/tools/{slug}Bearerslug
search_directories 이름, 카테고리 또는 비용으로 제출 디렉토리 검색.GET/directoriesBearerq, category, cost, featured, page, limit
get_directory 하나의 디렉토리에 대한 전체 공개 프로필.GET/directories/{slug}Bearerslug
list_directory_categories 필터 검색을 위한 디렉토리 카테고리 레이블.GET/directory-categoriesBearer—
submit_ai_tool AI 도구 목록 생성 (선택적으로 디렉토리 제출 대기열).POST/submit-ai-toolX-API-Keyname, website, tagline, description, category, pricing, founderName, founderEmail, tags, paymentType, …
get_tool_status 키가 제출한 도구의 디렉토리 제출 진행 상황 폴링.GET/ai-tools/statusX-API-Keyid | 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모든 페이지의 일치 항목
pagesceil(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 도구 카테고리 — 검색 필터링 전에 사용.

RESTGET /categories
MCPtools/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개 목록 — 키워드 불필요.

RESTGET /tools/top
MCPtools/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 필터가 있는 키워드 검색.

RESTGET /tools
MCPtools/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 도구에 대한 전체 공개 목록.

RESTGET /tools/{slug}
MCPtools/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 도구 태그.

RESTGET /tags
MCPtools/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

이름, 카테고리 또는 비용으로 제출 디렉토리 검색.

RESTGET /directories
MCPtools/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

하나의 디렉토리에 대한 전체 공개 프로필.

RESTGET /directories/{slug}
MCPtools/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

필터 검색을 위한 디렉토리 카테고리 레이블.

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은 이미지 도구를 반환하되, 탈의 앱은 제외합니다.

옵트인하는 세 가지 방법: 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, nullable
founderName, locationstringNullable. 창업자 이메일은 절대 포함되지 않음
domainRatingnumberNullable
isForSale, askingPriceboolean, number인수 대상으로 표시된 목록
discountCode, affiliatestring, boolean
createdAt, updatedAtstringISO 8601, nullable

GET /tools/{slug}는 screenshots(URL 배열), video, socials, faqs, features, affiliateLink을 추가합니다. 이 여섯 개는 단일 도구 엔드포인트에서만 제공됩니다. 검색에서는 기대하지 마세요.

목록이 채우지 않은 필드는 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디렉토리 자체 사이트
iconstringNullable
coststringFree | Paid | Freemium
typestring링크 유형
domainRatingnumberNullable — 대부분이 정렬 기준으로 사용하는 숫자
monthlyVisitsnumberNullable
requiresBadgeboolean백링크 배지를 요구하는지 여부
minimumPricenumber무료일 때 0
submissionExperiencestringNullable
featuredboolean
categoriesarray[{ slug, name }]
smallDescriptionstringNullable
createdAt, updatedAtstringISO 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을 반환합니다.

필드유형참고

  • 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 중 정확히 하나로 조회합니다. 다른 클라이언트의 도구는 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-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 상태로 유지됩니다. 클라이언트를 인간 전용(no 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로 이메일을 보내거나 디렉토리가 있나요?에서 신청하세요.

참조 / 속도 제한

속도 제한

표준 키는 분당 10회 요청을 받습니다. 프리미엄 키는 60회. 모든 응답에 헤더가 포함됩니다.

제한은 IP가 아닌 API 키별로 적용됩니다 — REST와 MCP는 별도의 예산을 사용하므로 에이전트 폭주가 서버 측 스크립트를 굶기지 않습니다.

키REST / 분MCP / 분
표준 (대시보드의 aid_)1030
프리미엄 (유료 Catalog API 플랜, 관리자 승인 또는 발급된 파트너 키)60120

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잘못된 요청
401API 키 누락 또는 잘못됨
403키는 유효하지만 기능이 활성화되지 않음
404도구, 디렉토리 또는 대화를 찾을 수 없음
429속도 제한
500 / 503서버 또는 데이터베이스 문제 — 재시도

MCP는 JSON-RPC 오류를 사용합니다(-32601 메서드 없음, -32603 내부, 및 도구 isError 페이로드).