A API REST para ler o seu grafo, a pontuação e as recomendações — e para iniciar análises. Respostas em JSON, autenticadas com chaves de API.
URL base
Todos os endpoints estão sob o prefixo /v1 e são servidos apenas por HTTPS.
URL base
https://api.graphorank.com
Autenticação
Gere uma chave na página API e MCP da aplicação. As chaves têm o prefixogr_, são mostradas por inteiro apenas uma vez, na criação, e guardadas com hash. Envie a chave no cabeçalho X-Api-Key em cada pedido.
As chaves têm âmbitos: read (sempre concedido) cobre todos os endpoints GET, enquanto write é necessário para criar sites, iniciar análises e gerir agendamentos. A própria sessão da aplicação usa antes um JWT no cabeçalho Authorization: Bearer — as chaves de API destinam-se ao acesso programático.
Shell
# Create a key in the app under API & MCP — keys start with "gr_"
export GRAPHORANK_API_KEY="gr_..."
curl https://api.graphorank.com/v1/sites \
-H "X-Api-Key: $GRAPHORANK_API_KEY"
Endpoints
ENDPOINTDESCRIÇÃO
GET/v1/sitesLista os sites do seu espaço de trabalho.
GET/v1/scans/{scan_id}Consulte uma análise até o estado ser done e depois leia o respetivo grafo, pontuação e recomendações.
GET/v1/scans/{scan_id}/graphOs nós trazem a função (pillar | cluster | hub | money | orphan | noindex), os identificadores dos grupos estruturais e semânticos, PageRank, grau de entrada/saída, profundidade de cliques e indexabilidade.
Um site é um domínio raiz no seu espaço de trabalho. Adicione-o, comprove que é seu e depois analise-o. A titularidade usa um ficheiro well-known ou uma meta tag — o excerto exato com o token está em Primeiros passos.
Obtém um único site. A resposta tem a mesma forma de um item da lista de GET /v1/sites.
PARÂMETROTIPODESCRIÇÃO
site_idpath · uuidobrigatórioIdentificador do site.
POST/v1/sites/{site_id}/verify
Executa a verificação de titularidade com o método escolhido. A resposta inclui sempre o token do site, pelo que pode chamar este endpoint uma vez para o obter antes de publicar o ficheiro ou a meta tag.
PARÂMETROTIPODESCRIÇÃO
site_idpath · uuidobrigatórioIdentificador do site.
methodbody · stringobrigatórioMétodo de verificação: «file» (ficheiro well-known) ou «meta» (meta tag da página inicial).
{
"verified": true,
"method": "file",
"token": "9Kd2mQx7Ln4pTv8waZrGQg",
"detail": "token found at /.well-known/graphorank-verify.txt"
}
Análises
Uma análise executa o processo completo: rastreio, análise semântica, construção do grafo, pontuação. O estado avança por queued → crawling → embedding → scoring → done (ou failed, com um código de erro). As análises contam para a quota mensal do seu plano.
POST/v1/sites/{site_id}/scans
Inicia uma análise a pedido. Requer o âmbito write. Devolve 202 com a análise em fila; quando a quota mensal se esgota, recebe 402 quota_exceeded.
PARÂMETROTIPODESCRIÇÃO
site_idpath · uuidobrigatórioIdentificador do site.
render_modebody · stringOpcional: «http», «js» ou «auto». Omita para usar o valor por omissão — auto ativa a renderização de JS apenas quando o site precisa.
O grafo completo de nós e arestas de uma análise concluída, no mesmo formato que a vista interativa da aplicação consome. Os grafos grandes são servidos em páginas por cursor de 1000 elementos (primeiro os nós, depois as arestas): continue a pedir com o next_cursor devolvido até vir null. O objeto meta repete-se em cada página.
GET/v1/scans/{scan_id}/graph
Os nós trazem a função (pillar | cluster | hub | money | orphan | noindex), os identificadores dos grupos estruturais e semânticos, PageRank, grau de entrada/saída, profundidade de cliques e indexabilidade. As arestas são ligações internas.
PARÂMETROTIPODESCRIÇÃO
scan_idpath · uuidobrigatórioIdentificador da análise.
cursorquery · integerCursor devolvido pela página anterior. Por omissão é 0 (primeira página).
O GraphRank é uma referência de 0 a 100 da visibilidade de um site para os motores generativos. O endpoint devolve-o juntamente com as quatro pontuações por área mostradas na aplicação — estrutural, temática, GEO e técnica — e o objeto de detalhe que alimenta as explicações na aplicação. A metodologia por trás do número é proprietária e aplicada de forma idêntica a todos os sites.
GET/v1/scans/{scan_id}/score
GraphRank e as quatro pontuações por área de uma análise concluída.
PARÂMETROTIPODESCRIÇÃO
scan_idpath · uuidobrigatórioIdentificador da análise.
Correções priorizadas geradas a partir da análise, cada uma com uma gravidade (P0 bloqueante, P1 importante, P2 desejável), mensagens localizadas e um objeto meta com o URL afetado e contexto adicional.
GET/v1/scans/{scan_id}/recommendations
Lista as recomendações da análise, das mais graves para as menos graves.
PARÂMETROTIPODESCRIÇÃO
scan_idpath · uuidobrigatórioIdentificador da análise.
severityquery · stringFiltro opcional: «P0», «P1» ou «P2».
[
{
"id": "b7e3a9c1-5d2f-4e8b-a1c6-3f9d7e2b8a54",
"page_id": "9c2b1e07-4f6a-4d3e-b8a1-7c5e9f2d1b36",
"type": "orphan_page",
"severity": "P0",
"message_it": "Pagina orfana: nessun link interno la raggiunge. Collegala dalla sezione pertinente.",
"message_en": "Orphan page: no internal link reaches it and crawlers struggle to find it. Link it from the relevant section.",
"meta": { "url": "https://rovere-arredamenti.com/blog/cura-del-rovere" }
}
]
Histórico e diferenças
Acompanhe a evolução da pontuação ao longo das análises e compare duas delas para ver exatamente o que mudou — páginas adicionadas e removidas, órfãs, indexabilidade.
GET/v1/sites/{site_id}/history
Série temporal do GraphRank do site, um ponto por análise concluída, ordenada por data e hora.
PARÂMETROTIPODESCRIÇÃO
site_idpath · uuidobrigatórioIdentificador do site.
fromquery · date-timeApenas pontos nesta data e hora ISO 8601 ou posteriores.
toquery · date-timeApenas pontos nesta data e hora ISO 8601 ou anteriores.
Compara duas análises do mesmo site. Sem parâmetros, compara as duas análises concluídas mais recentes. score_delta e sub_deltas são null quando alguma das análises não tem pontuação.
PARÂMETROTIPODESCRIÇÃO
site_idpath · uuidobrigatórioIdentificador do site.
from_scanquery · uuidAnálise de base. Por omissão é a segunda análise concluída mais recente.
to_scanquery · uuidAnálise de destino. Por omissão é a análise concluída mais recente.
Uma análise recorrente por site, com relatório por e-mail no final. Disponível nos planos Pro e Agency — nos planos inferiores, estes endpoints devolvem 402 quota_exceeded com uma sugestão de mudança de plano.
POST/v1/sites/{site_id}/schedule
Cria ou atualiza o agendamento do site (upsert — um por site). Requer o âmbito write.
PARÂMETROTIPODESCRIÇÃO
site_idpath · uuidobrigatórioIdentificador do site.
freqbody · stringobrigatório«weekly» ou «monthly».
daybody · integerobrigatórioSemanal: 0–6, com segunda-feira = 0. Mensal: 1–28.
timebody · stringobrigatório«HH:MM» em 24 horas, UTC.
recipientsbody · string[]obrigatórioAté 10 endereços de e-mail que recebem o relatório.
Chaves ao nível do espaço de trabalho para acesso programático, com o prefixo gr_ e guardadas com hash. A chave em texto simples é devolvida apenas uma vez, na resposta de criação — guarde-a num gestor de segredos. Âmbitos: read (sempre incluído) cobre todos os endpoints GET; write é necessário para tudo o que altera estado.
GET/v1/api-keys
Lista as chaves do espaço de trabalho. Os segredos nunca são devolvidos depois da criação.
Revoga uma chave. Deixa de funcionar de imediato. Devolve 204 No Content.
PARÂMETROTIPODESCRIÇÃO
key_idpath · uuidobrigatórioIdentificador da chave.
Limites de pedidos e erros
Dois token buckets protegem a API: um por IP de cliente (aplicado antes da autenticação) e outro por espaço de trabalho (aplicado depois). Ao atingir um limite, a resposta é 429 com um cabeçalho Retry-After que indica quantos segundos deve esperar.
Os erros usam o formato application/problem+json — { type, title, status, detail, code }. Os erros de validação do pedido (422) devolvem a matriz padrão detail a apontar para os campos em causa.
402 · problem+json
{
"type": "about:blank",
"title": "Quota Exceeded",
"status": 402,
"detail": "monthly scan quota reached (6/6): upgrade your plan or wait for the next period",
"code": "quota_exceeded"
}
ESTADOCÓDIGOQUANDO
401unauthorizedCredenciais em falta ou inválidas (X-Api-Key ou JWT Bearer).
402quota_exceededQuota do plano atingida ou a funcionalidade exige um plano superior. Mude de plano ou aguarde o período seguinte.
403forbiddenOs âmbitos da chave não permitem esta chamada (por exemplo, é necessário write).
404not_foundO recurso não existe no seu espaço de trabalho — nunca vê dados de outros clientes.
422validation_errorCorpo ou parâmetros malformados; a resposta lista os campos em causa.
429rate_limitedDemasiados pedidos — respeite o cabeçalho Retry-After (segundos).
503service_unavailableUma dependência a jusante está indisponível. Tente novamente mais tarde.