AutoAiSeo API y MCP

Usa tus datos de AutoAiSeo con tu propio software (REST API) o con asistentes de IA como Claude, ChatGPT o Cursor (MCP). Cada solicitud solo accede a los datos de tu cuenta.

Primeros pasos

  1. En el panel, abre la pestaña API y MCP y pulsa Nueva clave para crear una. La clave (rk_live_…) solo se muestra una vez.
  2. Envíala con la cabecera Authorization: Bearer en cada solicitud.
curl -H "Authorization: Bearer rk_live_…" https://autoaiseo.example/api/v1/sites

Dirección base: https://autoaiseo.example/api/v1. Todas las respuestas son JSON; en las correctas, el campo data contiene el resultado.

Autenticación y permisos

PermisosQué permite
read (Lectura)Cuenta, sitios, artículos, palabras clave, informe de backlinks, progreso e historial de servicios.
read_write (Lectura y escritura)Además, añadir ideas de artículos, encargar la redacción de artículos (descuenta de la cuota mensual de tu plan) y publicar artículos.
  • Máximo 10 claves activas por cuenta. Las claves pueden no caducar o ser válidas durante 30 días, 90 días o 1 año.
  • AutoAiSeo no guarda la clave en sí, solo su hash SHA-256 y el prefijo visible (rk_live_Ab3dEf). Una clave perdida no se puede recuperar; revócala y crea una nueva.
  • Las claves revocadas o caducadas, y las de cuentas suspendidas, dejan de funcionar de inmediato.
  • Las cookies de sesión del navegador no son válidas en la API; hay que enviar la clave en cada solicitud.

Límite de solicitudes

60 solicitudes por minuto por clave (o conexión OAuth). Las respuestas incluyen X-RateLimit-Limit y X-RateLimit-Remaining como cabeceras. Si superas el límite, se devuelve un 429 con la cabecera Retry-After que indica cuántos segundos debes esperar.

Errores

{ "error": { "code": "not_found", "message": "Site bulunamadı" } }
HTTPcodeSignificado
400invalid_requestParámetro o cuerpo no válido.
401unauthorized, invalid_tokenFalta la clave o no es válida, se revocó o caducó.
402quota_exceededHas agotado tu cuota de artículos de este mes.
403insufficient_scopeLa operación requiere el permiso “Lectura y escritura”.
403account_suspendedLa cuenta está suspendida.
404not_foundEl registro no existe o no te pertenece.
409conflict, not_ready, limit_reachedEl artículo ya se está escribiendo o ya está publicado, no está listo para publicarse o se alcanzó un límite.
429rate_limitedSe superó el límite de solicitudes.
502publish_failedEl destino de publicación (WordPress, Shopify…) rechazó la publicación.
500internal_errorError inesperado del servidor.

Paginación

Las listas largas aceptan los parámetros page y per_page (máximo 100–200) y devuelven esta información:

"pagination": { "page": 1, "per_page": 50, "total": 132, "total_pages": 3 }

Endpoints

GET /api/v1/me

Cuenta, límites del plan, uso de este mes, backlinks extra y permisos de la clave usada.

GET /api/v1/sites

Tus sitios: id, dominio, estado, puntuación de salud SEO, puntuación de confianza, artículos publicados, backlinks activos, dominios de referencia, cambio en 30 días y próximo artículo.

GET /api/v1/sites/{id}

Resumen del sitio: perfil, ajustes de publicación, número de artículos (por estado), resumen de la red de backlinks y resumen del progreso en 30 días.

GET /api/v1/sites/{id}/progress?range=90d

Informe de progreso. range: 30d, 90d, 180d, 365d, all.

GET /api/v1/sites/{id}/articles

Artículos (paginados). Parámetros: status (planned, generating, review, approved, published, failed), q (búsqueda por título/palabra clave), page, per_page.

GET /api/v1/articles/{id}

Artículo: título, meta descripción, puntuaciones (SEO, GEO, legibilidad), FAQ, backlinks de socios, enlaces del cuerpo (internos/externos/socios) y contenido. content: html (predeterminado), markdown o none.

GET /api/v1/sites/{id}/keywords

Palabras clave (paginadas): clúster, intención de búsqueda, prioridad y el artículo que apunta a cada palabra (article_id, article_status). Parámetros: cluster, q, page, per_page.

GET /api/v1/sites/{id}/backlinks

Informe de backlinks: créditos, enlaces activos/pendientes, dominios de referencia, distribución de anchors, enlaces recibidos (paginados) y últimos enlaces dados.

GET /api/v1/sites/{id}/services

El trabajo que AutoAiSeo ha hecho para el sitio: totales, últimos 12 meses e historial (30 por página). Parámetros: kind, q, page.

POST /api/v1/sites/{id}/articles read_write

Añade una idea de artículo al plan de contenidos (estado planned). Si no se indica fecha, se coloca el día siguiente al último artículo del plan; AutoAiSeo lo escribe cuando llega la fecha. No consume cuota.

curl -X POST -H "Authorization: Bearer rk_live_…" -H "Content-Type: application/json" \
  -d '{"title":"Filtre kahve nasıl demlenir?","target_keyword":"filtre kahve demleme","angle":"Yeni başlayanlar için"}' \
  https://autoaiseo.example/api/v1/sites/12/articles

Cuerpo: title (obligatorio, 5–200), target_keyword, cluster, angle, scheduled_for (YYYY-MM-DD). Respuesta 201.

POST /api/v1/articles/{id}/generate read_write

Escribe el artículo en segundo plano (202, estado generating). Se aplican las mismas reglas que en el panel: descuenta de tu cuota mensual (reescribir un artículo ya escrito este mes es gratis) y no se puede reescribir un artículo publicado. Al terminar, el estado pasa a review olur.

POST /api/v1/articles/{id}/publish read_write

Envía el artículo escrito al destino de publicación del sitio (blog de AutoAiSeo, WordPress, Shopify, Webflow, webhook) y devuelve la URL publicada.

Servidor MCP

Dirección: https://autoaiseo.example/mcp — capa de transporte Streamable HTTP (respuestas JSON). Versiones del protocolo: 2026-07-28 y versiones anteriores con handshake (2025-11-25, 2025-06-18, 2025-03-26).

La autenticación se hace de una de estas dos formas:

  • OAuth — Los conectores como Claude y ChatGPT abren la página de inicio de sesión y autorización de AutoAiSeo al añadir la dirección; no se necesita clave de API. En el panel, ve a Aplicaciones conectadas: desde ahí puedes eliminar la conexión.
  • Clave de API — en clientes como Cursor, Claude Code o VS Code, enviando Authorization: Bearer rk_live_… como cabecera.

Claude

Ajustes → Conectores → Añadir conector personalizado: pega la dirección MCP como URL y haz clic en Conectar.

ChatGPT

Ajustes → Aplicaciones y conectores → Configuración avanzada: activa el modo desarrollador y en Crear conector indica la dirección MCP y elige la autenticación OAuth.

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "autoaiseo": {
      "url": "https://autoaiseo.example/mcp",
      "headers": { "Authorization": "Bearer rk_live_…" }
    }
  }
}

Claude Code

claude mcp add --transport http autoaiseo https://autoaiseo.example/mcp --header "Authorization: Bearer rk_live_…"

Herramientas MCP

Los resultados de las herramientas incluyen un breve resumen en texto y los mismos datos en formato estructurado (structuredContent). Las herramientas de escritura solo aparecen si se concede permiso de escritura.

HerramientaQué hace
list_sitesSitios y métricas resumidas, más el ID que necesitan las demás herramientas: site_id.
site_overviewPerfil del sitio, métricas, número de artículos, resumen de la red de backlinks.
site_progressInforme de progreso de un periodo (inicio frente a ahora, hitos).
list_articlesArtículos; filtro por estado y texto, paginados.
get_articleContenido del artículo (markdown/HTML), puntuaciones, enlaces, FAQ.
list_keywordsPalabras clave y los artículos que las cubren.
backlink_reportInforme de la red de backlinks y enlaces recibidos.
services_historyDesglose del trabajo realizado por AutoAiSeo.
add_article_idea yazmaAñade una idea de artículo al plan de contenidos.
generate_article yazmaEncarga la redacción del artículo (descuenta de la cuota).
publish_article yazmaPublica el artículo.

OAuth (para desarrolladores de clientes MCP)

AutoAiSeo incluye un pequeño servidor de autorización OAuth 2.1 conforme a la especificación de autorización de MCP.

Metadatos del recurso protegido/.well-known/oauth-protected-resource (y con /mcp añadido al final)
Metadatos del servidor de autorización/.well-known/oauth-authorization-server
Registro de clientesClient ID Metadata Documents (https client_id) o registro dinámico: POST /oauth/register (solo clientes públicos, token_endpoint_auth_method: none)
AutorizaciónGET /oauth/authorize — response_type=code, PKCE S256 zorunlu, resource (RFC 8707), en la respuesta iss (RFC 9207)
ClavePOST /oauth/token — authorization_code y refresh_token
CancelarPOST /oauth/revoke (RFC 7009)
Alcancesread, write (escritura incluye lectura). El usuario elige el nivel en la pantalla de consentimiento.
  • Las URL de redirección deben ser https o localhost/127.0.0.1 y deben coincidir exactamente (en las direcciones de loopback el puerto es libre).
  • El código de autorización es válido durante 2 minutos y de un solo uso; un segundo uso revoca todos los tokens de esa conexión.
  • El token de acceso es válido durante 1 hora y el de actualización, 30 días. Los tokens de actualización cambian con cada uso; reutilizar un token de actualización antiguo cierra la conexión.
  • Los tokens de acceso solo se emiten para el servidor MCP; la API REST requiere una clave de API personal.
  • Si el alcance es insuficiente, se devuelven 403 y WWW-Authenticate: Bearer error="insufficient_scope", scope="read write" como respuesta.

Privacidad

El registro de actividad de la API que ves en el panel solo contiene el método, la ruta, el código de estado, la duración, el prefijo visible de la clave (o el nombre de la aplicación OAuth) y la hora. No se registran los contenidos de solicitudes y respuestas ni las direcciones IP; se conservan las últimas 1.000 solicitudes de cada cuenta.