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