Dokumentacja API

Pełna dokumentacja REST API AutoSEO. Wszystkie punkty końcowe wymagają ważnego tokena Bearer, chyba że zaznaczono inaczej. Bazowy URL: https://panel.seoauto.ai

Przegląd

Interfejs API automatyzacji PSEO AutoSEO umożliwia programowe tworzenie witryn internetowych (PSEO), uruchamianie generowania treści opartego na sztucznej inteligencji, śledzenie zadań generowania i zarządzanie potokiem treści. Wszystkie punkty końcowe znajdują się pod prefiksem ścieżki /pseo-endpoints, zamontowanym na backendzie Directus.

Bazowy URL

https://panel.seoauto.ai

Uwierzytelnianie

Bearer Token (JWT)

Format

JSON (REST)


Uwierzytelnianie

Wszystkie wywołania API (z wyjątkiem sprawdzania kondycji) wymagają tokena użytkownika Directus przekazanego jako nagłówek Bearer. Uzyskaj krótkotrwały token dostępu logując się lub użyj długotrwałego tokena statycznego wygenerowanego z pulpitu nawigacyjnego.

Opcja 1 — Logowanie (krótkotrwały 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": "..."
  }
}

Opcja 2 — Token statyczny (pulpit nawigacyjny)

Przejdź do Pulpit nawigacyjny → Klucz API i wygeneruj stały token statyczny. Użyj go bezpośrednio jako wartości Bearer — brak daty wygaśnięcia do śledzenia.

Używanie tokena

http header
Authorization: Bearer <your_access_token>

Sprawdzanie kondycji

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

Zwraca status rozszerzenia i listę dostępnych punktów końcowych. Uwierzytelnianie nie jest wymagane.

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

Utwórz witrynę

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

Tworzy nowy wpis PSEO (witryna internetowa) dla uwierzytelnionego użytkownika. Rekord PSEO jest główną jednostką zawierającą wszystkie ustawienia generowania treści dla określonej witryny.

Treść żądania

PoleTypWymaganeOpis
website_urlstringwymaganePełny URL docelowej witryny (np. https://example.com)
master_promptstringwymaganeInstrukcje kierujące sztuczną inteligencją podczas generowania treści dla tej witryny
website_softwarestringopcjonalneIdentyfikator CMS/platformy. Domyślnie "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"
}

Uruchom generowanie (Test)

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

Uruchamia zadanie generowania treści AI na żądanie dla PSEO. Ograniczone do 1 strony (tryb testowy). Zadanie działa asynchronicznie w tle. Tokeny są odliczane natychmiast w tempie token_per_page.

Tryb testowy — maks. 1 strona

Generowanie na żądanie jest ograniczone do 1 strony i służy do testowania konfiguracji. Aby wygenerować wiele stron naraz, użyj punktu końcowego Bulk Generation z Claude Batch API.

Treść żądania

PoleTypWymaganeOpis
pseo_idnumberwymaganeIdentyfikator PSEO (witryny), dla której ma być generowana treść
post_countnumberwymaganeLiczba stron do wygenerowania. Musi wynosić 1 (limit testowy)
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 jednoczesnych generowań

Na jeden PSEO dozwolone jest jednocześnie tylko jedno aktywne generowanie. Jeśli zadanie ze statusem oczekujące lub uruchomione już istnieje, żądanie zwróci 409 Conflict.


Generowanie masowe

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

Uruchamia zadanie masowego generowania treści AI za pomocą Claude Batch API. Obsługuje dowolną liczbę stron. Tokeny są odliczane w tempie token_per_batch_page.

Treść żądania

PoleTypWymaganeOpis
pseo_idnumberwymaganeIdentyfikator PSEO (witryny), dla której ma być generowana treść
post_countnumberwymaganeLiczba stron do wygenerowania (dodatnia liczba całkowita, bez górnego limitu)
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 jednoczesnych generowań

Na jeden PSEO dozwolone jest jednocześnie tylko jedno aktywne generowanie. Jeśli zadanie ze statusem oczekujące lub uruchomione już istnieje, żądanie zwróci 409 Conflict.


Pobierz generowanie

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

Zwraca pełny rekord stanu dla pojedynczego zadania generowania. Odpytuj ten punkt końcowy po uruchomieniu generowania, aby śledzić postęp.

Parametry ścieżki

PoleTypWymaganeOpis
idnumberwymaganegeneration_id zwrócone przez punkt końcowy uruchamiania generowania
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"
}
StatusZnaczenie
pendingZadanie w kolejce, jeszcze nie rozpoczęte
runningSztuczna inteligencja aktywnie generuje strony
completedWszystkie strony wygenerowane pomyślnie
failedZadanie zatrzymane z powodu krytycznego błędu; sprawdź failed_routes

Lista generowań

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

Zwraca listę do 50 ostatnich zadań generowania dla danego PSEO, posortowanych od najnowszego. Zwraca tylko zadania należące do uwierzytelnionego użytkownika.

Parametry zapytania

PoleTypWymaganeOpis
pseo_idnumberwymaganeIdentyfikator PSEO (witryny), dla której mają być wylistowane generowania
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"
}

Generuj mapę witryny

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

Używa sztucznej inteligencji do wygenerowania ustrukturyzowanego planu treści (main_json) dla PSEO — zasadniczo listy tras stron, tytułów i metadanych, które posłużą jako plan generowania treści. Tokeny są odliczane w tempie token_per_main_json.

Treść żądania

PoleTypWymaganeOpis
pseo_idnumberwymaganeIdentyfikator docelowego PSEO
language_codestringwymaganeJęzyk dla planu treści, np. en-US, tr-TR, de-DE
descriptionstringwymaganeOpis firmy (150–1000 znaków). Powinien obejmować sektor, usługi, grupę docelową i cele.
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 jednoczesnych generowań

Na jednego użytkownika może działać jednocześnie tylko jedno generowanie main_json. Równoczesne żądania zwracają 409 Conflict.


Pobierz mapę witryny

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

Pobiera i analizuje mapę witryny skojarzonej z PSEO. Automatycznie próbuje wielu popularnych ścieżek mapy witryny (w tym indeksów map witryn). Zwraca płaską listę wszystkich znalezionych adresów URL stron. Przydatne do importowania struktury URL istniejącej witryny.

Parametry zapytania

PoleTypWymaganeOpis
pseo_idnumberwymaganeIdentyfikator PSEO — mapa witryny jest pobierana z website_url przechowywanego w tym rekordzie

Wypróbowane ścieżki mapy witryny (w kolejności): /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"
  ]
}

Zwraca pusta tablice urls, jesli nie znaleziono mapy witryny lub witryna jest niedostepna. Nie zglasza bledu.


Kody błędów

Wszystkie odpowiedzi błędów mają tę samą strukturę:

json — error shape
{
  "success": false,
  "error": "Human-readable error message",
  "timestamp": "2026-03-10T12:00:00.000Z"
}
StatusZnaczenie
400Bad RequestBrakujące lub nieprawidłowe parametry żądania
401UnauthorizedBrakujący lub nieprawidłowy token Bearer
402Payment RequiredNiewystarczające saldo tokenów dla żądanej operacji
403ForbiddenUwierzytelniony użytkownik nie jest właścicielem żądanego zasobu
404Not FoundRekord PSEO lub generowania nie istnieje
409ConflictJednoczesne zadanie generowania jest już aktywne
500Internal Server ErrorNieoczekiwany błąd po stronie serwera; sprawdź logi rozszerzenia
Dokumentacja API | SeoAuto.ai | SeoAuto.ai