Seomely

Monitoreo del índice de Google con historial. Qué páginas están indexadas, cuáles se eliminaron y cuándo, y por qué el resto no.

Documentación

API y MCP

URL base https://seomely.com/api

Todo lo que muestra el panel está disponible a través de REST y de MCP. Ambos usan la misma clave de API y la misma cuota mensual, por lo que solo hay una credencial que gestionar en lugar de dos.

Autenticación

Crea una clave en /app/api-keys. Se muestra una sola vez y se almacena solo como un hash, por lo que no podemos recuperarla por ti.

curl https://seomely.com/api/v1/investigate \
    -H "Authorization: Bearer sk_live_..." \
    -d "project=example.com"

Límites de velocidad

Las llamadas se miden por mes, por cuenta, en conjunto entre REST y MCP. Cada respuesta incluye el contador en curso:

x-api-calls-used: 412
x-api-calls-limit: 25000
  • Gratis — 1,000 llamadas al mes
  • Pro — 25,000 llamadas al mes
  • Agencia — 250,000 llamadas al mes

Al superar el límite, recibes 429 quota_exceeded hasta el día 1. No hay límite por segundo ni restricción de ráfagas. Si encuentras uno, es un error, no una política.

Un límite aparte que vale la pena conocer. Google permite 2,000 inspecciones de URL por propiedad al día y nosotros nos mantenemos por debajo de 1,500 para no agotar la cuota que comparten tus otras herramientas. Eso determina la rapidez con la que aparecen los datos nuevos, y no es algo que una llamada a la API pueda acelerar.

Endpoints

project acepta un dominio o un id de proyecto, y puede omitirse en los endpoints GET para cubrir todas las propiedades que la clave puede ver. Los parámetros GET van en la cadena de consulta; los parámetros POST van en un cuerpo JSON.

GET /v1/investigate

Regresiones, el factor que comparten, y las páginas restantes ordenadas por prioridad con sus motivos. Empieza aquí.

Parámetros: project, since_days (por defecto 30)

GET /v1/projects

Propiedades que esta clave puede ver.

Parámetros: ninguno

GET /v1/urls/unindexed

Todo lo que no está en el índice, cada elemento con su causa y si el envío ayuda.

Parámetros: project, limit (100), orphans=true

GET /v1/urls/orphans

Solo páginas sin enlaces entrantes desde tu propio sitio.

Parámetros: project, limit (100)

GET /v1/urls/status

Estado actual de una URL.

Parámetros: url (obligatorio)

GET /v1/urls/history

Cada observación que tenemos de una URL, de la más reciente a la más antigua.

Parámetros: url (obligatorio), limit (100)

GET /v1/regressions

Páginas que estaban indexadas y ya no lo están.

Parámetros: project, since_days (30)

GET /v1/stats

Totales de cobertura por propiedad.

Parámetros: project

GET /v1/indexnow

Si IndexNow está configurado y si el piloto automático está activado.

Parámetros: project

POST /v1/sitemaps/sync

Vuelve a leer el sitemap ahora.

Parámetros: project (cuerpo)

POST /v1/indexnow/setup

Genera una clave o registra una que ya tengas alojada.

Parámetros: project, key (opcional)

POST /v1/indexnow/autopilot

Activa o desactiva el envío nocturno.

Parámetros: project, enabled

POST /v1/urls/submit

Envía URLs a la red IndexNow. Las páginas donde el envío no puede ayudar se omiten y se informan como omitidas.

Parámetros: project, urls[]

Errores

Cada error tiene la misma forma:

{ "error": { "code": "project_not_found", "message": "No connected property matches \"example.com\"." } }
  • 401 missing_key — No hay cabecera Authorization.
  • 401 invalid_key — La clave no existe.
  • 401 revoked_key — La clave fue revocada. Deja de funcionar de inmediato.
  • 400 missing_url — Un endpoint que necesita?url= no recibió una.
  • 400 missing_project — Un POST que necesita una propiedad no la nombró.
  • 404 project_not_found — Ninguna propiedad conectada coincide con ese dominio o id.
  • 404 unknown_endpoint — No hay endpoint en ese método y ruta.
  • 429 quota_exceeded — Se alcanzó el límite mensual de llamadas. Se restablece el día 1.
  • 500 internal_error — Es nuestra culpa. No se cobró nada contra tu cuota más allá de la propia llamada.

Servidor MCP

HTTP transmisible en https://seomely.com/api/mcp, autorizado con el mismo token portador. No hay nada que instalar: es un servidor remoto, no un paquete.

Claude Code

claude mcp add --transport http seomely https://seomely.com/api/mcp \
  --header "Authorization: Bearer sk_live_..."

Claude Desktop, Cursor o cualquier cliente que acepte un archivo de configuración

{
  "mcpServers": {
    "seomely": {
      "type": "http",
      "url": "https://seomely.com/api/mcp",
      "headers": { "Authorization": "Bearer sk_live_..." }
    }
  }
}

Las herramientas reflejan los endpoints REST, con investigate_indexing como la primera a la que acudir: correlaciona las regresiones con su causa compartida y devuelve trabajo ordenado, para que un agente no tenga que inferir la conexión a partir de llamadas separadas.

Un campo decide cómo debes informar los resultados. Cada diagnóstico lleva submission_helps. Cuando es falso, la causa es de contenido o configuración, y volver a enviar la URL no puede cambiar el resultado. Las herramientas que prometen indexación dependen de que la gente no sepa eso. Por favor, no le digas a alguien que reenvíe una página de la que ya te hemos dicho que el envío no ayudará.

Las prioridades llevan un array why de las observaciones específicas que las produjeron. No hay ninguna puntuación compuesta en esta API, por lo que citar esos motivos siempre es más preciso que inventar una explicación para un número.

Descubrimiento

  • /.well-known/mcp.json — tarjeta del servidor: endpoint, transporte, autenticación, lista de herramientas
  • /llms.txt — qué es este producto, para agentes que leen el sitio