SEO
Acompanhe classificações de palavras-chave de busca local em uma grade geográfica, a posição dos concorrentes, e os insights e recomendações gerados por IA do Sydekick.
Retorna as palavras-chave monitoradas, a tendência mensal de classificação, a grade de classificação e cartões de estatísticas para um local. Passe keywordId para restringir a grade a uma única palavra-chave, ou month (YYYY-MM) para fixá-la em um mês específico em vez do relatório mais recente medido de cada palavra-chave.
Obter a visão geral de classificação de um local
/api/v1/seo/keywords{
"data": {
"keywords": [
{
"id": "cm_kw_abc123",
"keyword": "dentist near me",
"avgRank": 4.2,
"monthly": [
{
"month": "2026-01",
"rank": 5.1
},
{
"month": "2026-02",
"rank": 4.2
}
]
}
],
"months": [
{
"key": "2026-01",
"label": "Jan 2026",
"avgRank": 5.1
},
{
"key": "2026-02",
"label": "Feb 2026",
"avgRank": 4.2
}
],
"grid": [
{
"id": "cm_pt_1",
"row": 0,
"col": 0,
"lat": 30.2682,
"lng": -97.7441,
"rank": 3,
"excluded": false,
"water": false
}
],
"stats": {
"top3Pct": 44,
"top10Pct": 78,
"avgRank": 4.2
},
"statCards": {
"best": {
"keyword": "dentist near me",
"avgRank": 4.2
},
"worst": {
"keyword": "emergency dentist austin",
"avgRank": 9.6
},
"gainer": {
"keyword": "dentist near me",
"from": 5.1,
"to": 4.2
},
"dropper": {
"keyword": "family dentist",
"from": 3.8,
"to": 5.2
},
"notRankingCount": 1,
"noDataCount": 0
},
"center": {
"lat": 30.2672,
"lng": -97.7431
},
"includeWaterPoints": false
}
}Começa a monitorar uma ou mais palavras-chave na grade de classificação de busca local de um local, configurando o tamanho e o raio da grade na primeira vez em que o local é configurado. As palavras-chave são desduplicadas sem diferenciar maiúsculas/minúsculas e limitadas a 25 por local. Dispara uma varredura de classificação em segundo plano para cada palavra-chave recém-adicionada — consulte GET /api/v1/seo/keywords depois para ver os resultados chegarem.
Adicionar palavras-chave monitoradas a um local
/api/v1/seo/keywords{
"data": {
"keywords": [
{
"id": "cm_kw_abc123",
"keyword": "dentist near me"
}
]
}
}Para de monitorar uma palavra-chave e exclui seus relatórios de classificação armazenados.
Remover uma palavra-chave monitorada
/api/v1/seo/keywords{
"data": {
"removed": true
}
}Atualiza a configuração de medição da grade de um local: tamanho da grade, distância entre pontos, pontos excluídos, ou se os pontos de água contam nas estatísticas. Envie apenas os campos que deseja alterar. Os pontos de água são sempre coletados de qualquer forma — includeWaterPoints só controla se são contados e exibidos. O lado de leitura já é coberto por GET /api/v1/seo/keywords, cuja resposta já inclui includeWaterPoints.
Atualizar a configuração de grade de um local
/api/v1/seo/config{
"data": {
"config": {
"id": "cm_cfg_abc123",
"synupLocationId": "os_9f8e7d6c",
"clientLocationId": "cm_loc_1",
"agencyId": "cm_agency_1",
"placeId": "ChIJtXC2rwgF9YgRNh1YJHlA4vQ",
"centerLat": 30.2672,
"centerLng": -97.7431,
"gridSize": 5,
"distanceKm": 1.5,
"excludedPoints": [
{
"row": 4,
"col": 4
}
],
"generationStartedAt": null,
"lastRunStatus": "complete",
"lastError": null,
"includeWaterPoints": true,
"lastGeneratedAt": "2026-02-01T06:00:00.000Z",
"createdAt": "2026-01-10T09:00:00.000Z",
"updatedAt": "2026-02-05T10:00:00.000Z"
}
}
}Gera o relatório de classificação com identidade visual e seções configuráveis — a mesma ação "Baixar relatório" no aplicativo. Retorna HTML renderizado, não um PDF binário: a renderização em PDF acontece no navegador (nenhum renderizador Chrome headless é executado no servidor), então transformar isso em um arquivo PDF real fica por conta de quem chama, a mesma limitação que a própria interface do aplicativo tem. Diferente de POST /api/v1/seo/reports/generate, que apenas enfileira uma varredura da grade de classificação em segundo plano e não retorna documento algum.
Baixar um relatório de classificação com identidade visual
/api/v1/seo/reports{
"data": {
"html": "<style>#seo-report{width:100%;...}</style><div id=\"seo-report\"><section class=\"cover\"><h1>Ranking Analytics Report</h1><div class=\"biz\">Acme Dental — Downtown</div></section>...</div>",
"filename": "Acme_Dental_Downtown_RankingReport_Jan2026_Feb2026.pdf"
}
}Retorna uma linha de resumo por local que tem pelo menos um relatório de classificação, opcionalmente restrita a um cliente e/ou tags de local. Uma chave restrita a clientes específicos deve passar clientId.
Obter o resumo de classificação de todos os locais
/api/v1/seo/rollup{
"data": {
"count": 2,
"rows": [
{
"id": "cm_loc_1",
"locationName": "Acme Dental — Downtown",
"city": "Austin",
"avgRank": 4.2,
"top3Pct": 44,
"top10Pct": 78,
"bestKeyword": {
"keyword": "dentist near me",
"avgRank": 4.2
},
"tags": [
"priority",
"downtown"
]
}
]
}
}Retorna os negócios que dominam a grade de classificação deste local para sua palavra-chave monitorada mais recente, classificados por quanto da grade ocupam entre os 3 primeiros. Inclui seu próprio negócio (isYou) para comparação, e marca entradas já no seu registro de concorrentes monitorados com o ID do registro.
Obter o ranking de concorrentes de um local
/api/v1/seo/competitors{
"data": {
"count": 2,
"competitors": [
{
"id": "cm_comp_1",
"competitorId": "cm_competitor_1",
"name": "Acme Dental — Downtown",
"isYou": true,
"rating": 4.6,
"reviewCount": 210,
"avgRank": 4.2,
"top3Pct": 44,
"gridPoints": 25,
"category": "Dentist",
"website": "https://acmedental.example.com",
"keywordBreakdown": [
{
"keyword": "dentist near me",
"top3Pct": 60
}
],
"featureComparison": [
{
"feature": "Online booking",
"competitor": false,
"you": true
}
],
"hoursComparison": [
{
"day": "Monday",
"competitor": "9am–5pm",
"you": "8am–6pm"
}
]
}
]
}
}Retorna a classificação média mensal de cada concorrente no histórico de classificação monitorado deste local (até os últimos 12 meses medidos), para o gráfico de tendência de classificação. Inclui seu próprio negócio (isYou).
Obter tendências de classificação de concorrentes ao longo do tempo
/api/v1/seo/competitors/trends{
"data": {
"months": [
"2026-01",
"2026-02"
],
"competitors": [
{
"placeId": "ChIJtXC2rwgF9YgRNh1YJHlA4vQ",
"name": "Acme Dental — Downtown",
"isYou": true,
"monthly": [
5.1,
4.2
]
}
]
}
}Retorna os resultados de busca local capturados em uma única célula da grade para uma palavra-chave, em ordem de classificação.
Obter negócios classificados em um ponto da grade
/api/v1/seo/grid-point{
"data": {
"count": 1,
"businesses": [
{
"id": "cm_biz_1",
"rank": 3,
"name": "Acme Dental — Downtown",
"photoUrl": null,
"rating": 4.6,
"reviewCount": 210,
"category": "Dentist",
"address": "123 Main St, Austin, TX 78701",
"website": null,
"isYou": true
}
]
}
}Dispara uma nova extração em segundo plano da grade de classificação de busca local para um local e/ou uma palavra-chave monitorada específica. Isso é disparar-e-esquecer: a chamada retorna imediatamente após o job ser enfileirado, e o novo relatório chega de forma assíncrona — consulte GET /api/v1/seo/keywords (ou GET /api/v1/seo/competitors, etc.) depois para vê-lo.
Regenerar o relatório de grade de classificação de um local
/api/v1/seo/reports/generate{
"data": {
"generating": true
}
}