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)
https://panel.seoauto.ai/auth/login{
"email": "you@example.com",
"password": "••••••••"
}{
"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
Authorization: Bearer <your_access_token>Sprawdzanie kondycji
https://panel.seoauto.ai/pseo-endpoints/Zwraca status rozszerzenia i listę dostępnych punktów końcowych. Uwierzytelnianie nie jest wymagane.
{
"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ę
https://panel.seoauto.ai/pseo-endpoints/pseoTworzy 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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
| website_url | string | wymagane | Pełny URL docelowej witryny (np. https://example.com) |
| master_prompt | string | wymagane | Instrukcje kierujące sztuczną inteligencją podczas generowania treści dla tej witryny |
| website_software | string | opcjonalne | Identyfikator CMS/platformy. Domyślnie "wordpress" |
{
"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."
}{
"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)
https://panel.seoauto.ai/pseo-endpoints/trigger/on-demand-generationUruchamia 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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
| pseo_id | number | wymagane | Identyfikator PSEO (witryny), dla której ma być generowana treść |
| post_count | number | wymagane | Liczba stron do wygenerowania. Musi wynosić 1 (limit testowy) |
{
"pseo_id": 42,
"post_count": 1
}{
"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
https://panel.seoauto.ai/pseo-endpoints/trigger/bulk-generationUruchamia 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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
| pseo_id | number | wymagane | Identyfikator PSEO (witryny), dla której ma być generowana treść |
| post_count | number | wymagane | Liczba stron do wygenerowania (dodatnia liczba całkowita, bez górnego limitu) |
{
"pseo_id": 42,
"post_count": 100
}{
"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
https://panel.seoauto.ai/pseo-endpoints/generations/:idZwraca pełny rekord stanu dla pojedynczego zadania generowania. Odpytuj ten punkt końcowy po uruchomieniu generowania, aby śledzić postęp.
Parametry ścieżki
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
| id | number | wymagane | generation_id zwrócone przez punkt końcowy uruchamiania generowania |
{
"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"
}| Status | Znaczenie |
|---|---|
| pending | Zadanie w kolejce, jeszcze nie rozpoczęte |
| running | Sztuczna inteligencja aktywnie generuje strony |
| completed | Wszystkie strony wygenerowane pomyślnie |
| failed | Zadanie zatrzymane z powodu krytycznego błędu; sprawdź failed_routes |
Lista generowań
https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=:pseo_idZwraca listę do 50 ostatnich zadań generowania dla danego PSEO, posortowanych od najnowszego. Zwraca tylko zadania należące do uwierzytelnionego użytkownika.
Parametry zapytania
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
| pseo_id | number | wymagane | Identyfikator PSEO (witryny), dla której mają być wylistowane generowania |
GET https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=42
Authorization: Bearer <token>{
"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
https://panel.seoauto.ai/pseo-endpoints/generate/main-jsonUż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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
| pseo_id | number | wymagane | Identyfikator docelowego PSEO |
| language_code | string | wymagane | Język dla planu treści, np. en-US, tr-TR, de-DE |
| description | string | wymagane | Opis firmy (150–1000 znaków). Powinien obejmować sektor, usługi, grupę docelową i cele. |
{
"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."
}{
"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
https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=:pseo_idPobiera 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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
| pseo_id | number | wymagane | Identyfikator 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
GET https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=42
Authorization: Bearer <token>{
"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ę:
{
"success": false,
"error": "Human-readable error message",
"timestamp": "2026-03-10T12:00:00.000Z"
}| Status | Znaczenie |
|---|---|
| 400Bad Request | Brakujące lub nieprawidłowe parametry żądania |
| 401Unauthorized | Brakujący lub nieprawidłowy token Bearer |
| 402Payment Required | Niewystarczające saldo tokenów dla żądanej operacji |
| 403Forbidden | Uwierzytelniony użytkownik nie jest właścicielem żądanego zasobu |
| 404Not Found | Rekord PSEO lub generowania nie istnieje |
| 409Conflict | Jednoczesne zadanie generowania jest już aktywne |
| 500Internal Server Error | Nieoczekiwany błąd po stronie serwera; sprawdź logi rozszerzenia |
