API v1 · incluída no Pro e no Agência
A API do SEOClave
Dados reais e atuais do Google (volume, CPC, dificuldade, intenção, o top 10 e em que posição aparece cada site) nos seus scripts, planilhas, n8n, Make ou no seu ChatGPT/Claude. O que a sua IA não pode inventar: números com data e fonte.
- Sem custo extra: gasta os mesmos créditos que o site.
- O repetido é grátis por 30 dias (o top 10, 7 dias).
- Se falhar ou vier vazio, não é cobrado.
- Limites que protegem você de um script com erro.
Especificação OpenAPI: /api/v1/openapi.json
Comece em 2 minutos
- Entre na sua conta e abra API (no menu).
- Clique em Criar chave e copie: ela só aparece uma vez.
- Teste (não gasta créditos):
curl https://seoclave.com/api/v1/account/ \ -H "Authorization: Bearer sc_SUA_CHAVE"
{
"plan": "Pro",
"balance": 150,
"plan_expires": "2026-12-02T14:00:00+00:00",
"limits": { "per_minute": 10, "requests_per_day": 1000, "credits_per_day": 50 },
"today": { "requests": 1, "credits": 0 }
}Autenticação
Toda requisição leva o cabeçalho Authorization: Bearer sc_…. A chave nunca vai na URL (ficaria em históricos e logs) e não funciona a partir da sessão do site. Trate-a como uma senha: quem a tiver gasta os seus créditos. Você pode ter até 3 e revogar qualquer uma na hora; quando cria uma, avisamos por e-mail.
Limites por plano
Por conta, somando todas as suas chaves. São obrigatórios: protegem os seus créditos e o serviço de todos.
| Pro | Agência | |
|---|---|---|
| Requisições por minuto | 10 | 20 |
| Requisições por dia | 1.000 | 2.000 |
| Créditos por dia pela API | 50 (você pode baixar) | 100 (você pode baixar) |
| Chaves ativas | 3 | 3 |
Toda resposta traz X-RateLimit-Limit e X-RateLimit-Remaining (deste minuto); se passar, a resposta é 429 com Retry-After em segundos. O que é recusado por limite não é cobrado.
Rotas
GET/account/grátis
POST/keywords/estimate/grátis
Quantos créditos uma consulta custaria, sem fazê-la. Mesmo corpo que /keywords/.
POST/keywords/gasta créditos
A consulta. Campos:
| Campo | O que é |
|---|---|
mode | ideas (palavras de um tema) · suggestions (cauda longa) · volume (medir a sua lista) · serp (o top 10 de hoje) · ranked_keywords (palavras pelas quais um domínio aparece) |
query | A palavra, o tema, o domínio ou a sua lista (uma por linha) |
country | br, us, es, mx, fr… e toda a América Latina (padrão us) |
language | es, en, pt (só com br) ou fr. Padrão: o idioma do país (pt para br) |
limit | Linhas no máximo, até 1.000 (padrão 200). Mais linhas, mais créditos |
max_credits | O máximo que você aceita gastar nesta consulta. Se custar mais, não é feita nem cobrada |
refresh | true = dados novos mesmo que você já tenha pago (cobra de novo; é ignorado se você pagou há menos de 24 h) |
curl https://seoclave.com/api/v1/keywords/ \
-H "Authorization: Bearer sc_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{"mode": "ideas", "query": "advogado trabalhista", "country": "br", "limit": 50, "max_credits": 1}'{
"id": 812, "mode": "ideas", "cached": false, "empty": false,
"result": { "rows": [
{ "keyword": "advogado trabalhista perto de mim", "volume": 9900, "cpc": 18.4,
"difficulty": 31, "intent": "commercial", "trend": [ … ] }
] },
"credits": 1, "balance": 149, "notices": []
}GET/keywords/{id}/grátis
GET/projects/grátis
GET/projects/{id}/grátis
GET/projects/{id}/tracking/grátis
Quanto custa
| Consulta | Créditos |
|---|---|
| Top 10 de uma palavra (serp) | 1 |
| ideas, suggestions ou ranked_keywords com 50 linhas | 1 |
| … com 200 linhas | 2 |
| … com 500 linhas | 4 |
| … com 1.000 linhas | 7 |
| volume: lista de até 66 palavras | 1 |
| volume: até 230 palavras | 2 |
| volume: 700 palavras | 5 |
| O que você já pagou nos últimos 30 dias | Grátis |
Como não queimar créditos
- Sempre use
max_credits. Se o seu script montar mal uma requisição, não gasta mais do que isso. - Peça só as linhas que vai usar.
limit: 50custa 1 crédito; 1.000 linhas, 7. - Meça em lote. Uma lista de 60 palavras em
volumecusta 1 crédito; 60 requisições soltas, 60. - Não use
refreshem loops. O repetido já é grátis por 30 dias; e se atualizar antes de 24 h, devolvemos o que você tem sem cobrar. - Guarde o
id. Ler de novo/keywords/{id}/é grátis. - Baixe o seu limite diário em API enquanto testa.
- Diante de um 429, espere o que disser o
Retry-After: tentar de novo na hora não adianta.
Erros
Sempre {"error": {"code": "…", "message": "…"}}. O code não muda: decida com ele. A message é para a pessoa: vem no idioma do cabeçalho Accept-Language (pt, en, es ou fr) ou, se você não o enviar, no idioma da sua conta.
| HTTP | code | O que aconteceu |
|---|---|---|
| 401 | missing_key | Você não enviou o cabeçalho Authorization |
| 401 | invalid_key | A chave não existe ou foi revogada |
| 403 | plan_without_api | O seu plano não está vigente ou não inclui a API |
| 400 | invalid_request | O JSON ou algum campo não é entendido |
| 402 | insufficient_credits | Não há créditos suficientes para esta consulta |
| 402 | exceeds_max_credits | Custaria mais que o seu max_credits: não foi feita |
| 404 | not_found | Isso não existe na sua conta |
| 413 | request_too_large | A requisição passa de 32 KB |
| 429 | rate_limit_per_minute | Passou das requisições por minuto (veja Retry-After) |
| 429 | daily_request_limit | Passou das requisições do dia |
| 429 | daily_credit_limit | Passaria do seu limite de créditos do dia |
| 429 | too_many_failed_keys | Muitas chaves erradas da sua conexão: espere 10 minutos |
| 429 | service_daily_cap | O serviço chegou ao limite do dia; não foi cobrado |
| 502 | provider_error | O provedor de dados falhou; não foi cobrado |
| 503 | maintenance | Manutenção; não foi cobrado |
Se você usava os nomes em espanhol
Até 11 de novembro de 2026 a API tinha rotas e campos em espanhol. Eles continuam funcionando igual, com respostas e códigos em espanhol: você não precisa mudar nada. A mensaje dos erros segue a mesma regra da message: Accept-Language, senão o idioma da sua conta, senão espanhol. Para código novo, use os nomes em inglês.
| 2026-11-11 → | ← 2026-11-11 |
|---|---|
/account/ | /cuenta/ |
/keywords/ | /palabras/ |
/keywords/estimate/ | /palabras/presupuesto/ |
/keywords/{id}/ | /palabras/{id}/ |
/projects/ | /proyectos/ |
/projects/{id}/tracking/ | /proyectos/{id}/seguimiento/ |
mode · query · country · language | modo · texto · pais · idioma |
limit · max_credits · refresh | limite · max_creditos · refrescar |
suggestions · volume · ranked_keywords | sugerencias · volumen · nuestras |
Conector MCP: Claude, Cursor e mais
MCP é o padrão aberto com o qual os assistentes de IA usam ferramentas externas. Conecte o SEOClave e a sua IA consulta o Google sozinha quando a conversa precisa: «quantas pessoas pesquisam advogado em São Paulo?», «em que posição estou para bota de couro?». Usa a mesma chave, gasta os mesmos créditos e respeita os mesmos limites (só contam as consultas, não a saudação nem a lista de ferramentas). Só gastam créditos a pesquisa de palavras (50 linhas = 1 crédito; repetir em 30 dias é grátis) e o top 10 (1 crédito); orçamento, auditoria, robots.txt, DNS, redirecionamentos e os seus projetos são grátis.
Endereço do conector: https://seoclave.com/api/v1/mcp
claude mcp add --transport http seoclave https://seoclave.com/api/v1/mcp \ --header "Authorization: Bearer sc_SUA_CHAVE"
{
"mcpServers": {
"seoclave": {
"url": "https://seoclave.com/api/v1/mcp",
"headers": { "Authorization": "Bearer sc_SUA_CHAVE" }
}
}
}| Ferramenta | O que faz | Créditos |
|---|---|---|
| account | O seu plano, saldo, limites e uso de hoje | Grátis |
| estimate_cost | Quanto custaria uma consulta de palavras, sem fazê-la | Grátis |
| keyword_research | Palavras-chave: volume, CPC, dificuldade, intenção e tendência | 50 linhas = 1 crédito (repetir em 30 dias, grátis) |
| google_top10 | Top 10 do Google hoje, com o índice de oportunidade | 1 crédito |
| saved_search | Abrir uma busca que você já pagou | Grátis |
| list_projects | Os seus projetos | Grátis |
| get_project | Um projeto com as suas palavras: volume, posição e estado | Grátis |
| rank_tracking | Histórico semanal de posições (1-30) | Grátis |
| site_audit · get_audit | Auditoria SEO de um site e o relatório (robôs de IA também) | Grátis (limite diário de auditorias) |
| check_robots_txt | Testar o robots.txt com as regras do Google | Grátis |
| check_dns | DNS, e-mail (SPF, DMARC) e www | Grátis |
| check_redirects | Redirecionamentos, loops e variantes http/www | Grátis |
claude.ai (web e celular) e Claude Desktop: com um botão
- No claude.ai, abra Configurações → Conectores → Adicionar conector personalizado.
- Nome: SEOClave. Endereço:
https://seoclave.com/api/v1/mcp. - Autenticação: entrar com OAuth, usando a identidade publicada do Claude ou o registro automático (os dois funcionam). Sem cabeçalhos.
- Clique em Conectar: levamos você ao SEOClave, você entra e clica em Permitir. Sem copiar chaves.
ChatGPT
- Ative o modo desenvolvedor em Configurações → Apps e conectores → Avançado (conforme o seu plano do ChatGPT).
- Crie um conector com o endereço
https://seoclave.com/api/v1/mcpe autenticação OAuth. - Conecte: levamos você ao SEOClave, você entra e clica em Permitir.
Outros assistentes que aceitam conectores MCP com login (OAuth) se conectam do mesmo jeito. Você vê e desconecta em API → Conexões.
Conecte com a sua IA e as suas ferramentas
- ChatGPT (GPT personalizado): em Ações, importe o esquema de
https://seoclave.com/api/v1/openapi.jsone escolha autenticação «API Key» tipo «Bearer» com a sua chave. O seu GPT poderá medir palavras e ver o top 10 de hoje sozinho. - n8n ou Make: um nó HTTP Request com o cabeçalho
Authorization: Bearer sc_…. - Claude e outros assistentes: com o conector MCP, a sua IA consulta o SEOClave sozinha.
import requests
r = requests.post("https://seoclave.com/api/v1/keywords/",
headers={"Authorization": "Bearer sc_SUA_CHAVE"},
json={"mode": "volume", "query": "sapatos\nbota de couro\nsandálias", "country": "br", "max_credits": 1},
timeout=60)
r.raise_for_status()
for row in r.json()["result"]["rows"]:
print(row["keyword"], row["volume"], row["cpc"])const r = await fetch("https://seoclave.com/api/v1/keywords/", {
method: "POST",
headers: { Authorization: "Bearer sc_SUA_CHAVE", "Content-Type": "application/json" },
body: JSON.stringify({ mode: "serp", query: "advogado em são paulo", country: "br", max_credits: 1 }),
});
const data = await r.json();
if (!r.ok) throw new Error(data.error.code);
console.log(data.result.organic.slice(0, 3));Dúvidas ou falta algo? Escreva pela central de ajuda. Ao usar a API você aceita os termos.