Keyword Analysis API
API de análise de palavras-chave voltada para agentes, para pesquisa de SERP ao vivo, scraping de páginas e síntese de palavras-chave de SEO.
Documentação
keyword-analysis-api
API de análise de palavras-chave priorizando agentes, para pesquisa de SERP ao vivo, raspagem de páginas e síntese de palavras-chave.
Resumo
Este serviço foi projetado para LLMs e agentes no estilo MCP que precisam de:
- criar uma conta sem um fluxo tradicional de site
- verificar a propriedade de um e-mail com um código de uso único
- executar análise de palavras-chave ao vivo nos resultados do Google
- receber saída estruturada voltada para SEO, focada em contagem de palavras e densidade de palavras-chave
- adiar a configuração de cobrança até que o uso gratuito seja esgotado
O produto é majoritariamente headless. A interação humana só é necessária para:
- ler o código de verificação de e-mail
- concluir a configuração de cobrança hospedada no Stripe quando o uso gratuito for esgotado
Fluxo de Autenticação
-
POST /auth/create-accountCrie ou retome uma conta pendente para um endereço de e-mail. -
POST /auth/verify-accountEnvie o código de uso único enviado por e-mail. Em caso de sucesso, isso retorna um token de API. -
Use o token de API como:
Authorization: Bearer <token>X-API-Key: <token>
Conector MCP
- Endpoint MCP:
GET/POST /mcp - Metadados OAuth:
GET /.well-known/oauth-authorization-server - Autorização OAuth:
GET /oauth/authorize - Troca de token OAuth:
POST /oauth/token - Registro dinâmico de cliente:
POST /oauth/register
O servidor MCP expõe wrappers de ferramentas para:
- status da conta
- resumo de uso
- análise de palavras-chave na fila
- consulta e listagem de trabalhos
- configuração de cobrança
Endpoint Principal
POST /keyword-analysis/analyze
Coloque na fila um trabalho de análise de palavras-chave que irá:
- buscar resultados de SERP ao vivo do Bright Data
- raspar os principais resultados com o Jina Reader
- calcular a contagem de palavras-alvo sugerida
- pontuar candidatos a palavras-chave primárias e de suporte a partir do corpus das páginas ranqueadas
- recomendar a palavra-chave primária mais forte com base no ranking para a consulta original do usuário
- usar uma passagem de limpeza com LLM restrito para escolher as palavras-chave de suporte mais fortes entre os candidatos
- calcular metas de densidade de palavras-chave primárias e secundárias a partir do corpus das páginas ranqueadas
Entrada
{
"keyword": "ai teaching assistant",
"top_n_results": 5,
"include_page_content": false
}
Saída
Retorna:
keywordsuggested_word_counttotal_results_analyzedresultsanalysis.primary_keywordanalysis.primary_keyword_densityanalysis.secondary_keywords
Observações:
keywordé a consulta original do usuárioanalysis.primary_keywordé a palavra-chave primária recomendada com base no rankingresultscontém apenas as páginas realmente usadas na análise, e cada item incluianalysis_rank
Resumo do OpenAPI
Autenticação
POST /auth/create-accountPOST /auth/verify-accountGET /auth/account-statusGET /auth/usage-summary
Cobrança
POST /billing/start-billing-setupPOST /billing/stripe/webhooksGET /billing/setup/successGET /billing/setup/cancel
Análise de Palavras-chave
POST /keyword-analysis/analyze
Descoberta
GET /GET /mcpGET /.well-known/oauth-authorization-serverGET /llms.txtGET /.well-known/llms.txtGET /openapi.json
Endpoints de Conta e Cobrança
GET /auth/account-status
Obtenha o status verificado, o status de cobrança e a disponibilidade de busca gratuita.
GET /auth/usage-summary
Obtenha o uso gratuito, o uso pago, as buscas bem-sucedidas e as buscas com falha.
POST /billing/start-billing-setup
Retorne uma URL hospedada do Stripe para configuração do método de pagamento ou gerenciamento de cobrança.
POST /billing/stripe/webhooks
Endpoint de webhook do Stripe para atualizações de estado de cobrança.
Fluxos de Exemplo
1. Criar Conta
Solicitação:
{
"email": "user@example.com"
}
Resposta:
{
"pending_user_id": "pending_abcd1234",
"verification_required": true,
"expires_in_seconds": 600,
"delivery_method": "smtp"
}
Em desenvolvimento, delivery_method pode ser console e verification_code pode ser incluído diretamente.
2. Verificar Conta
Solicitação:
{
"pending_user_id": "pending_abcd1234",
"code": "123456"
}
Resposta:
{
"account_id": 1,
"email": "user@example.com",
"api_token": "kaa_xxxxx",
"billing_status": "unconfigured",
"free_searches_remaining": 25
}
3. Verificar Status da Conta
Resposta:
{
"account_id": 1,
"email": "user@example.com",
"email_verified": true,
"billing_configured": false,
"billing_status": "unconfigured",
"free_searches_remaining": 25,
"paid_usage_enabled": false,
"usage_this_month": 0
}
4. Executar Análise de Palavras-chave
Solicitação:
{
"keyword": "ai teaching assistant",
"top_n_results": 5,
"include_page_content": false
}
Formato da resposta:
{
"keyword": "auto body repair pearland tx",
"suggested_word_count": 550,
"total_results_analyzed": 4,
"results": [
{
"analysis_rank": 1,
"title": "Collision Repair in Pearland",
"url": "https://example.com/pearland-collision-repair",
"rank": 1,
"word_count": 612,
"scrape_error": null
}
],
"analysis": {
"primary_keyword": "collision repair pearland",
"primary_keyword_density": {
"keyword": "collision repair pearland",
"occurrence_count": 4,
"occurrences_per_result": 1.0,
"total_word_count": 2287,
"density_percentage": 0.17
},
"secondary_keywords": [
{
"keyword": "collision repair",
"occurrence_count": 13,
"occurrences_per_result": 3.25,
"total_word_count": 2287,
"density_percentage": 0.57
}
]
}
}
5. Iniciar Configuração de Cobrança
Resposta:
{
"billing_status": "unconfigured",
"url": "https://checkout.stripe.com/...",
"mode": "checkout_setup",
"stripe_customer_id": "cus_123"
}
Padrão de Resposta de Cobrança Necessária
Quando o uso gratuito é esgotado e a cobrança não está configurada, a API pode retornar HTTP 402 com um objeto de detalhe como:
{
"message": "Billing setup required",
"billing_url": "https://checkout.stripe.com/..."
}
Modelo de Cobrança
- As primeiras 25 buscas bem-sucedidas são gratuitas
- A cobrança só é necessária após o uso gratuito ser esgotado
- Buscas com falha não devem ser cobradas
- Buscas bem-sucedidas são medidas por solicitação concluída de análise de palavras-chave
Orientação para Agentes
- Se a criação de conta retornar um código de verificação em desenvolvimento, use-o diretamente
- Em produção, peça ao humano para verificar o e-mail em busca do código
- Se a análise retornar uma resposta de cobrança necessária, mostre a URL de cobrança hospedada ao usuário
- Prefira
top_n_results=5a menos que uma amostra competitiva maior seja necessária - Use
include_page_content=falsepor padrão para minimizar o tamanho do payload
Melhores Práticas para Agentes
- Trate
create-accounteverify-accountcomo um handshake de duas etapas - Não repita a verificação às cegas após um código errado; peça ao usuário para verificar o e-mail novamente
- Armazene o token de API retornado com segurança para chamadas futuras
- Em HTTP
402, pause o fluxo de análise e apresente a URL de cobrança hospedada ao humano - Repita falhas transitórias de upstream com moderação; evite rajadas repetidas de busca
- Não presuma que toda solicitação de SERP retornará o mesmo conjunto de rankings ao longo do tempo e da geografia
- Trate
analysis.primary_keywordcomo a meta recomendada ekeywordcomo a consulta original do usuário - Use
account-statusantes de solicitar cobrança ao usuário se você não tiver certeza se o uso gratuito ainda resta - Considere
usage-summarya fonte de verdade para mensagens de cota do lado do agente - Use 5 resultados por padrão para velocidade e custo, a menos que o usuário peça explicitamente uma análise mais profunda
- Se ocorrer raspagem parcial, mas uma análise válida for retornada, trate a solicitação como bem-sucedida, a menos que a API diga o contrário
Endpoints de Descoberta
GET /GET /llms.txtGET /.well-known/llms.txtGET /openapi.json
Observações
- Este serviço é otimizado para análise de palavras-chave rápida e estruturada, em vez de fluxos amplos de suíte de SEO
- Ele é pensado para ser mais fácil e barato de usar do que uma plataforma completa de SEO quando a única necessidade é pesquisa rápida de palavras-chave ao vivo