API-Referenz

Vollständige Referenz für die AutoSEO REST API. Alle Endpunkte erfordern ein gültiges Bearer-Token, sofern nicht anders angegeben. Basis-URL: https://panel.seoauto.ai

Übersicht

Die AutoSEO PSEO-Automatisierungs-API ermöglicht es Ihnen, programmatisch Websites (PSEOs) zu erstellen, KI-basierte Inhaltsgenerierung auszulösen, Generierungsaufträge zu verfolgen und Ihre Inhaltspipeline zu verwalten. Alle Endpunkte befinden sich unter dem Pfadpräfix /pseo-endpoints, eingebunden im Directus-Backend.

Basis-URL

https://panel.seoauto.ai

Authentifizierung

Bearer Token (JWT)

Format

JSON (REST)


Authentifizierung

Alle API-Aufrufe (außer der Integritätsprüfung) erfordern ein Directus-Benutzertoken als Bearer-Header. Erhalten Sie ein kurzlebiges Zugriffstoken durch Anmeldung oder verwenden Sie ein langlebiges statisches Token aus Ihrem Dashboard.

Option 1 — Anmeldung (kurzlebiges JWT)

POSThttps://panel.seoauto.ai/auth/login
json — request body
{
  "email": "you@example.com",
  "password": "••••••••"
}
json — response
{
  "data": {
    "access_token": "eyJhbGciO...",
    "expires": 3600000,
    "refresh_token": "..."
  }
}

Option 2 — Statisches Token (Dashboard)

Gehen Sie zu Dashboard → API-Schlüssel und generieren Sie ein dauerhaftes statisches Token. Verwenden Sie es direkt als Bearer-Wert — kein Ablaufdatum zu verfolgen.

Token verwenden

http header
Authorization: Bearer <your_access_token>

Integritätsprüfung

GEThttps://panel.seoauto.ai/pseo-endpoints/

Gibt den Erweiterungsstatus und eine Liste verfügbarer Endpunkte zurück. Keine Authentifizierung erforderlich.

json — response 200
{
  "status": "ok",
  "extension": "pseo-automation",
  "version": "1.0.0",
  "timestamp": "2026-03-10T12:00:00.000Z",
  "endpoints": [
    "GET /",
    "POST /pseo",
    "POST /trigger/on-demand-generation",
    "POST /trigger/bulk-generation",
    "GET /generations/:id",
    "GET /generations?pseo_id=X",
    "POST /generate/main-json",
    "GET /fetch-sitemap?pseo_id=X"
  ]
}

Website erstellen

POSThttps://panel.seoauto.ai/pseo-endpoints/pseo

Erstellt einen neuen PSEO-Eintrag (Website) für den authentifizierten Benutzer. Der PSEO-Datensatz ist die Stammentität, die alle Inhaltsgenerierungseinstellungen für eine bestimmte Website enthält.

Anfragekörper

FeldTypErforderlichBeschreibung
website_urlstringerforderlichVollständige URL der Zielwebsite (z. B. https://example.com)
master_promptstringerforderlichAnweisungen, die die KI bei der Inhaltserstellung für diese Website leiten
website_softwarestringoptionalCMS/Plattform-Bezeichner. Standard: "wordpress"
json — request body
{
  "website_url": "https://example.com",
  "website_software": "wordpress",
  "master_prompt": "This website sells handmade leather bags targeting fashion-conscious adults in the US. Write SEO-friendly product content in English using a professional yet warm tone."
}
json — response 201
{
  "success": true,
  "message": "PSEO created successfully",
  "data": {
    "id": 42,
    "website_url": "https://example.com",
    "website_software": "wordpress",
    "directus_user_id": "uuid-...",
    "post_counts_total": 0
  },
  "timestamp": "2026-03-10T12:00:00.000Z"
}

Generierung starten (Test)

POSThttps://panel.seoauto.ai/pseo-endpoints/trigger/on-demand-generation

Startet einen On-Demand-KI-Inhaltsgenerierungsauftrag für ein PSEO. Auf 1 Seite begrenzt (Testmodus). Der Auftrag wird asynchron im Hintergrund ausgeführt. Token werden sofort mit der Rate token_per_page abgezogen.

Test mode — max 1 page

On-demand generation is limited to 1 page and is intended for testing your setup. To generate multiple pages at once, use the Bulk Generation endpoint which uses Claude Batch API.

Anfragekörper

FeldTypErforderlichBeschreibung
pseo_idnumbererforderlichID des PSEO (der Website), für das Inhalte generiert werden sollen
post_countnumbererforderlichAnzahl der zu generierenden Seiten. Muss 1 sein (Testlimit)
json — request body
{
  "pseo_id": 42,
  "post_count": 1
}
json — response 202
{
  "success": true,
  "message": "Generation started in background",
  "generation_id": 7,
  "status": "pending",
  "timestamp": "2026-03-10T12:00:00.000Z"
}

Limit gleichzeitiger Generierungen

Pro PSEO ist jeweils nur ein aktiver Generierungsauftrag erlaubt. Wenn bereits ein Auftrag mit Status ausstehend oder laufend vorhanden ist, gibt die Anfrage 409 Conflict zurück.


Massengeneration

POSThttps://panel.seoauto.ai/pseo-endpoints/trigger/bulk-generation

Starts a bulk AI content generation job using Claude Batch API. Supports any number of pages. Tokens are deducted at the token_per_batch_page rate.

Anfragekörper

FeldTypErforderlichBeschreibung
pseo_idnumbererforderlichID des PSEO (der Website), für das Inhalte generiert werden sollen
post_countnumbererforderlichAnzahl der zu generierenden Seiten (positive ganze Zahl, kein Limit)
json — request body
{
  "pseo_id": 42,
  "post_count": 100
}
json — response 202
{
  "success": true,
  "message": "Bulk generation started in background",
  "generation_id": 12,
  "status": "pending",
  "timestamp": "2026-03-10T12:00:00.000Z"
}

Limit gleichzeitiger Generierungen

Pro PSEO ist jeweils nur ein aktiver Generierungsauftrag erlaubt. Wenn bereits ein Auftrag mit Status ausstehend oder laufend vorhanden ist, gibt die Anfrage 409 Conflict zurück.


Generierung abrufen

GEThttps://panel.seoauto.ai/pseo-endpoints/generations/:id

Gibt den vollständigen Statusdatensatz für einen einzelnen Generierungsauftrag zurück. Fragen Sie diesen Endpunkt nach dem Start einer Generierung ab, um den Fortschritt zu verfolgen.

Pfadparameter

FeldTypErforderlichBeschreibung
idnumbererforderlichDie generation_id, die vom Endpunkt zum Starten der Generierung zurückgegeben wurde
json — response 200
{
  "success": true,
  "data": {
    "id": 7,
    "pseo_id": 42,
    "status": "running",        // pending | running | completed | failed
    "requested_count": 10,
    "created_count": 4,
    "failed_count": 0,
    "failed_routes": [],
    "date_created": "2026-03-10T12:00:00.000Z",
    "date_updated": "2026-03-10T12:01:30.000Z",
    "date_completed": null
  },
  "timestamp": "2026-03-10T12:01:35.000Z"
}
StatusBedeutung
pendingAuftrag in der Warteschlange, noch nicht gestartet
runningKI generiert aktiv Seiten
completedAlle Seiten erfolgreich generiert
failedAuftrag aufgrund eines kritischen Fehlers gestoppt; failed_routes prüfen

Generierungen auflisten

GEThttps://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=:pseo_id

Gibt eine Liste der bis zu 50 neuesten Generierungsaufträge für ein bestimmtes PSEO zurück, nach Neuheit sortiert. Gibt nur Aufträge des authentifizierten Benutzers zurück.

Abfrageparameter

FeldTypErforderlichBeschreibung
pseo_idnumbererforderlichDie ID des PSEO (der Website), für das Generierungen aufgelistet werden sollen
http — example request
GET https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=42
Authorization: Bearer <token>
json — response 200
{
  "success": true,
  "data": [
    {
      "id": 8,
      "pseo_id": 42,
      "status": "completed",
      "requested_count": 5,
      "created_count": 5,
      "failed_count": 0,
      "failed_routes": [],
      "date_created": "2026-03-10T13:00:00.000Z",
      "date_completed": "2026-03-10T13:04:21.000Z"
    },
    { "id": 7, "status": "completed", "..." : "..." }
  ],
  "timestamp": "2026-03-10T14:00:00.000Z"
}

Sitemap erstellen

POSThttps://panel.seoauto.ai/pseo-endpoints/generate/main-json

Verwendet KI, um einen strukturierten Inhaltsplan (main_json) für das PSEO zu erstellen — im Wesentlichen eine Liste von Seitenrouten, Titeln und Metadaten, die als Vorlage für die Inhaltsgenerierung dient. Token werden mit der Rate token_per_main_json abgezogen.

Anfragekörper

FeldTypErforderlichBeschreibung
pseo_idnumbererforderlichID des Ziel-PSEO
language_codestringerforderlichSprache für den Inhaltsplan, z. B. en-US, tr-TR, de-DE
descriptionstringerforderlichUnternehmensbeschreibung (150–1000 Zeichen). Sollte Branche, Dienstleistungen, Zielgruppe und Ziele abdecken.
json — request body
{
  "pseo_id": 42,
  "language_code": "en-US",
  "description": "We sell premium handmade leather goods including bags, wallets, and belts targeting fashion-conscious adults aged 25–45 in the United States. Our USP is ethically sourced full-grain leather with lifetime repair guarantee."
}
json — response 200
{
  "success": true,
  "message": "main_json generated and saved successfully",
  "data": {
    "main_json": {
      "pages": [
        { "route": "/leather-bags", "title": "Premium Leather Bags", "priority": 1 },
        { "route": "/leather-wallets", "title": "Handmade Leather Wallets", "priority": 2 }
      ]
    },
    "total_pages": 28
  },
  "timestamp": "2026-03-10T12:00:00.000Z"
}

Limit gleichzeitiger Generierungen

Pro Benutzer kann jeweils nur eine main_json-Generierung ausgeführt werden. Gleichzeitige Anfragen geben 409 Conflict zurück.


Sitemap abrufen

GEThttps://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=:pseo_id

Ruft die Sitemap der mit einem PSEO verknüpften Website ab und analysiert sie. Versucht automatisch mehrere gängige Sitemap-Pfade (einschließlich Sitemap-Indizes). Gibt eine flache Liste aller gefundenen Seiten-URLs zurück. Nützlich zum Importieren der URL-Struktur einer bestehenden Website.

Abfrageparameter

FeldTypErforderlichBeschreibung
pseo_idnumbererforderlichPSEO-ID — die Sitemap wird von der in diesem Datensatz gespeicherten website_url abgerufen

Versuchte Sitemap-Pfade (der Reihe nach): /sitemap.xml /sitemap_index.xml /wp-sitemap.xml /sitemap

http — example request
GET https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=42
Authorization: Bearer <token>
json — response 200
{
  "success": true,
  "urls": [
    "https://example.com/",
    "https://example.com/leather-bags",
    "https://example.com/leather-wallets",
    "https://example.com/about"
  ]
}

Gibt ein leeres urls-Array zuruck, wenn keine Sitemap gefunden wird oder die Website nicht erreichbar ist. Lost keinen Fehler aus.


Fehlercodes

Alle Fehlerantworten folgen demselben Schema:

json — error shape
{
  "success": false,
  "error": "Human-readable error message",
  "timestamp": "2026-03-10T12:00:00.000Z"
}
StatusBedeutung
400Bad RequestFehlende oder ungültige Anfrageparameter
401UnauthorizedFehlendes oder ungültiges Bearer-Token
402Payment RequiredUnzureichendes Token-Guthaben für den angeforderten Vorgang
403ForbiddenDer authentifizierte Benutzer ist nicht der Eigentümer der angeforderten Ressource
404Not FoundPSEO- oder Generierungsdatensatz existiert nicht
409ConflictEin gleichzeitiger Generierungsauftrag ist bereits aktiv
500Internal Server ErrorUnerwarteter serverseitiger Fehler; Erweiterungsprotokolle prüfen