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)

POSThttps://panel.seoauto.ai/auth/login
json — request body
{
  "email": "you@example.com",
  "password": "••••••••"
}
json — response
{
  "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

http header
Authorization: Bearer <your_access_token>

Verificación de salud

GEThttps://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.

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

Crear sitio web

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

Crea 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

CampoTipoRequeridoDescripción
website_urlstringrequeridoURL completa del sitio web objetivo (ej. https://example.com)
master_promptstringrequeridoInstrucciones que guían a la IA al generar contenido para este sitio web
website_softwarestringopcionalIdentificador de CMS/plataforma. Predeterminado "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"
}

Iniciar generación (Prueba)

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

Inicia 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

CampoTipoRequeridoDescripción
pseo_idnumberrequeridoID del PSEO (sitio web) para el que generar contenido
post_countnumberrequeridoNúmero de páginas a generar. Debe ser 1 (límite de prueba)
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"
}

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

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

Inicia 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

CampoTipoRequeridoDescripción
pseo_idnumberrequeridoID del PSEO (sitio web) para el que generar contenido
post_countnumberrequeridoNúmero de páginas a generar (entero positivo, sin límite superior)
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"
}

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

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

Devuelve 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

CampoTipoRequeridoDescripción
idnumberrequeridoEl generation_id devuelto por el punto de conexión de inicio de generación
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"
}
EstadoSignificado
pendingTrabajo en cola, aún no iniciado
runningLa IA está generando páginas activamente
completedTodas las páginas generadas con éxito
failedTrabajo detenido debido a un error crítico; verificar failed_routes

Listar generaciones

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

Devuelve 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

CampoTipoRequeridoDescripción
pseo_idnumberrequeridoEl ID del PSEO (sitio web) para el que listar las generaciones
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"
}

Generar mapa del sitio

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

Usa 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

CampoTipoRequeridoDescripción
pseo_idnumberrequeridoID del PSEO objetivo
language_codestringrequeridoIdioma para el plan de contenido, ej. en-US, tr-TR, de-DE
descriptionstringrequeridoDescripción del negocio (150–1000 caracteres). Debe cubrir sector, servicios, audiencia objetivo y objetivos.
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"
}

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

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

Obtiene 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

CampoTipoRequeridoDescripción
pseo_idnumberrequeridoID 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

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

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:

json — error shape
{
  "success": false,
  "error": "Human-readable error message",
  "timestamp": "2026-03-10T12:00:00.000Z"
}
EstadoSignificado
400Bad RequestParámetros de solicitud faltantes o inválidos
401UnauthorizedToken Bearer faltante o inválido
402Payment RequiredSaldo de tokens insuficiente para la operación solicitada
403ForbiddenEl usuario autenticado no es el propietario del recurso solicitado
404Not FoundEl registro PSEO o de generación no existe
409ConflictUn trabajo de generación simultáneo ya está activo
500Internal Server ErrorError inesperado del lado del servidor; revisar registros de extensión
Referencia API | SeoAuto.ai | SeoAuto.ai