AutoAiSeo API ve MCP

AutoAiSeo verilerinizi kendi yazılımlarınızla (REST API) ya da Claude, ChatGPT, Cursor gibi yapay zekâ asistanlarıyla (MCP) kullanın. Her istek yalnızca kendi hesabınızın verisine erişir.

Başlarken

  1. Panelde API ve MCP sekmesini açın ve Yeni anahtar ile bir anahtar oluşturun. Anahtar (rk_live_…) yalnızca bir kez gösterilir.
  2. İsteklerde Authorization: Bearer başlığıyla gönderin.
curl -H "Authorization: Bearer rk_live_…" https://autoaiseo.example/api/v1/sites

Temel adres: https://autoaiseo.example/api/v1. Tüm yanıtlar JSON’dur; başarılı yanıtlar data alanında döner.

Kimlik doğrulama ve yetkiler

YetkiNe yapabilir
read (Okuma)Hesap, siteler, makaleler, anahtar kelimeler, backlink raporu, gelişim ve hizmet geçmişi.
read_write (Okuma ve yazma)Ayrıca makale fikri ekleme, makale yazdırma (aylık plan kotanızdan düşer) ve makale yayınlama.
  • Hesap başına en fazla 10 etkin anahtar. Anahtarlar süresiz ya da 30 gün, 90 gün, 1 yıl geçerli olabilir.
  • AutoAiSeo anahtarın kendisini saklamaz, yalnızca SHA-256 özetini ve görünen başını (rk_live_Ab3dEf) saklar. Kaybolan anahtar geri getirilemez; iptal edip yenisini oluşturun.
  • İptal edilen, süresi dolan ya da askıya alınmış hesaplara ait anahtarlar hemen çalışmaz hâle gelir.
  • Tarayıcı oturum çerezleri API’de geçerli değildir; her istekte anahtar gönderilmelidir.

Hız sınırı

Her anahtar (veya OAuth bağlantısı) için dakikada 60 istek. Yanıtlarda X-RateLimit-Limit ve X-RateLimit-Remaining başlıkları bulunur. Sınır aşılırsa 429 ve kaç saniye beklemeniz gerektiğini söyleyen Retry-After başlığı döner.

Hatalar

{ "error": { "code": "not_found", "message": "Site bulunamadı" } }
HTTPcodeAnlamı
400invalid_requestParametre veya gövde geçersiz.
401unauthorized, invalid_tokenAnahtar yok, geçersiz, iptal edilmiş ya da süresi dolmuş.
402quota_exceededBu ayki makale kotanız doldu.
403insufficient_scopeİşlem için “Okuma ve yazma” yetkisi gerekiyor.
403account_suspendedHesap askıya alınmış.
404not_foundKayıt yok ya da size ait değil.
409conflict, not_ready, limit_reachedMakale zaten yazılıyor/yayında, yayına hazır değil ya da bir sınıra ulaşıldı.
429rate_limitedHız sınırı aşıldı.
502publish_failedYayın hedefi (WordPress, Shopify…) yayını kabul etmedi.
500internal_errorBeklenmeyen sunucu hatası.

Sayfalama

Uzun listeler page ve per_page (en fazla 100–200) parametrelerini kabul eder ve şu bilgiyi döndürür:

"pagination": { "page": 1, "per_page": 50, "total": 132, "total_pages": 3 }

Uç noktalar

GET /api/v1/me

Hesap, plan limitleri, bu ayki kullanım, ekstra backlink hakkı ve kullanılan anahtarın yetkisi.

GET /api/v1/sites

Siteleriniz: id, alan adı, durum, SEO sağlık skoru, güven skoru, yayındaki makale, canlı backlink, referans domain, 30 günlük değişim ve sıradaki makale.

GET /api/v1/sites/{id}

Site özeti: profil, yayın ayarları, makale sayıları (duruma göre), backlink ağı özeti ve 30 günlük gelişim özeti.

GET /api/v1/sites/{id}/progress?range=90d

Gelişim raporu. range: 30d, 90d, 180d, 365d, all.

GET /api/v1/sites/{id}/articles

Makaleler (sayfalı). Parametreler: status (planned, generating, review, approved, published, failed), q (başlık/kelime araması), page, per_page.

GET /api/v1/articles/{id}

Makale: başlık, meta açıklama, puanlar (SEO, GEO, okunabilirlik), SSS, partner backlinkleri, gövdedeki linkler (iç/dış/partner) ve içerik. content: html (varsayılan), markdown ya da none.

GET /api/v1/sites/{id}/keywords

Anahtar kelimeler (sayfalı): küme, arama niyeti, öncelik ve kelimeyi hedefleyen makale (article_id, article_status). Parametreler: cluster, q, page, per_page.

GET /api/v1/sites/{id}/backlinks

Backlink raporu: kredi, canlı/bekleyen linkler, referans domainler, anchor dağılımı, alınan linkler (sayfalı) ve verilen son linkler.

GET /api/v1/sites/{id}/services

AutoAiSeo’nun site için yaptığı işler: toplamlar, son 12 ay ve geçmiş (sayfa başına 30). Parametreler: kind, q, page.

POST /api/v1/sites/{id}/articles read_write

İçerik planına makale fikri ekler (durum planned). Tarih verilmezse plandaki son makalenin ertesi gününe yerleşir; tarihi gelince AutoAiSeo yazar. Kota kullanmaz.

curl -X POST -H "Authorization: Bearer rk_live_…" -H "Content-Type: application/json" \
  -d '{"title":"Filtre kahve nasıl demlenir?","target_keyword":"filtre kahve demleme","angle":"Yeni başlayanlar için"}' \
  https://autoaiseo.example/api/v1/sites/12/articles

Gövde: title (zorunlu, 5–200), target_keyword, cluster, angle, scheduled_for (YYYY-MM-DD). Yanıt 201.

POST /api/v1/articles/{id}/generate read_write

Makaleyi arka planda yazdırır (202, durum generating). Panel ile aynı kurallar geçerlidir: aylık kotanızdan düşer (bu ay zaten yazılmış bir makaleyi yeniden yazmak ücretsizdir), yayındaki makale yeniden yazılamaz. Bitince durum review olur.

POST /api/v1/articles/{id}/publish read_write

Yazılmış makaleyi sitenin yayın hedefine (AutoAiSeo blog, WordPress, Shopify, Webflow, webhook) gönderir ve yayın adresini döndürür.

MCP sunucusu

Adres: https://autoaiseo.example/mcp — Streamable HTTP taşıma katmanı (JSON yanıtlar). Protokol sürümleri: 2026-07-28 ve el sıkışmalı eski sürümler (2025-11-25, 2025-06-18, 2025-03-26).

Kimlik doğrulama iki yoldan biriyle yapılır:

  • OAuth — Claude ve ChatGPT gibi bağlayıcılar adresi eklediğinizde AutoAiSeo giriş ve izin sayfasını açar; API anahtarı gerekmez. Bağlantıyı panelde Bağlı uygulamalardan kaldırabilirsiniz.
  • API anahtarı — Cursor, Claude Code, VS Code gibi istemcilerde Authorization: Bearer rk_live_… başlığıyla.

Claude

Ayarlar → Bağlayıcılar → Özel bağlayıcı ekle, URL olarak MCP adresini yapıştırın ve Bağlan’a basın.

ChatGPT

Ayarlar → Uygulamalar ve bağlayıcılar → Gelişmiş ayarlar’dan geliştirici modunu açın, Bağlayıcı oluştur ile MCP adresini ve OAuth kimlik doğrulamasını seçin.

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "autoaiseo": {
      "url": "https://autoaiseo.example/mcp",
      "headers": { "Authorization": "Bearer rk_live_…" }
    }
  }
}

Claude Code

claude mcp add --transport http autoaiseo https://autoaiseo.example/mcp --header "Authorization: Bearer rk_live_…"

MCP araçları

Araç sonuçları kısa bir metin özeti ve aynı verinin yapılandırılmış hâlini (structuredContent) içerir. Yazma araçları yalnızca yazma izni verildiğinde listelenir.

AraçNe yapar
list_sitesSiteler ve özet metrikler; diğer araçlar için site_id.
site_overviewSite profili, metrikler, makale sayıları, backlink ağı özeti.
site_progressBir dönemin gelişim raporu (başlangıç ve şimdi, kilometre taşları).
list_articlesMakaleler; durum ve metin filtresi, sayfalı.
get_articleMakale içeriği (markdown/HTML), puanlar, linkler, SSS.
list_keywordsAnahtar kelimeler ve kapsayan makaleler.
backlink_reportBacklink ağı raporu ve alınan linkler.
services_historyAutoAiSeo’nun yaptığı işlerin dökümü.
add_article_idea yazmaİçerik planına makale fikri ekler.
generate_article yazmaMakaleyi yazdırır (kotadan düşer).
publish_article yazmaMakaleyi yayınlar.

OAuth (MCP istemcisi geliştirenler için)

AutoAiSeo, MCP yetkilendirme belirtimine uygun küçük bir OAuth 2.1 yetkilendirme sunucusu içerir.

Korunan kaynak bilgisi/.well-known/oauth-protected-resource (ve /mcp ekli hâli)
Yetkilendirme sunucusu bilgisi/.well-known/oauth-authorization-server
İstemci kaydıClient ID Metadata Documents (https client_id) veya dinamik kayıt: POST /oauth/register (yalnızca açık istemciler, token_endpoint_auth_method: none)
YetkilendirmeGET /oauth/authorize — response_type=code, PKCE S256 zorunlu, resource (RFC 8707), yanıtta iss (RFC 9207)
AnahtarPOST /oauth/token — authorization_code ve refresh_token
İptalPOST /oauth/revoke (RFC 7009)
Kapsamlarread, write (yazma okumayı da kapsar). Kullanıcı izin ekranında düzeyi seçer.
  • Yönlendirme adresleri https veya localhost/127.0.0.1 olmalıdır; birebir eşleşir (loopback adreslerde port serbesttir).
  • Yetkilendirme kodu 2 dakika geçerlidir ve tek kullanımlıktır; ikinci kullanım o bağlantının tüm anahtarlarını iptal eder.
  • Erişim anahtarı 1 saat, yenileme anahtarı 30 gün geçerlidir. Yenileme anahtarları her kullanımda değişir; eski bir yenileme anahtarının tekrar kullanılması bağlantıyı kapatır.
  • Erişim anahtarları yalnızca MCP sunucusu için verilir; REST API kişisel API anahtarı ister.
  • Yetersiz kapsamda 403 ve WWW-Authenticate: Bearer error="insufficient_scope", scope="read write" döner.

Gizlilik

Panelde gördüğünüz API etkinlik kaydı yalnızca yöntem, yol, durum kodu, süre, anahtarın görünen başı (ya da OAuth uygulamasının adı) ve zamanı içerir. İstek ve yanıt içerikleri ile IP adresleri kaydedilmez; her hesap için son 1.000 istek tutulur.