AI Directories

resmi

AI Directories kataloğunda arama yapın, bir kaydı görüntüleyin ve gönderim dizinlerine göz atın

AI Directories MCP ile neler yapabilirsiniz?

  • AI araçlarını ara — search_tools ile anahtar kelime, kategori, etiket veya fiyata göre AI araçları bulmasını isteyin.
  • Araç detaylarını getir — get_tool ile herhangi bir aracın slug'ına göre ekran görüntüleri ve SSS'ler dahil tam genel listesini isteyin.
  • En iyi araçlara göz at — get_top_tools ile açılış sayısına göre en popüler AI araçlarını, isteğe bağlı olarak kategoriye göre filtreleyerek sorun.
  • Kategorileri ve etiketleri keşfet — Asistanın list_categories veya list_tags kullanarak tüm AI araç kategorilerini veya etiketlerini sayılarla listelemesini sağlayın.
  • Dizin gönderimlerini bulun — Gönderim hedeflerini belirlemek için search_directories ile dizinleri ad, maliyet veya kategoriye göre arayın.
  • Dizin profillerini alın — get_directory ile bir dizinin Domain Rating ve rozet gereksinimleri dahil tam profilini alın.

Dokümantasyon

Developers

Claude'da aç

API & MCP

Resmi AI Directories kataloğu — AI araçlarını ve gönderim dizinlerini curl veya bir ajanla arayın. Ücretsiz, belgelenmiş ve kazımadan (scraping) daha iyi.

RESTGET · Bearer aid_

www.aidirectori.es/api/v1

MCPStreamable HTTP

api/mcp

OpenAPImakine spesifikasyonu

openapi.json

AI Directories kataloğunda arama yapın, bir kaydı görüntüleyin ve gönderim dizinlerine göz atın — bir ajan veya curl ile. REST ve MCP aynı arka ucu paylaşır. Üçüncü taraf kazıyıcılar, genel sayfalarımızı sarar ve bir döküm için ücret alır. Bu resmi kaynaktır.

Örnek — 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"
  }
}

Neler yapabilirsiniz

  • AI araçlarını anahtar kelime, kategori, etiket veya fiyatlandırmaya göre arayın
  • Slug ile tek bir aracı getirin (tam genel kayıt)
  • Kategorileri ve etiketleri listeleyin
  • Gönderim dizinlerini arayın (DR, maliyet, rozet)
  • aid_ anahtarınızla tek bir dizin profilini getirin

Neler yapamazsınız

  • Kurucu e-postalarını veya özel analizleri okuyun
  • HTML sitesini kazıyın veya bir tarayıcı gibi davranın
  • Kataloğu rakip bir dizin olarak yeniden yayınlayın
  • Verilmiş bir anahtar olmadan ortak yazma API'lerini çağırın

Bu neden var

İnsanlar aidirectori.es adresini kazıyıp dışa aktarımı satıyorlardı. Resmi API, ürünler, araştırmalar ve ajanlar için ücretsizdir — atıf, hız sınırları ve bir lisansla: tam kataloğu rakip bir dizin veya ücretli kazıma olarak yeniden yayınlayamazsınız.

Bir ajana ekleyin

Cursor: .cursor/mcp.json veya ~/.cursor/mcp.json. Authorization: sonrasında boşluk yok — mcp-remote boşluklara göre böler. MCP Kurulumu bölümüne bakın.

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

Ayrıca makine tarafından okunabilir

Başlayın / Hızlı başlangıç

Hızlı başlangıç

Bir aid_ anahtarı oluşturun, ardından araçları arayın, bir kaydı getirin ve dizinleri arayın.

Geliştirici panelinde bir anahtar oluşturun, ardından bunları kopyalayın.

1. AI araçlarını arayın

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

2. Bir kaydı getirin

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

3. Dizinleri arayın

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

MCP üzerinden aynı işlemler: sunucuyu aynı Bearer token ile ekleyin, ardından search_tools, get_tool ve search_directories çağırın. MCP kurulumuna bakın.

Başlayın / Kimlik doğrulama

Kimlik doğrulama

API anahtarı ile Bearer token. Geliştirici panelinizden anahtarlar oluşturun. Standart 10/dk, premium 60/dk.

Kimlik doğrulama

API anahtarı ile Bearer token. Geliştirici panelinizden anahtarlar oluşturun.

Hız sınırları

Standart anahtarlar dakikada 10 istek alır. Premium anahtarlar 60 alır. Geliştirici panelinizden yükseltin. Hız sınırı başlıkları her yanıtta bulunur.

Temel URL

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

  1. 1 API anahtarınızı alın

    Geliştirici paneline gidin ve bir API anahtarı oluşturun. Anahtarlar aid_ ile başlar. Güvenli bir yerde saklayın — tam anahtarı bir daha göremezsiniz. Kabul edilebilir kullanım zorunludur Anahtar oluşturmak, API Kabul Edilebilir Kullanım Politikasını kabul etmeyi gerektirir. İşletmeleri klonlamak, AI Directories'i yeniden oluşturmak, toplu yeniden yayınlama, yetkisiz genel SEO sayfaları, kötüye kullanım hedefleme, kimlik bilgisi paylaşımı ve erişim kontrolünü atlatma yasaktır ve kalıcı platform yasağıyla sonuçlanabilir.
  2. 2 İlk isteğinizi yapın

    Anahtarınızı Authorization başlığında bir Bearer token olarak iletin. X-API-Key de her uç noktada kabul edilir. İkisi birbirinin yerine geçebilir — bir anahtarın erişebildikleri, anahtara bağlıdır, geldiği başlığa değil. Bir panel aid_ anahtarı, X-API-Key olarak gönderildiğinde ortak uç noktalarda yine 403 alır; 403 görüyorsanız, farklı bir başlığa değil, farklı bir anahtara ihtiyacınız var.
    curl -s "https://www.aidirectori.es/api/v1/tools?q=ai&limit=5" \
      -H "Authorization: Bearer aid_your_api_key"
    
  3. 3 Yanıtı ayrıştırın

    Başarılı okumalar { success: true, data } döndürür. Liste uç noktaları ayrıca pagination içerir — alanları ve limit kırpma kuralları, bir sayfalama döngüsü yazmadan önce okumaya değer. X-RateLimit-Remaining izleyin.
    {
      "success": true,
      "data": [
        {
          "slug": "transclipper",
          "name": "TransClipper",
          "website": "https://transclipper.ai"
        }
      ]
    }
    

Ortak anahtarları

Gönderim hizmeti için bize araç gönderen dizin ortakları, POST /submit-ai-tool, durum, webhook'lar ve destek için verilmiş bir anahtar kullanır. Bu anahtarlar katalog okumalarında da çalışır. Bir dizininiz mi var? bölümüne bakın.

MCP / Kurulum

MCP Kurulumu

Barındırılan Streamable HTTP MCP — REST ile aynı Bearer anahtarını gönderin.

Sunucu, Streamable HTTP üzerinden Model Context Protocol konuşur. Barındırılır. Her araç, REST API ile aynı işlevleri sarar. Geliştirici panelinizden Authorization: Bearer aid_… gönderin.

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

Proje kapsamı: .cursor/mcp.json. Global: ~/.cursor/mcp.json. Claude Desktop: claude_desktop_config.json (yalnızca stdio — bu aynı blok).

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

Authorization: sonrasında boşluk yok — mcp-remote argümanları boşluklara göre böler, bu yüzden "Authorization: Bearer …" başlığı bozar. Dosyayı düzenledikten sonra istemciyi tamamen yeniden başlatın.

Sunucuyu ekledikten sonra, ajandan araçları listelemesini isteyin. search_tools, get_top_tools, get_tool, list_categories, list_tags, search_directories, get_directory ve list_directory_categories görmelisiniz.

Doğrulama

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 / Araçlar

MCP araçları

Her MCP aracı, REST kataloğu üzerinde ince bir sarmalayıcıdır.

Kimlik doğrulama, REST ile aynı Bearer aid_ anahtarıdır.

AraçRESTGirdi
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—

Tam alan notları AI araçları ve Dizinler altındadır.

REST API / Genel Bakış

REST API

Betikler, CI ve ortak entegrasyonları için düz HTTP. MCP sunucusu bu aynı yolları çağırır — bu yüzden bir sonuç, hangi taşımanın istediğine asla bağlı değildir.

İşlemYöntemYolKimlik DoğrulamaGirdi
search_tools İsteğe bağlı kategori, etiket, fiyatlandırma ve öne çıkan filtreleriyle anahtar kelime araması.GET/toolsBearerq, category, tag, pricing, featured, includeAdult, page, limit
get_top_tools Açılışlara göre ilk N kayıt — anahtar kelime gerekmez.GET/tools/topBearerlimit, category, includeAdult
list_categories Araç sayılarıyla AI araç kategorileri — aramayı filtrelemeden önce kullanın.GET/categoriesBearerq, limit
list_tags Araç sayılarıyla AI araç etiketleri.GET/tagsBearerq, limit
get_tool Tek bir AI aracı için tam genel kayıt.GET/tools/{slug}Bearerslug
search_directories Gönderim dizinlerini ada, kategoriye veya maliyete göre arayın.GET/directoriesBearerq, category, cost, featured, page, limit
get_directory Tek bir dizin için tam genel profil.GET/directories/{slug}Bearerslug
list_directory_categories Filtre keşfi için dizin kategori etiketleri.GET/directory-categoriesBearer—
submit_ai_tool Bir AI araç kaydı oluşturun (ve isteğe bağlı olarak dizin gönderimlerini kuyruğa alın).POST/submit-ai-toolX-API-Keyname, website, tagline, description, category, pricing, founderName, founderEmail, tags, paymentType, …
get_tool_status Anahtarınızın gönderdiği bir araç için dizin gönderim ilerlemesini yoklayın.GET/ai-tools/statusX-API-Keyid | slug | website

Keşif GET / adresinde ve OpenAPI belgesi GET /openapi.json adresindedir. Katalog yanıtları için alan notları AI araçları ve Dizinler üzerindedir.

Zarf, sayfalama ve limitler

Her yanıt aynı zarftır. data, aramalarda bir dizi ve tek öğe aramalarında bir nesnedir. data okumadan önce success kontrol edin.

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

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

GET /tools ve GET /directories bir pagination nesnesi döndürür. Taksonomi uç noktaları — /categories, /tags, /directory-categories — tüm listeyi döndürür ve hiç pagination anahtarı içermez.

pageAldığınız sayfa, 1 tabanlı
limitGerçekte uygulanan sayfa başına öğe
totalTüm sayfalardaki eşleşen öğeler
pagesceil(total / limit) veya hiçbir şey eşleşmediğinde 0

Aşırı büyük bir limit reddedilmez, kırpılır. Maksimumdan fazlasını isteyin ve maksimumu alırsınız, bir 200 ile — bunun olduğunu söyleyen bir hata yoktur. /tools ve /directories varsayılan olarak 20'dir ve 100'de sınırlanır; /categories ve /tags 500'de sınırlanır. Eksik, sıfır, negatif veya sayısal olmayan bir limit varsayılana geri döner ve page 1'de tabanlanır. Bu yüzden istediğiniz sayfa boyutunu aldığınızı varsaymak yerine pagination.limit yanıttan geri okuyun — bu varsayım, bir sayfalama döngüsünü sonsuz bir döngüye dönüştüren şeydir.

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 araçları

Canlı kataloğa göz atın, arayın ve filtreleyin veya slug ile tek bir kaydı getirin. MCP search_tools, get_top_tools, get_tool, list_categories ve list_tags eşlenir.

list_categories

Araç sayılarıyla AI araç kategorileri — aramayı filtrelemeden önce kullanın.

RESTGET /categories
MCPtools/call → list_categories
Kimlik DoğrulamaBearer
Girdiq, limit
curl -s "https://www.aidirectori.es/api/v1/categories" \
  -H "Authorization: Bearer aid_your_api_key"

get_top_tools

Açılışlara göre ilk N kayıt — anahtar kelime gerekmez.

RESTGET /tools/top
MCPtools/call → get_top_tools
Kimlik DoğrulamaBearer
Girdilimit, 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

İsteğe bağlı kategori, etiket, fiyatlandırma ve öne çıkan filtreleriyle anahtar kelime araması.

RESTGET /tools
MCPtools/call → search_tools
Kimlik DoğrulamaBearer
Girdiq, 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

Tek bir AI aracı için tam genel kayıt.

RESTGET /tools/{slug}
MCPtools/call → get_tool
Kimlik DoğrulamaBearer
Girdislug
curl -s "https://www.aidirectori.es/api/v1/tools/transclipper" \
  -H "Authorization: Bearer aid_your_api_key"

list_tags

Araç sayılarıyla AI araç etiketleri.

RESTGET /tags
MCPtools/call → list_tags
Kimlik DoğrulamaBearer
Girdiq, limit
curl -s "https://www.aidirectori.es/api/v1/tags" \
  -H "Authorization: Bearer aid_your_api_key"

Dizinler

Gönderim dizini kataloğu — Domain Rating, maliyet, rozet ve kategoriler. MCP search_directories, get_directory ve list_directory_categories eşlenir.

search_directories

Gönderim dizinlerini ada, kategoriye veya maliyete göre arayın.

RESTGET /directories
MCPtools/call → search_directories
Kimlik DoğrulamaBearer
Girdiq, 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

Tek bir dizin için tam genel profil.

RESTGET /directories/{slug}
MCPtools/call → get_directory
Kimlik DoğrulamaBearer
Girdislug
curl -s "https://www.aidirectori.es/api/v1/directories/theres-an-ai-for-that" \
  -H "Authorization: Bearer aid_your_api_key"

list_directory_categories

Filtre keşfi için dizin kategori etiketleri.

RESTGET /directory-categories
MCPtools/call → list_directory_categories
Kimlik DoğrulamaBearer
Girdi—
curl -s "https://www.aidirectori.es/api/v1/directory-categories" \
  -H "Authorization: Bearer aid_your_api_key"

Ortak

Yazma ve durum uç noktaları verilmiş bir X-API-Key gerektirir. Sunucunuzda saklayın. MCP bunları çağırmaz. Tam alan listeleri Gönderim ve ortaklar altındadır.

submit_ai_tool

Bir AI araç kaydı oluşturun (ve isteğe bağlı olarak dizin gönderimlerini kuyruğa alın).

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

Anahtarınızla gönderdiğiniz bir araç için dizin gönderim ilerlemesini sorgulayın.

RESTGET /ai-tools/status
MCP—
AuthX-API-Key
Girdiid | 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 araçları

AI araçları

Yayınlanmış AI araç listelerine göz atın, arayın ve getirin.

search_tools

Kategori, etiket, fiyatlandırma ve öne çıkan filtreleriyle anahtar kelime araması.

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

Her öğe name, slug, liste URL'si, website, tagline, description, category, tags, pricing, rating, opens, icon ve zaman damgalarını içerir. Kurucu e-postası yoktur.

Yetişkin listeleri varsayılan olarak hariç tutulur. search_tools ve get_top_tools, siz istemedikçe yetişkin listelerini geri tutar.

Hariç tutma kategori ve etikete göredir, çünkü yetişkin araçları genellikle genel bir kategori altında dosyalanır — image, writing, video — kendilerini doğru şekilde etiketlerken. Yani category=image, soyunma uygulamaları olmadan görüntü araçlarını döndürür.

Katılım için üç yol: includeAdult=true, category=nsfw veya tag=ai-undressing gibi bir yetişkin etiketi adlandırma. Hiçbir şey gizli veya erişilemez değildir — sadece istemediğinizde alamayacağınız şeydir.

get_top_tools

En çok açılan yayınlanmış araçlar. İsteğe bağlı kategori slug'ı.

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

get_tool

Tam genel liste: ekran görüntüleri, SSS'ler, sosyal medya, özellikler.

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"

Kategoriler slug, name, description, icon, toolsCount döndürür. Etiketler slug, name, toolsCount döndürür. Hiçbiri sayfalanmaz — tüm listeyi alırsınız, bu yüzden önbelleğe alın ve yerel olarak filtreleyin.

Araç alanları

/tools, /tools/top ve /tools/{slug} tarafından aynı şekilde döndürülür:

AlanTürNotlar
idstringKararlı tanımlayıcı
slugstring/tools/{slug} için bunu kullanın
name, tagline, descriptionstring
urlstringaidirectori.es üzerindeki liste
websitestringÜrünün kendi sitesi
categoryobject{ slug, name } veya null
tagsarray[{ slug, name }]
pricingstringFREE | FREEMIUM | PAID
ratingnumberDerecelendirilmediğinde 0
opensnumberTıklama sayısı; /tools/top buna göre sıralar
featuredboolean
icon, framestringGörsel URL'leri, null olabilir
founderName, locationstringNull olabilir. Kurucu e-postası asla yok
domainRatingnumberNull olabilir
isForSale, askingPriceboolean, numberSatın alma için işaretlenmiş listeler
discountCode, affiliatestring, boolean
createdAt, updatedAtstringISO 8601, null olabilir

GET /tools/{slug}, screenshots (URL dizisi), video, socials, faqs, features ve affiliateLink ekler. Bu altı alan yalnızca tek araç uç noktasındadır — bir aramadan bunları beklemeyin.

Herhangi bir alan, bir liste doldurmadığında null olabilir. Savunmacı kod yazın.

REST API / Dizinler

Dizinler

Kataloğun diğer yarısı — DR ve fiyatlandırmayla birlikte startup ve SaaS gönderim dizinleri.

Kazıyıcılar genellikle bunu kaçırır. Ürünleri gerçekten gönderdiğimiz liste budur.

search_directories

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

Alanlar name, liste URL'si, website, Domain Rating, aylık ziyaretler, bağlantı türü, rozet gereksinimi, minimum fiyat ve kategorileri içerir.

get_directory

Açıklama, SSS, gönderim bağlantısı ve anlaşma metni ekler.

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"

Yalnızca slug ve name döndürür. Sayfalanmaz. Bunlar ?category='in kabul ettiği değerlerdir — tahmin etmek yerine okuyun.

Dizin alanları

AlanTürNotlar
id, slug, namestring
urlstringaidirectori.es üzerindeki profil
websitestringDizinin kendi sitesi
iconstringNull olabilir
coststringFree | Paid | Freemium
typestringBağlantı türü
domainRatingnumberNull olabilir — çoğu insanın sıraladığı sayı
monthlyVisitsnumberNull olabilir
requiresBadgebooleanGeri bağlantı rozeti talep edip etmedikleri
minimumPricenumberÜcretsizken 0
submissionExperiencestringNull olabilir
featuredboolean
categoriesarray[{ slug, name }]
smallDescriptionstringNull olabilir
createdAt, updatedAtstringISO 8601

GET /directories/{slug}, fullDescription, features, useCases, faq, deal ({ text, code } veya null), frame ve socials ekler.

İki url alanına dikkat edin: url bizim profil sayfamız, website dizinin kendisidir. Doğrudan gönderim formu URL'leri (submissionLink) katalog API'sinde veya MCP'de değildir — bunlar sitedeki ve panodaki ücretli liste ürününün parçasıdır.

Gönderim hedeflerini seçme

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'

Ücretsiz, rozet gerektirmez, en güçlü alan adları önce.

REST API / Gönder ve ortaklar

Gönder ve ortaklar

Araç gönderme, durum yoklama, webhook'lar ve destek için API anahtarı uç noktaları.

Bunlar anonim değildir. Ortak başına bir anahtar veririz. MCP bunları çağırmaz.

Bir araç gönder

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

Bir liste oluşturur. Dizin gönderimlerini bu paket için kuyruğa almak üzere paymentType gönderin. Bunu atlarsanız, araç paket daha sonra yöneticide ayarlanabilmesi için bekliyor olarak oluşturulur.

Zorunlu

9

Bunlardan herhangi birinin eksik olması 400 döndürür.

AlanTürNotlar

  • name string Maks 100 karakter.
  • website url Ürünün genel URL'si.
  • tagline string Maks 200 karakter.
  • description string Ürünün ne yaptığı.
  • category string Slug veya ad. Mevcut bir kategoriye eşleriz.
  • pricing enum FREE PAID FREEMIUM Ürünün kendi fiyatlandırması — dizin paketi değil.
  • founderName string Bunu POST'tan önce siz toplarsınız.
  • founderEmail email Bunu siz toplarsınız. Genel katalog okumalarında asla döndürülmez. Tarayıcıdan göndermeyin.
  • tags string[] Slug'lar veya adlar.

Önerilen

5

Bunlar olmadan istek başarılı olur — bir slug oluştururuz, icon/og:image getiririz ve paketi bekliyor olarak bırakırız. Elinizdeyken gönderin.

AlanTürNotlar

  • paymentType enum starter pro premium Dizin paketi: 30+, 60+ veya 100+ gönderim. Müşteri zaten bir paket seçtiyse bunu gönderin. Yalnızca aracın bekliyor olarak oluşturulmasını ve yöneticinin daha sonra ayarlamasını istiyorsanız atlayın.
  • slug string Genel URL slug'ı. Atlanırsa addan (ve benzersizleştirilerek) oluşturulur — zaten kararlı bir slug'ınız varsa gönderin.
  • icon url Kare logo. Atlanırsa site favicon'unu getiririz — daha iyi bir liste için kendinizinkini gönderin.
  • frame url Ana ekran görüntüsü. Atlanırsa og:image getiririz — bir ürün çekiminiz varsa gönderin.
  • screenshots url[] Galeri görselleri, Cloudflare'e yansıtılır. Zorunlu değil; bu boşsa çerçeve kahramanı kapsar.

İsteğe bağlı

11

Genel URL'lerdeki görseller Cloudflare'e yansıtılır.

AlanTürNotlar

  • video url YouTube veya Vimeo.
  • socials object URL'lere anahtarlar, örn. { "twitter": "https://x.com/…" }.
  • features object String haritası, örn. { "Templates": "50+" }. Atlanırsa oluşturulur.
  • faq array Atlanırsa siteden kazınır veya oluşturulur.
  • affiliate string Ortaklık programı metni.
  • affiliateLink url
  • discountCode string Listede gösterilen promosyon kodu.
  • location string Şirketin merkezinin bulunduğu yer.
  • foundingDate string Kuruluş tarihi, serbest biçim.
  • isCustomer boolean Zaten müşteri olup olmadıkları.
  • isLaunched boolean Ürünün canlı olup olmadığı.
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"]
  }'

Gönderim durumunu yokla

GET https://www.aidirectori.es/api/v1/ai-tools/status — anahtarınızın gönderdiği bir aracı id, slug veya website'den tam olarak biriyle arayın. Diğer istemcilerin araçları 404 döndürür.

Bunu her zaman kullanın — yalnızca bir webhook tetiklendiğinde değil. summary.isComplete false iken yoklayın, sonra durun (veya Done'u bekleyin). Dizin iş akışı olmadığında submissionState IN_QUEUE, ASSIGNED, IN_PROGRESS, REVIEW, DONE veya null'dir.

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

Webhook

API istemcinizde saklanan bir HTTPS URL'sine JSON POST ederiz — her gönderimde gönderilmez. Başvururken URL'yi bize verin; bunu webhookUrl olarak saklarız ve size bir imzalama sırrı göndeririz. Hem dizin Done hem de destek yanıtları aynı uç noktaya ulaşır.

Dizin olayı, bir yönetici anahtarınızın gönderdiği bir araçta Done seçtiğinde ve webhookUrl ayarlandığında tetiklenir. URL eksik: hiçbir şey göndermeyiz. Uç noktanız kapalı veya 2xx değil: araç yine de Done olarak işaretlenir. Henüz yeniden denemiyoruz — bir yedekleme gerekiyorsa durumu yoklayın.

Olaylar

2

Gövdeyi ayrıştırmadan önce X-AI-Directories-Event'i okuyun.

AlanTürNotlar

  • directory_submissions.completed Done Yönetici, anahtarınızın gönderdiği bir araç için dizin çalışmasını Done olarak işaretledi. Yük { event, occurredAt, tool, summary, submissions } şeklindedir.
  • support.replied reply Bir destek yanıtı hazır (AI veya insan). Yük { event, occurredAt, conversation } şeklindedir. Yalnızca destek etkinse.

İstek

YöntemPOST
Content-Typeapplication/json
AuthHMAC başlığı — API anahtarınız değil

Başlıklar

3

AlanTürNotlar

  • X-AI-Directories-Event string Hangi yükü aldığınız. Buna göre dallanın — aynı URL her iki olayı da alır.
  • X-AI-Directories-Signature string sha256=<hex> İmzalama sırrınızla ham gövdenin HMAC'i. Bir sır verdiğimizde mevcuttur.
  • User-Agent string AI-Directories-Webhook/1.0

İmzayı doğrulayın

Size verdiğimiz sırla ham istek gövdesi üzerinde HMAC-SHA256. Onaltılık özeti, sha256= önekini çıkardıktan sonra X-AI-Directories-Signature ile karşılaştırın. Zamanlama açısından güvenli bir karşılaştırma kullanın.

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

Yük

submissions yalnızca gerçekten gönderdiğimiz dizinleri içerir. Her satır canlı listingUrl, kanıt ekran görüntüsü, alan adı derecelendirmesi ve kimin gönderdiğini (ADMIN veya OWNER) içerebilir. Onaylamak için 2xx döndürün.

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

Müşteri desteği

Ürün UI'nizden bir soru iletin; mümkün olduğunda bilgi tabanınızdan yanıtlarız veya bir insan panomuzda yanıtlar. Varsayılan olarak kapalıdır — etkinleştirene kadar POST /support/ask 403 döndürür. Gönderimle aynı X-API-Key. MCP bunu çağıramaz.

Varsayılan mod hibrittir: AI mümkün olduğunda yanıtlar, aksi takdirde konuşma bir insan için pending kalır. İstemciyi yalnızca insan moduna (AI yok) ayarlayabiliriz. Ürün bilgisi olmadan sorular bir kişiyi bekler.

Bir soru gönder

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

Gövde

5 question zorunludur. Bir konuşmayı sürdürmek için conversationId veya externalId'yi yeniden kullanın. Yalnızca insan kullanıcılar, idempotent yeniden denemeler için metadata.peerPushMessageId gönderebilir.

FieldTypeNotes

  • question string Müşterinin sorusu. En fazla 4000 karakter. message de kabul edilir.
  • conversationId string Daha önce döndürdüğümüz bir konuşmayı sürdürün.
  • externalId string Sizin bilet veya konuşma kimliğiniz. Yeniden kullanmak aynı konuşmayı sürdürür.
  • customer object Son müşteri için isteğe bağlı { name, email, id } — submit'teki kurucu değil.
  • metadata object Konuşmada saklanan rastgele 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" }
  }'

Hibrit/AI: 200 ile status: "answered", reply'in hazır olduğu anlamına gelir (replySource, ai veya human'dir). pending, webhook'u yoklama veya bekleme anlamına gelir.

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

Yalnızca insan kullanıcılar ince bir zarf alır — geçmiş, customer veya messages[] yoktur. message, bir insan yanıtlayana kadar null'tür, ardından tek bir aracı mesajı gelir.

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

Bir konuşmayı yoklayın

GET https://www.aidirectori.es/api/v1/support/conversations/:id — veya ?id=, ?externalId= veya ?status=pending ile listeleyin. Bekleme sırasında önerilen aralık: 5–15 saniye. Hibrit liste sonuçları tam messages dizisini atlar; yalnızca insan kullanıcılar ask ile aynı ince şekli döndürür.

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

Bir yanıt hazır olduğunda webhook

webhookUrl ayarlanmışsa, support.replied göndeririz — dizin Done ile aynı HMAC. Hibrit/AI yükü reply / replySource kullanır. Yalnızca insan kullanıcılar, conversation.message ve role: "agent" ile tekil bir source: "human" kullanır.

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

Anahtar, webhook URL'si, imzalama sırrı veya destek erişimi için support@thedirectori.es adresine e-posta gönderin — veya Bir dizininiz mi var? adresinden başvurun.

Referans / Hız sınırları

Hız sınırları

Standart anahtarlar dakikada 10 istek alır. Premium anahtarlar 60 alır. Her yanıtta başlıklar bulunur.

Sınırlar IP başına değil, API anahtarı başınadır — ve REST ile MCP ayrı bütçelerden yararlanır, bu nedenle bir aracı patlaması sunucu tarafı betiklerinizi aç bırakamaz.

AnahtarREST / dakikaMCP / dakika
Standart (panelden aid_)1030
Premium (ücretli Catalog API planı, yönetici izni veya verilen ortak anahtarı)60120

MCP bütçesi daha büyüktür çünkü aracılar yayılır: bir kullanıcıdan gelen tek bir soru rutin olarak birkaç paralel araç çağrısına dönüşür.

El sıkışma ücretsizdir

initialize, notifications/initialized, ping ve tools/list hiçbir maliyet getirmez. Bir istemci bağlamak veya yeniden başlatmak kotanızı harcamaz — yalnızca tools/call harcar. Hatalı biçimlendirilmiş bir istek gövdesi de ücretlendirilmez.

Her yanıt X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset içerir. 429 ayrıca Retry-After gönderir.

Geliştirici panelinizden yükseltin ($9/ay). Kataloğu boşaltmak için arama motoru veya asistan tarayıcılarını taklit etmeyin.

Daha yüksek bir sınıra mı ihtiyacınız var? support@thedirectori.es adresine e-posta gönderin.

Ortak submit/destek anahtarlarının kendi yazma sınırları vardır; okurken premium katalog bütçesini kullanırlar.

Referans / Hatalar

Hatalar

JSON hata şekli ve HTTP durum kodları.

{ "success": false, "error": "Tool not found." }
HTTPAnlam
400Hatalı istek
401Eksik veya geçersiz API anahtarı
403Anahtar geçerli ancak özellik etkin değil
404Araç, dizin veya konuşma bulunamadı
429Hız sınırı
500 / 503Sunucu veya veritabanı sorunu — yeniden deneyin

MCP, JSON-RPC hatalarını kullanır (-32601 yöntem bulunamadı, -32603 dahili ve araç isError yükleri).