Referencia de API
Referencia completa para la API REST de AutoSEO. Todos los puntos de conexión requieren un token Bearer válido a menos que se indique lo contrario. URL base: https://panel.seoauto.ai
Descripción general
La API de automatización PSEO de AutoSEO le permite crear sitios web (PSEOs) de forma programática, activar la generación de contenido basada en IA, rastrear trabajos de generación y gestionar su pipeline de contenido. Todos los puntos de conexión están bajo el prefijo de ruta /pseo-endpoints, montado en el backend de Directus.
URL base
https://panel.seoauto.ai
Autenticación
Bearer Token (JWT)
Formato
JSON (REST)
Autenticación
Todas las llamadas a la API (excepto la verificación de salud) requieren un token de usuario de Directus pasado como encabezado Bearer. Obtenga un token de acceso de corta duración iniciando sesión, o use un token estático de larga duración generado desde su panel de control.
Opción 1 — Inicio de sesión (JWT de corta duración)
https://panel.seoauto.ai/auth/login{
"email": "you@example.com",
"password": "••••••••"
}{
"data": {
"access_token": "eyJhbGciO...",
"expires": 3600000,
"refresh_token": "..."
}
}Opción 2 — Token estático (panel de control)
Vaya a Panel de control → Clave API y genere un token estático permanente. Úselo directamente como valor Bearer — sin vencimiento que rastrear.
Uso del token
Authorization: Bearer <your_access_token>Verificación de salud
https://panel.seoauto.ai/pseo-endpoints/Devuelve el estado de la extensión y una lista de puntos de conexión disponibles. No se requiere autenticación.
{
"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"
]
}Crear sitio web
https://panel.seoauto.ai/pseo-endpoints/pseoCrea una nueva entrada PSEO (sitio web) para el usuario autenticado. El registro PSEO es la entidad raíz que contiene todas las configuraciones de generación de contenido para un sitio web específico.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| website_url | string | requerido | URL completa del sitio web objetivo (ej. https://example.com) |
| master_prompt | string | requerido | Instrucciones que guían a la IA al generar contenido para este sitio web |
| website_software | string | opcional | Identificador de CMS/plataforma. Predeterminado "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"
}Iniciar generación (Prueba)
https://panel.seoauto.ai/pseo-endpoints/trigger/on-demand-generationInicia un trabajo de generación de contenido de IA bajo demanda para un PSEO. Limitado a 1 página (modo prueba). El trabajo se ejecuta de forma asíncrona en segundo plano. Los tokens se deducen inmediatamente a la tasa token_per_page.
Modo de prueba — máx. 1 página
La generación bajo demanda está limitada a 1 página y es para probar tu configuración. Para generar varias páginas a la vez, usa el endpoint de Generación masiva con Claude Batch API.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| pseo_id | number | requerido | ID del PSEO (sitio web) para el que generar contenido |
| post_count | number | requerido | Número de páginas a generar. Debe ser 1 (límite de prueba) |
{
"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"
}Límite de generación simultánea
Solo se permite una generación activa por PSEO a la vez. Si ya existe un trabajo con estado pendiente o en ejecución, la solicitud devolverá 409 Conflict.
Generación masiva
https://panel.seoauto.ai/pseo-endpoints/trigger/bulk-generationInicia un trabajo masivo de generación de contenido de IA usando Claude Batch API. Compatible con cualquier número de páginas. Los tokens se deducen a la tasa token_per_batch_page.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| pseo_id | number | requerido | ID del PSEO (sitio web) para el que generar contenido |
| post_count | number | requerido | Número de páginas a generar (entero positivo, sin límite superior) |
{
"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"
}Límite de generación simultánea
Solo se permite una generación activa por PSEO a la vez. Si ya existe un trabajo con estado pendiente o en ejecución, la solicitud devolverá 409 Conflict.
Obtener generación
https://panel.seoauto.ai/pseo-endpoints/generations/:idDevuelve el registro de estado completo para un único trabajo de generación. Consulte este punto de conexión después de iniciar una generación para rastrear el progreso.
Parámetros de ruta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| id | number | requerido | El generation_id devuelto por el punto de conexión de inicio de generación |
{
"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"
}| Estado | Significado |
|---|---|
| pending | Trabajo en cola, aún no iniciado |
| running | La IA está generando páginas activamente |
| completed | Todas las páginas generadas con éxito |
| failed | Trabajo detenido debido a un error crítico; verificar failed_routes |
Listar generaciones
https://panel.seoauto.ai/pseo-endpoints/generations?pseo_id=:pseo_idDevuelve una lista de hasta 50 trabajos de generación más recientes para un PSEO dado, ordenados del más nuevo al más antiguo. Solo devuelve trabajos del usuario autenticado.
Parámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| pseo_id | number | requerido | El ID del PSEO (sitio web) para el que listar las generaciones |
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"
}Generar mapa del sitio
https://panel.seoauto.ai/pseo-endpoints/generate/main-jsonUsa IA para generar un plan de contenido estructurado (main_json) para el PSEO — esencialmente una lista de rutas de páginas, títulos y metadatos que se usará como modelo para la generación de contenido. Los tokens se deducen a la tasa token_per_main_json.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| pseo_id | number | requerido | ID del PSEO objetivo |
| language_code | string | requerido | Idioma para el plan de contenido, ej. en-US, tr-TR, de-DE |
| description | string | requerido | Descripción del negocio (150–1000 caracteres). Debe cubrir sector, servicios, audiencia objetivo y objetivos. |
{
"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"
}Límite de generación simultánea
Solo puede ejecutarse una generación main_json por usuario a la vez. Las solicitudes simultáneas devuelven 409 Conflict.
Obtener mapa del sitio
https://panel.seoauto.ai/pseo-endpoints/fetch-sitemap?pseo_id=:pseo_idObtiene y analiza el mapa del sitio del sitio web asociado con un PSEO. Intenta automáticamente múltiples rutas de mapa del sitio comunes (incluyendo índices de mapas del sitio). Devuelve una lista plana de todas las URL de páginas encontradas. Útil para importar la estructura de URL de un sitio web existente.
Parámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| pseo_id | number | requerido | ID de PSEO — el mapa del sitio se obtiene del website_url almacenado en este registro |
Rutas de mapa del sitio intentadas (en orden): /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"
]
}Devuelve un array urls vacio si no se encuentra ningun mapa del sitio o el sitio no es accesible. No lanza un error.
Códigos de error
Todas las respuestas de error siguen la misma estructura:
{
"success": false,
"error": "Human-readable error message",
"timestamp": "2026-03-10T12:00:00.000Z"
}| Estado | Significado |
|---|---|
| 400Bad Request | Parámetros de solicitud faltantes o inválidos |
| 401Unauthorized | Token Bearer faltante o inválido |
| 402Payment Required | Saldo de tokens insuficiente para la operación solicitada |
| 403Forbidden | El usuario autenticado no es el propietario del recurso solicitado |
| 404Not Found | El registro PSEO o de generación no existe |
| 409Conflict | Un trabajo de generación simultáneo ya está activo |
| 500Internal Server Error | Error inesperado del lado del servidor; revisar registros de extensión |
