Seomely

Monitoramento do índice do Google com histórico. Quais páginas estão indexadas, quais saíram e quando, e por que as demais não estão.

Documentação

API e MCP

URL base https://seomely.com/api

Tudo o que o painel mostra está disponível via REST e via MCP. Ambos usam a mesma chave de API e a mesma cota mensal, então há apenas uma credencial para gerenciar, em vez de duas.

Autenticação

Crie uma chave em /app/api-keys. Ela é exibida apenas uma vez e armazenada somente como hash, portanto não podemos recuperá-la para você.

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

Limites de taxa

As chamadas são medidas por mês, por conta, em REST e MCP juntos. Cada resposta traz a contagem atual:

x-api-calls-used: 412
x-api-calls-limit: 25000
  • Free — 1.000 chamadas por mês
  • Pro — 25.000 chamadas por mês
  • Agency — 250.000 chamadas por mês

Acima do teto, você recebe 429 quota_exceeded até o dia 1º. Não há limite por segundo nem restrição de rajada. Se você encontrar um, é um bug, não uma política.

Um limite separado que vale saber. O Google permite 2.000 inspeções de URL por propriedade por dia, e nós ficamos abaixo de 1.500 para nunca esgotar a cota que suas outras ferramentas compartilham. Isso determina a rapidez com que dados novos aparecem, e não é algo que uma chamada de API possa acelerar.

Endpoints

project aceita um domínio ou um ID de projeto, e pode ser omitido em endpoints GET para cobrir todas as propriedades que a chave pode ver. Parâmetros GET vão na query string; parâmetros POST vão em um corpo JSON.

GET /v1/investigate

Regressões, o fator que elas compartilham, e as páginas restantes classificadas por prioridade com motivos. Comece aqui.

Parâmetros: project, since_days (padrão 30)

GET /v1/projects

Propriedades que esta chave pode ver.

Parâmetros: nenhum

GET /v1/urls/unindexed

Tudo o que não está no índice, cada item com uma causa e se o envio ajuda.

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

GET /v1/urls/orphans

Apenas páginas sem links de entrada do seu próprio site.

Parâmetros: project, limit (100)

GET /v1/urls/status

Estado atual de uma URL.

Parâmetros: url (obrigatório)

GET /v1/urls/history

Todas as observações que temos de uma URL, das mais recentes para as mais antigas.

Parâmetros: url (obrigatório), limit (100)

GET /v1/regressions

Páginas que estavam indexadas e não estão mais.

Parâmetros: project, since_days (30)

GET /v1/stats

Totais de cobertura por propriedade.

Parâmetros: project

GET /v1/indexnow

Se o IndexNow está configurado e se o piloto automático está ativo.

Parâmetros: project

POST /v1/sitemaps/sync

Relê o sitemap agora.

Parâmetros: project (corpo)

POST /v1/indexnow/setup

Gera uma chave ou registra uma que você já hospeda.

Parâmetros: project, key (opcional)

POST /v1/indexnow/autopilot

Ativa ou desativa o envio noturno.

Parâmetros: project, enabled

POST /v1/urls/submit

Envia URLs para a rede IndexNow. Páginas em que o envio não ajuda são ignoradas e reportadas como ignoradas.

Parâmetros: project, urls[]

Erros

Todo erro tem o mesmo formato:

{ "error": { "code": "project_not_found", "message": "No connected property matches \"example.com\"." } }
  • 401 missing_key — Sem cabeçalho Authorization.
  • 401 invalid_key — A chave não existe.
  • 401 revoked_key — A chave foi revogada. Ela para de funcionar imediatamente.
  • 400 missing_url — Um endpoint que precisa de ?url= não recebeu um.
  • 400 missing_project — Um POST que precisa de uma propriedade não nomeou uma.
  • 404 project_not_found — Nenhuma propriedade conectada corresponde a esse domínio ou ID.
  • 404 unknown_endpoint — Nenhum endpoint nesse método e caminho.
  • 429 quota_exceeded — Teto mensal de chamadas atingido. Reinicia no dia 1º.
  • 500 internal_error — Culpa nossa. Nada foi cobrado da sua cota além da própria chamada.

Servidor MCP

HTTP transmissível em https://seomely.com/api/mcp, autorizado com o mesmo token bearer. Não há nada para instalar: é um servidor remoto, não um pacote.

Claude Code

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

Claude Desktop, Cursor ou qualquer cliente que aceite um arquivo de configuração

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

As ferramentas espelham os endpoints REST, com investigate_indexing como a primeira a usar: ela correlaciona regressões com sua causa compartilhada e retorna trabalho classificado, para que um agente não precise inferir a conexão a partir de chamadas separadas.

Um campo decide como você deve relatar resultados. Todo diagnóstico traz submission_helps. Quando é falso, a causa é conteúdo ou configuração, e enviar a URL novamente não pode mudar o resultado. Ferramentas que prometem indexação dependem de as pessoas não saberem disso. Por favor, não diga a alguém para reenviar uma página sobre a qual já informamos que o envio não ajudará.

Prioridades trazem um array why das observações específicas que as produziram. Não há pontuação composta em nenhum lugar desta API, então citar esses motivos é sempre mais preciso do que inventar uma explicação para um número.

Descoberta

  • /.well-known/mcp.json — cartão do servidor: endpoint, transporte, autenticação, lista de ferramentas
  • /llms.txt — o que este produto é, para agentes que leem o site