Riferimento API
Riferimento completo per l'API REST AutoSEO. Tutti gli endpoint richiedono un token Bearer valido salvo diversa indicazione. URL base: https://panel.seoauto.ai
Panoramica
L'API di automazione PSEO di AutoSEO consente di creare siti web (PSEO) in modo programmatico, attivare la generazione di contenuti basata sull'IA, monitorare i lavori di generazione e gestire la pipeline di contenuti. Tutti gli endpoint si trovano sotto il prefisso di percorso /pseo-endpoints, montato sul backend Directus.
URL base
https://panel.seoauto.ai
Autenticazione
Bearer Token (JWT)
Formato
JSON (REST)
Autenticazione
Tutte le chiamate API (eccetto il controllo di integrità) richiedono un token utente Directus passato come intestazione Bearer. Ottieni un token di accesso di breve durata effettuando il login, oppure usa un token statico di lunga durata generato dalla tua dashboard.
Opzione 1 — Login (JWT di breve durata)
https://panel.seoauto.ai/auth/login{
"email": "you@example.com",
"password": "••••••••"
}{
"data": {
"access_token": "eyJhbGciO...",
"expires": 3600000,
"refresh_token": "..."
}
}Opzione 2 — Token statico (dashboard)
Vai su Dashboard → Chiave API e genera un token statico permanente. Usalo direttamente come valore Bearer — nessuna scadenza da monitorare.
Utilizzo del token
Authorization: Bearer <your_access_token>Controllo integrità
https://panel.seoauto.ai/pseo-endpoints/Restituisce lo stato dell'estensione e un elenco degli endpoint disponibili. Nessuna autenticazione richiesta.
{
"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"
]
}Crea sito web
https://panel.seoauto.ai/pseo-endpoints/pseoCrea una nuova voce PSEO (sito web) per l'utente autenticato. Il record PSEO è l'entità radice che contiene tutte le impostazioni di generazione dei contenuti per un sito web specifico.
Corpo della richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| website_url | string | obbligatorio | URL completo del sito web di destinazione (es. https://example.com) |
| master_prompt | string | obbligatorio | Istruzioni che guidano l'IA nella generazione di contenuti per questo sito web |
| website_software | string | facoltativo | Identificatore CMS/piattaforma. Predefinito "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"
}Avvia generazione (Test)
https://panel.seoauto.ai/pseo-endpoints/trigger/on-demand-generationAvvia un processo di generazione di contenuti IA su richiesta per un PSEO. Limitato a 1 pagina (modalità test). Il processo viene eseguito in modo asincrono in background. I token vengono dedotti immediatamente alla velocità token_per_page.
Modalità test — max 1 pagina
La generazione on-demand è limitata a 1 pagina ed è pensata per testare la configurazione. Per generare più pagine, usa l'endpoint di Generazione massiva con Claude Batch API.
Corpo della richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| pseo_id | number | obbligatorio | ID del PSEO (sito web) per cui generare contenuti |
| post_count | number | obbligatorio | Numero di pagine da generare. Deve essere 1 (limite di test) |
{
"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"
}Limite di generazione simultanea
È consentita solo una generazione attiva per PSEO alla volta. Se esiste già un lavoro con stato in attesa o in esecuzione, la richiesta restituirà 409 Conflict.
Generazione in blocco
https://panel.seoauto.ai/pseo-endpoints/trigger/bulk-generationAvvia un processo di generazione massiva di contenuti IA tramite Claude Batch API. Supporta qualsiasi numero di pagine. I token vengono dedotti alla velocità token_per_batch_page.
Corpo della richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| pseo_id | number | obbligatorio | ID del PSEO (sito web) per cui generare contenuti |
| post_count | number | obbligatorio | Numero di pagine da generare (intero positivo, senza limite superiore) |
{
"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"
}Limite di generazione simultanea
È consentita solo una generazione attiva per PSEO alla volta. Se esiste già un lavoro con stato in attesa o in esecuzione, la richiesta restituirà 409 Conflict.
Ottieni generazione
https://panel.seoauto.ai/pseo-endpoints/generations/:idRestituisce il record di stato completo per un singolo lavoro di generazione. Interroga questo endpoint dopo aver avviato una generazione per monitorare i progressi.
Parametri del percorso
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| id | number | obbligatorio | Il generation_id restituito dall'endpoint di avvio della generazione |
{
"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"
}| Stato | Significato |
|---|---|
| pending | Lavoro in coda, non ancora avviato |
| running | L'IA sta generando pagine attivamente |
| completed | Tutte le pagine generate con successo |
| failed | Lavoro interrotto a causa di un errore critico; controllare failed_routes |
Elenca generazioni
https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=:pseo_idRestituisce un elenco degli ultimi 50 lavori di generazione per un determinato PSEO, ordinati dal più recente. Restituisce solo i lavori dell'utente autenticato.
Parametri di query
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| pseo_id | number | obbligatorio | L'ID del PSEO (sito web) per cui elencare le generazioni |
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"
}Genera sitemap
https://panel.seoauto.ai/pseo-endpoints/generate/main-jsonUtilizza l'IA per generare un piano di contenuti strutturato (main_json) per il PSEO — essenzialmente un elenco di percorsi di pagina, titoli e metadati che verrà utilizzato come modello per la generazione di contenuti. I token vengono dedotti alla velocità token_per_main_json.
Corpo della richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| pseo_id | number | obbligatorio | ID del PSEO di destinazione |
| language_code | string | obbligatorio | Lingua per il piano dei contenuti, es. en-US, tr-TR, de-DE |
| description | string | obbligatorio | Descrizione aziendale (150–1000 caratteri). Deve coprire settore, servizi, pubblico target e obiettivi. |
{
"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"
}Limite di generazione simultanea
È possibile eseguire solo una generazione main_json per utente alla volta. Le richieste simultanee restituiscono 409 Conflict.
Recupera sitemap
https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=:pseo_idRecupera e analizza la sitemap del sito web associato a un PSEO. Tenta automaticamente più percorsi comuni di sitemap (compresi gli indici della sitemap). Restituisce un elenco piatto di tutti gli URL delle pagine trovate. Utile per importare la struttura URL di un sito web esistente.
Parametri di query
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| pseo_id | number | obbligatorio | ID PSEO — la sitemap viene recuperata dal website_url memorizzato in questo record |
Percorsi della sitemap tentati (in ordine): /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"
]
}Restituisce un array urls vuoto se non viene trovata alcuna sitemap o il sito non e raggiungibile. Non genera un errore.
Codici di errore
Tutte le risposte di errore seguono la stessa struttura:
{
"success": false,
"error": "Human-readable error message",
"timestamp": "2026-03-10T12:00:00.000Z"
}| Stato | Significato |
|---|---|
| 400Bad Request | Parametri di richiesta mancanti o non validi |
| 401Unauthorized | Token Bearer mancante o non valido |
| 402Payment Required | Saldo token insufficiente per l'operazione richiesta |
| 403Forbidden | L'utente autenticato non è il proprietario della risorsa richiesta |
| 404Not Found | Il record PSEO o di generazione non esiste |
| 409Conflict | Un lavoro di generazione simultanea è già attivo |
| 500Internal Server Error | Errore lato server imprevisto; controllare i log dell'estensione |
