AutoAiSeo API und MCP

Nutzen Sie Ihre AutoAiSeo-Daten mit Ihrer eigenen Software (REST API) oder mit KI-Assistenten wie Claude, ChatGPT und Cursor (MCP). Jede Anfrage greift nur auf die Daten Ihres eigenen Kontos zu.

Erste Schritte

  1. Öffnen Sie im Panel den Tab API und MCP und erstellen Sie mit Neuer Schlüssel einen Schlüssel. Der Schlüssel (rk_live_…) wird nur einmal angezeigt.
  2. Senden Sie ihn bei Anfragen im Header Authorization: Bearer mit.
curl -H "Authorization: Bearer rk_live_…" https://autoaiseo.example/api/v1/sites

Basisadresse: https://autoaiseo.example/api/v1. Alle Antworten sind JSON; bei Erfolg wird das Ergebnis im Feld data zurückgegeben.

Authentifizierung und Berechtigungen

BerechtigungMöglichkeiten
read (Lesen)Konto, Websites, Artikel, Keywords, Backlink-Bericht, Entwicklung und Leistungsverlauf.
read_write (Lesen und Schreiben)Zusätzlich Artikelideen hinzufügen, Artikel schreiben lassen (wird vom monatlichen Tarifkontingent abgezogen) und Artikel veröffentlichen.
  • Höchstens 10 aktive Schlüssel pro Konto. Schlüssel können unbegrenzt oder 30 Tage, 90 Tage bzw. 1 Jahr gültig sein.
  • AutoAiSeo speichert nicht den Schlüssel selbst, sondern nur seinen SHA-256-Hash und das sichtbare Präfix (rk_live_Ab3dEf). Ein verlorener Schlüssel lässt sich nicht wiederherstellen; widerrufen Sie ihn und erstellen Sie einen neuen.
  • Widerrufene oder abgelaufene Schlüssel sowie Schlüssel gesperrter Konten funktionieren sofort nicht mehr.
  • Browser-Sitzungscookies gelten in der API nicht; der Schlüssel muss bei jeder Anfrage gesendet werden.

Rate Limit

60 Anfragen pro Minute je Schlüssel (oder OAuth-Verbindung). Antworten enthalten X-RateLimit-Limit und X-RateLimit-Remaining als Header. Bei Überschreitung des Limits werden 429 und der Header Retry-After zurückgegeben, der angibt, wie viele Sekunden Sie warten müssen.

Fehler

{ "error": { "code": "not_found", "message": "Site bulunamadı" } }
HTTPcodeBedeutung
400invalid_requestParameter oder Body ungültig.
401unauthorized, invalid_tokenSchlüssel fehlt, ist ungültig, widerrufen oder abgelaufen.
402quota_exceededIhr Artikelkontingent für diesen Monat ist ausgeschöpft.
403insufficient_scopeFür die Aktion ist die Berechtigung „Lesen und Schreiben“ erforderlich.
403account_suspendedKonto gesperrt.
404not_foundEintrag existiert nicht oder gehört nicht Ihnen.
409conflict, not_ready, limit_reachedDer Artikel wird bereits geschrieben oder ist online, ist nicht veröffentlichungsbereit, oder ein Limit wurde erreicht.
429rate_limitedRate Limit überschritten.
502publish_failedDas Veröffentlichungsziel (WordPress, Shopify…) hat die Veröffentlichung nicht angenommen.
500internal_errorUnerwarteter Serverfehler.

Seitennavigation

Lange Listen akzeptieren die Parameter page und per_page (maximal 100–200) und liefern folgende Angaben zurück:

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

Endpunkte

GET /api/v1/me

Konto, Tariflimits, Nutzung in diesem Monat, zusätzliche Backlinks und die Berechtigung des verwendeten Schlüssels.

GET /api/v1/sites

Ihre Websites: id, Domain, Status, SEO-Health-Score, Trust-Score, veröffentlichte Artikel, Live-Backlinks, verweisende Domains, Veränderung in 30 Tagen und nächster Artikel.

GET /api/v1/sites/{id}

Website-Übersicht: Profil, Veröffentlichungseinstellungen, Artikelanzahl (nach Status), Übersicht zum Backlink-Netzwerk und Entwicklung der letzten 30 Tage.

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

Entwicklungsbericht. range: 30d, 90d, 180d, 365d, all.

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

Artikel (paginiert). Parameter: status (planned, generating, review, approved, published, failed), q (Suche nach Titel/Keyword), page, per_page.

GET /api/v1/articles/{id}

Artikel: Titel, Meta-Beschreibung, Scores (SEO, GEO, Lesbarkeit), FAQ, Partner-Backlinks, Links im Text (intern/extern/Partner) und Inhalt. content: html (Standard), markdown oder none.

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

Keywords (paginiert): Cluster, Suchintention, Priorität und der Artikel, der das Keyword abdeckt (article_id, article_status). Parameter: cluster, q, page, per_page.

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

Backlink-Bericht: Credits, Live-/ausstehende Links, verweisende Domains, Anchor-Verteilung, erhaltene Links (paginiert) und zuletzt gesetzte Links.

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

Was AutoAiSeo für die Website erledigt hat: Summen, letzte 12 Monate und Verlauf (30 pro Seite). Parameter: kind, q, page.

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

Fügt dem Content-Plan eine Artikelidee hinzu (Status planned). Ohne Datum wird die Idee auf den Tag nach dem letzten Artikel im Plan gesetzt; an diesem Tag schreibt AutoAiSeo den Artikel. Verbraucht kein Kontingent.

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

Request-Body: title (Pflichtfeld, 5–200), target_keyword, cluster, angle, scheduled_for (YYYY-MM-DD). Antwort: 201.

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

Lässt den Artikel im Hintergrund schreiben (202, Status generating). Es gelten dieselben Regeln wie im Panel: Der Artikel wird von Ihrem Monatskontingent abgezogen (einen in diesem Monat bereits geschriebenen Artikel neu zu schreiben ist kostenlos), veröffentlichte Artikel können nicht neu geschrieben werden. Danach wechselt der Status zu review olur.

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

Sendet den geschriebenen Artikel an das Veröffentlichungsziel der Website (AutoAiSeo-Blog, WordPress, Shopify, Webflow, Webhook) und gibt die Veröffentlichungsadresse zurück.

MCP-Server

Adresse: https://autoaiseo.example/mcp — Transport über Streamable HTTP (JSON-Antworten). Protokollversionen: 2026-07-28 sowie ältere Versionen mit Handshake (2025-11-25, 2025-06-18, 2025-03-26).

Die Authentifizierung erfolgt auf einem von zwei Wegen:

  • OAuth — Konnektoren wie Claude und ChatGPT öffnen beim Hinzufügen der Adresse die Anmelde- und Zustimmungsseite von AutoAiSeo; ein API-Schlüssel ist nicht nötig. Die Verbindung können Sie im Panel unter Verbundene Apps entfernen.
  • API-Schlüssel — in Clients wie Cursor, Claude Code oder VS Code mit Authorization: Bearer rk_live_… als Header.

Claude

Einstellungen → Konnektoren → Benutzerdefinierten Konnektor hinzufügen, fügen Sie die MCP-Adresse als URL ein und klicken Sie auf Verbinden.

ChatGPT

Einstellungen → Apps und Konnektoren → Erweiterte Einstellungen: Aktivieren Sie dort den Entwicklermodus und wählen Sie unter Konnektor erstellen die MCP-Adresse und die OAuth-Authentifizierung.

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-Tools

Tool-Ergebnisse enthalten eine kurze Textzusammenfassung und dieselben Daten in strukturierter Form (structuredContent). Schreib-Tools werden nur aufgelistet, wenn eine Schreibberechtigung erteilt wurde.

ToolFunktion
list_sitesWebsites und Kennzahlen im Überblick; für andere Tools: site_id.
site_overviewWebsite-Profil, Kennzahlen, Artikelanzahl, Übersicht zum Backlink-Netzwerk.
site_progressEntwicklungsbericht für einen Zeitraum (Start und jetzt, Meilensteine).
list_articlesArtikel; Filter nach Status und Text, paginiert.
get_articleArtikelinhalt (Markdown/HTML), Scores, Links, FAQ.
list_keywordsKeywords und die abdeckenden Artikel.
backlink_reportBericht zum Backlink-Netzwerk und erhaltene Links.
services_historyAufstellung der von AutoAiSeo erledigten Arbeit.
add_article_idea yazmaFügt dem Content-Plan eine Artikelidee hinzu.
generate_article yazmaLässt den Artikel schreiben (wird vom Kontingent abgezogen).
publish_article yazmaVeröffentlicht den Artikel.

OAuth (für Entwickler von MCP-Clients)

AutoAiSeo enthält einen schlanken OAuth-2.1-Autorisierungsserver gemäß der MCP-Autorisierungsspezifikation.

Metadaten der geschützten Ressource/.well-known/oauth-protected-resource (und mit /mcp als Suffix)
Metadaten des Autorisierungsservers/.well-known/oauth-authorization-server
Client-RegistrierungClient ID Metadata Documents (https client_id) oder dynamische Registrierung: POST /oauth/register (nur öffentliche Clients, token_endpoint_auth_method: none)
AutorisierungGET /oauth/authorize — response_type=code, PKCE S256 zorunlu, resource (RFC 8707), in der Antwort iss (RFC 9207)
SchlüsselPOST /oauth/token — authorization_code und refresh_token
AbgebrochenPOST /oauth/revoke (RFC 7009)
Scopesread, write (Schreiben schließt Lesen ein). Die Stufe wählt der Nutzer auf dem Zustimmungsbildschirm.
  • Weiterleitungsadressen müssen https oder localhost/127.0.0.1 sein; sie müssen exakt übereinstimmen (bei Loopback-Adressen ist der Port frei).
  • Der Autorisierungscode ist 2 Minuten gültig und nur einmal verwendbar; eine zweite Verwendung widerruft alle Tokens dieser Verbindung.
  • Das Zugriffstoken ist 1 Stunde gültig, das Refresh-Token 30 Tage. Refresh-Tokens ändern sich bei jeder Verwendung; wird ein altes Refresh-Token erneut verwendet, wird die Verbindung getrennt.
  • Zugriffstokens werden nur für den MCP-Server ausgestellt; die REST API erfordert einen persönlichen API-Schlüssel.
  • Bei unzureichendem Scope 403 und WWW-Authenticate: Bearer error="insufficient_scope", scope="read write" wird zurückgegeben.

Datenschutz

Das API-Aktivitätsprotokoll im Panel enthält nur Methode, Pfad, Statuscode, Dauer, das sichtbare Schlüsselpräfix (bzw. den Namen der OAuth-App) und den Zeitpunkt. Inhalte von Anfragen und Antworten sowie IP-Adressen werden nicht protokolliert; pro Konto werden die letzten 1.000 Anfragen aufbewahrt.