API REST + servidor MCP
API de Relatório SEO para
Desenvolvedores e Agentes IA
Crie relatórios via REST, faça polling até a conclusão e leia o mesmo relatório salvo que sua equipe vê no site. A mesma chave de API do seu plano pago conecta qualquer agente compatível com MCP.
Modelo de acesso
O acesso à API é vinculado à conta e protegido por chave. Escolha um plano, crie uma chave de API na sua conta, e todo novo site que você executar através da API usará os créditos do seu plano, exatamente como faria no site. Os créditos são redefinidos no primeiro dia de cada mês (UTC) e nunca são acumulados.
Sessões do site, chamadas API e sessões de agente lidas do mesmo estado de relatório salvo.
Crie um relatório, faça polling para status, então leia os resultados completos do mesmo objeto.
Endpoints disponíveis
/api/v1/reports/previewCrie uma pré-visualização de pontuação para integrações de parceiros em um plano pago.
/api/v1/reportsCrie um novo relatório ou reutilize um que já exista. Adicione "forceRerun": true para escanear o site novamente.
/api/v1/reports/:idObtenha o status mais recente do relatório e seções.
/api/v1/reports/:id/resultLeia os resultados completos do relatório.
/api/v1/reports/:id/download?format=jsonExporte o payload do relatório como JSON para integrações programáticas.
Quickstart: um relatório SEO a partir do curl
Três solicitações cobrem todo o fluxo, usando uma chave de API do seu plano pago. A primeira cria o relatório, a segunda faz polling até que seu status não esteja mais em fila ou em execução, e a terceira exporta-o. Um novo site usa um crédito; executar um site para o qual você já tem um relatório novamente não usa um crédito.
export SEOREPORT_API_KEY="sr__live_your_api_key"
# Send the key as a header file so it never sits in curl's argv, where ps shows
# it to every local user. printf is a shell builtin, so it spawns no process.
auth() { printf 'Authorization: Bearer %s\n' "$SEOREPORT_API_KEY"; }
# 1. Create a report and keep its job ID
JOB_ID=$(curl -s -X POST https://seoreport.dev/api/v1/reports \
-H @<(auth) \
-H "Content-Type: application/json" \
-d '{"url": "example.com"}' | jq -r '.report.jobId')
# 2. Poll until the report is no longer queued or running
while :; do
STATUS=$(curl -s "https://seoreport.dev/api/v1/reports/$JOB_ID" \
-H @<(auth) | jq -r '.report.status')
case "$STATUS" in queued|running) sleep 3 ;; *) break ;; esac
done
echo "status: $STATUS"
# 3. Export the finished report (format=pdf, md and txt also work)
curl -s "https://seoreport.dev/api/v1/reports/$JOB_ID/download?format=json" \
-H @<(auth) -o report.jsonO que a API de relatórios de SEO retorna
Cada relatório concluído é exportado como um único documento JSON: a pontuação geral e sua faixa, uma pontuação por área, quantas páginas foram analisadas, os problemas em aberto por gravidade e cada descoberta na ordem de correção, com por que ela importa, como corrigi-la, como verificar a correção e as evidências e páginas que a sustentam. Markdown, texto e PDF são gerados a partir do mesmo diagnóstico.
{
"exportVersion": 1,
"jobId": "3f6c2a1e-8d4b-4c7a-9e21-5b0d7f4a6c18",
"targetUrl": "https://example.com",
"status": "completed",
"isSnapshotReady": true,
"auditedAt": "2026-10-14T09:12:41.000Z",
"locale": "en",
"score": { "overall": 72, "band": "stable" },
"areas": [
{ "id": "access_crawl", "name": "Crawl & Index", "score": 61 },
{ "id": "metadata_onpage", "name": "On-Page SEO", "score": 78 },
{ "id": "security", "name": "Security", "score": 84 }
],
"pagesAnalyzed": 24,
"openIssues": { "critical": 0, "high": 2, "medium": 5, "low": 3, "total": 10 },
"findings": [
{
"rank": 1,
"title": "Render parity mismatch",
"status": "fail",
"severity": "high",
"area": { "id": "access_crawl", "name": "Crawl & Index" },
"whyItMatters": "Raw HTML and rendered DOM should tell the same SEO story so crawlers and AI systems do not see conflicting versions of the page.",
"fix": "Ensure raw HTML and rendered DOM contain the same critical SEO elements (title, H1, canonical, meta description, structured data). If content is injected by JavaScript, move it to server-side rendering so crawlers see it immediately.",
"verification": [
"Recheck these recorded examples: https://example.com/pricing. Method: compare the raw HTML with the rendered DOM. Previously observed: H1 present only after rendering",
"Expected after the change: the same critical elements in both. Obtain a fresh capture and compare the same check and URLs; a changed sample alone does not verify a fix."
],
"evidence": ["Raw HTML and rendered DOM were compared for critical elements."],
"pages": ["https://example.com/pricing"]
}
]
}Erros e limites
Cada recusa abaixo informa o seu código. Ao tratá-los, um script nunca tenta de novo às cegas.
| 402 | PAYMENT_REQUIRED | Não há um plano pago por trás da solicitação: a chave está ausente, é inválida ou foi revogada, ou a conta não tem um plano ativo. Sem chave, a resposta é 402, não 401. |
| 402 | REPORT_CREDITS_EXHAUSTED | Os créditos de sites novos deste mês acabaram. Analisar de novo um site do qual você já tem um relatório continua funcionando, e os créditos são renovados no primeiro dia de cada mês (UTC). |
| 429 | FRESH_RUN_LIMIT | Mais de 30 execuções novas (forceRerun) em uma hora para uma conta. Aguarde o tempo indicado no cabeçalho Retry-After. |
| 200 | status: failed | dead_lettered | O relatório não pôde ser concluído. GET /api/v1/reports/:id retorna error.code, error.message e error.retryable quando a causa foi registrada; tente de novo apenas se retryable for true. |
| 200 | pollAfterMs | Quanto esperar antes de consultar o status de novo; 0 quando o relatório estiver concluído. |
Guias de configuração e receitas
Páginas passo a passo para conectar um agente de IA via MCP, chamar a API a partir do código e comparar APIs de SEO. Em inglês.
Conectar um agente de IA (MCP)
- Connect SEOReport to Claude Code: MCP setup for SEO audits
- Connect SEOReport to Cursor: MCP setup for SEO audits
- Connect SEOReport to VS Code: MCP setup for GitHub Copilot
- Connect SEOReport to Windsurf (Devin Desktop): MCP setup
- Connect SEOReport to OpenAI Codex CLI: MCP setup for SEO audits
- Connect SEOReport to Gemini CLI: MCP setup for SEO audits
- Connect SEOReport to Claude Desktop: MCP setup for SEO audits
Chamar a API a partir do código
API de monitoramento SEO
Um domínio registrado para monitoramento é reauditado a cada semana. Quando algo muda, o endereço de alerta recebe um e‑mail: um novo achado crítico ou de alta severidade, um achado crítico resolvido, ou uma mudança para uma faixa de pontuação diferente. Uma semana sem mudança não envia nada.
/api/v1/monitorsInicia o monitoramento semanal de um domínio; “enabled”: false pausa-o.
/api/v1/monitorsLista os domínios que esta conta monitora.
/api/v1/monitors?url=Interrompe o monitoramento de um domínio e exclui seus resultados armazenados.
# Uses the auth() helper from the quickstart above.
# Re-audit a domain every week and email [email protected] when it changes
curl -X PUT https://seoreport.dev/api/v1/monitors \
-H @<(auth) \
-H "Content-Type: application/json" \
-d '{"url": "example.com", "alertEmail": "[email protected]"}'
# List monitored domains
curl https://seoreport.dev/api/v1/monitors \
-H @<(auth)
# Stop monitoring (pass the host the list returns)
curl -X DELETE "https://seoreport.dev/api/v1/monitors?url=example.com" \
-H @<(auth)Monitoramento está incluído com planos pagos e não consome créditos de relatório.
Cliente Oficial TypeScript
Um cliente tipado para a API REST. Autentique com a chave de API do seu plano, então crie, faça polling e exporte relatórios do TypeScript.
Linha de Comando
Execute relatórios do seu terminal com sua chave de API. Uma instalação global.
npm install -g @seoreport/clientServidor MCP — a mesma API, a mesma chave
Aponte qualquer cliente compatível com MCP para https://seoreport.dev/mcp e autentique-se com a mesma chave API Bearer que usa no REST. As ferramentas de relatório e de conta são anunciadas na conexão, então um agente pode executar uma auditoria e ler os achados sem código intermediário.
{
"mcpServers": {
"seoreport": {
"url": "https://seoreport.dev/mcp",
"headers": {
"Authorization": "Bearer sr__live_your_api_key"
}
}
}
}seoreport_create_reportInicie um relatório para uma URL e receba um ID de trabalho.
seoreport_get_report_statusVerifique o trabalho até o relatório ficar pronto.
seoreport_get_reportLeia o relatório concluído com a pontuação e os achados.
seoreport_list_reportsListe os relatórios da conta.
seoreport_get_report_downloadObtenha uma URL de download em JSON, Markdown, texto ou PDF.
seoreport_get_accountConsulte o plano da conta, os créditos restantes e a data de renovação.
O pagamento devolve um link para abrir no navegador em vez de cobrar diretamente: um agente pode iniciá-lo, só uma pessoa pode pagar. Cancelar um plano, gerenciar chaves de API e excluir a conta continuam no seu painel.
Pronto para construir?
Escolha um plano, crie uma chave API e comece a integrar relatórios SEO em seu produto.