---
title: "Search Console API e BigQuery: como passar do limite de 1.000 linhas"
url: "https://patrickperdigao.com.br/blog/search-console-api-bigquery"
description: O Search Console exporta só 1.000 linhas. Veja como usar a Search Console API (até 50 mil linhas por dia) e a exportação em massa para o BigQuery, com SQL pronto.
author: Patrick Perdigão
author_url: "https://patrickperdigao.com.br/"
published: 2026-10-14
updated: 2026-10-14
category: SEO Técnico
tags: Search Console, Search Console API, BigQuery, exportação em massa, SQL, Looker Studio, dados de SEO
reading_time: 9 min
---

# Search Console API e BigQuery: como passar do limite de 1.000 linhas

> O Search Console exporta só 1.000 linhas. Veja como usar a Search Console API (até 50 mil linhas por dia) e a exportação em massa para o BigQuery, com SQL pronto.

Por Patrick Perdigão · Publicado em 14 out 2026 · 9 min de leitura · Tema: [SEO Técnico](https://patrickperdigao.com.br/blog/tema/seo-tecnico.md)

## TL;DR

A interface do Search Console mostra e exporta no máximo 1.000 linhas por relatório. Há dois caminhos para ir além: a Search Console API, que devolve até 25 mil linhas por chamada e até 50 mil linhas por dia por tipo de busca, e a exportação de dados em massa para o BigQuery, que manda todos os dados de desempenho todo dia, menos as consultas anônimas. A API é melhor para puxar histórico e relatórios pontuais; o BigQuery, para análise contínua e sites grandes.

1. A exportação para o BigQuery não traz histórico: ela começa no dia em que é configurada. Para os 16 meses anteriores, use a API.
2. No BigQuery, a posição média é SUM(sum_top_position) / SUM(impressions) + 1, porque a posição começa em zero.
3. Configure a validade das partições e sempre filtre por data_date nas consultas, para controlar o custo.

## Por que o Search Console limita a 1.000 linhas?

**Porque a interface foi feita para leitura rápida, não para análise completa: cada relatório de desempenho mostra e exporta no máximo 1.000 linhas.** Para um site pequeno, isso basta. Para um site com milhares de páginas ou de consultas, 1.000 linhas são uma amostra do topo.

O problema aparece em tarefas comuns de SEO:

- **Encontrar a cauda longa:** as consultas com poucas impressões, que somadas costumam ser a maior parte do tráfego, ficam de fora.
- **Cruzar consulta e página:** a combinação das duas dimensões explode o número de linhas.
- **Analisar seções do site:** blog, categorias e produtos, cada um com centenas de URLs.
- **Guardar histórico:** o Search Console guarda 16 meses. O que passa disso some.

Há dois caminhos oficiais para ir além, e eles se complementam.

| | Search Console API | Exportação em massa para o BigQuery |
| --- | --- | --- |
| Volume | Até 25 mil linhas por chamada e 50 mil por dia, por tipo de busca | Todos os dados de desempenho, exceto as consultas anônimas |
| Histórico | Os últimos 16 meses | Só a partir da configuração, sem dados anteriores |
| Frequência | Quando você chamar | Automática, todo dia |
| Precisa programar? | Sim (ou uma ferramenta que use a API) | Não para exportar; SQL para analisar |
| Custo | Grátis, dentro das cotas | Armazenamento e consultas do BigQuery |
| Melhor para | Histórico, relatórios pontuais, integrações | Sites grandes e análise contínua |

## Como usar a Search Console API?

**Crie uma conta de serviço no Google Cloud, adicione o e-mail dela como usuário da propriedade no Search Console e chame o método `searchanalytics.query`, paginando de 25 mil em 25 mil linhas.** O mesmo método alimenta o relatório de desempenho da interface.

### Os limites que importam

- **Até 25 mil linhas por chamada**, controladas pelo parâmetro `rowLimit`.
- **Paginação pelo `startRow`:** repita a mesma consulta somando 25 mil ao `startRow`, até a resposta vir sem linhas.
- **Até 50 mil linhas por dia, por tipo de busca**, ordenadas por cliques. Para ir além, consulte dia a dia e tipo a tipo (`web`, `image`, `video`, `news`, `discover`).
- **Parte dos dados pode ser descartada** quando você agrupa por página e consulta ao mesmo tempo, segundo a documentação, para o cálculo terminar em tempo razoável.

### O passo a passo

1. **Crie um projeto** no Google Cloud e ative a Google Search Console API.
2. **Crie uma conta de serviço** e baixe a chave em JSON.
3. **Adicione o e-mail da conta de serviço** como usuário da propriedade, no Search Console, em Configurações > Usuários e permissões.
4. **Faça a consulta**, dia a dia, paginando.

Um exemplo em Python, que puxa consultas e páginas de um dia inteiro:

```python search_console.py
from google.oauth2 import service_account
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file(
    "chave.json", scopes=["https://www.googleapis.com/auth/webmasters.readonly"]
)
gsc = build("searchconsole", "v1", credentials=creds)

def puxar_dia(site, dia, tipo="web"):
    linhas, inicio = [], 0
    while True:
        resp = gsc.searchanalytics().query(siteUrl=site, body={
            "startDate": dia, "endDate": dia,
            "dimensions": ["query", "page"],
            "type": tipo,
            "rowLimit": 25000,
            "startRow": inicio,
        }).execute()
        lote = resp.get("rows", [])
        if not lote:
            return linhas
        linhas += lote
        inicio += 25000

dados = puxar_dia("sc-domain:seusite.com.br", "2026-10-01")
print(len(dados), "linhas")
```

Para uma propriedade de domínio, o `siteUrl` é `sc-domain:seusite.com.br`; para uma propriedade de prefixo de URL, é o endereço completo, com a barra no final.

> [!TIP] Puxe o histórico antes que ele expire
> A API acessa os últimos 16 meses. Se você vai configurar a exportação para o BigQuery, rode a API uma vez para guardar esse histórico em uma tabela separada. Depois disso, o BigQuery cuida do dia a dia.

## Como configurar a exportação em massa para o BigQuery?

**Prepare um projeto do Google Cloud com faturamento, dê permissão à conta de serviço do Search Console e ative a exportação em Configurações > Exportação de dados em massa.** A partir daí, o Google manda os dados de desempenho para o BigQuery todo dia, sem código.

1. **Projeto com faturamento:** o BigQuery precisa de uma conta de faturamento, mesmo que o uso fique dentro da faixa gratuita.
2. **Ative as APIs** BigQuery e BigQuery Storage, em APIs e serviços.
3. **Dê permissão à conta do Search Console:** em IAM e administrador, adicione `search-console-data-export@system.gserviceaccount.com` com as funções **Usuário de jobs do BigQuery** e **Editor de dados do BigQuery**.
4. **No Search Console**, abra Configurações > Exportação de dados em massa e informe o **ID do projeto** (não o número).
5. **Escolha o nome do conjunto de dados**, que sempre começa com `searchconsole`, e a **região**. A região não muda com facilidade depois.
6. **Confirme.** A primeira exportação chega em até 48 horas.

> [!WARNING] Dois cuidados que evitam dor de cabeça
> Não mude o esquema das tabelas criadas pela exportação: adicionar uma coluna, por exemplo, faz a exportação falhar. E defina a validade nas partições (6 ou 12 meses, por exemplo), nunca na tabela inteira, porque a validade da tabela apaga todos os dados de uma vez.

### O que chega no BigQuery

| Tabela | O que tem |
| --- | --- |
| `searchdata_site_impression` | Desempenho agregado por propriedade, com consulta, país, dispositivo e tipo de busca |
| `searchdata_url_impression` | Desempenho por URL, com as mesmas dimensões e a página |
| `ExportLog` | Registro das exportações que deram certo |

As colunas mais usadas: `data_date` (a data, no horário do Pacífico), `query`, `is_anonymized_query`, `url`, `country` (código do país com três letras, no padrão ISO 3166-1), `device`, `search_type`, `impressions`, `clicks` e `sum_top_position` ou `sum_position` (soma das posições, começando em zero).

## Que consultas SQL fazer primeiro?

**Comece pelas que a interface não responde: cauda longa completa, consultas por página e evolução por seção do site.** Troque `seu_projeto.searchconsole` pelo seu projeto e conjunto de dados.

### Posição média do jeito certo

A posição na exportação começa em zero, então a conta é a soma das posições dividida pelas impressões, mais um:

```sql
SELECT
  query,
  SUM(clicks) AS cliques,
  SUM(impressions) AS impressoes,
  SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr,
  SAFE_DIVIDE(SUM(sum_top_position), SUM(impressions)) + 1 AS posicao_media
FROM `seu_projeto.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-09-01' AND '2026-09-30'
  AND LOWER(search_type) = 'web'
  AND NOT is_anonymized_query
GROUP BY query
ORDER BY impressoes DESC
```

### Consultas quase na primeira página

Consultas entre as posições 8 e 20, com muitas impressões, são as mais fáceis de subir:

```sql
SELECT
  url,
  query,
  SUM(impressions) AS impressoes,
  SUM(clicks) AS cliques,
  SAFE_DIVIDE(SUM(sum_position), SUM(impressions)) + 1 AS posicao_media
FROM `seu_projeto.searchconsole.searchdata_url_impression`
WHERE data_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY)
  AND LOWER(search_type) = 'web'
  AND NOT is_anonymized_query
GROUP BY url, query
HAVING posicao_media BETWEEN 8 AND 20 AND impressoes > 100
ORDER BY impressoes DESC
```

### Desempenho por seção do site

Agrupe as URLs pelo primeiro diretório para comparar blog, produtos e categorias:

```sql
SELECT
  REGEXP_EXTRACT(url, r'^https?://[^/]+(/[^/]*)') AS secao,
  SUM(clicks) AS cliques,
  SUM(impressions) AS impressoes
FROM `seu_projeto.searchconsole.searchdata_url_impression`
WHERE data_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
GROUP BY secao
ORDER BY cliques DESC
```

O mesmo filtro por `LOWER(search_type) = 'discover'` mostra o desempenho no feed, que tem lógica própria, explicada no post sobre o [Google Discover](https://patrickperdigao.com.br/blog/google-discover).

> [!IMPORTANT] Sempre filtre por data_date
> As tabelas são particionadas por dia. Uma consulta sem filtro em `data_date` lê a tabela inteira e é cobrada por isso. Com o filtro, o BigQuery lê só as partições do período.

## Quanto custa?

**A exportação não é cobrada pelo Search Console; o BigQuery cobra armazenamento e consultas, e tem uma faixa gratuita mensal.** Para sites pequenos e médios, o uso costuma ficar dentro dela.

O que mantém a conta baixa:

- **Validade nas partições**, para não acumular anos de dados que ninguém consulta.
- **Filtro de data em toda consulta**, para ler só as partições necessárias.
- **Tabelas resumidas** para os painéis: em vez de o Looker Studio consultar a tabela bruta a cada abertura, agende uma consulta que gera uma tabela agregada por dia e conecte o painel nela.
- **Alerta de orçamento** no faturamento do Google Cloud, para saber se algo saiu do esperado.

## API, BigQuery ou os dois?

**Os dois, para quem leva dados a sério: a API para o histórico e integrações, o BigQuery para o dia a dia.** A escolha depende do tamanho do site e de quem vai usar os dados.

| Situação | Caminho |
| --- | --- |
| Site pequeno, relatório mensal | Interface do Search Console, com filtros |
| Precisa de mais de 1.000 linhas de vez em quando | Search Console API ou uma ferramenta que use a API |
| Site grande, muitas páginas e consultas | Exportação em massa para o BigQuery |
| Painel no Looker Studio com dados completos | BigQuery com tabelas resumidas |
| Quer os 16 meses anteriores à exportação | API, uma vez, salvando no BigQuery |

O relatório de IA do Search Console, que mostra as impressões nos AI Overviews e no Modo IA, tem regras próprias de leitura, explicadas no [guia do relatório de IA](https://patrickperdigao.com.br/blog/relatorio-de-ia-search-console).

## Quais erros evitar?

| Erro | O que fazer no lugar |
| --- | --- |
| Tirar a média da coluna de posição | `SUM(sum_top_position) / SUM(impressions) + 1` |
| Esperar histórico na exportação | Puxar os 16 meses anteriores pela API |
| Consultar sem filtro de data | Filtrar sempre por `data_date` |
| Validade na tabela inteira | Validade nas partições |
| Mudar o esquema das tabelas exportadas | Criar views ou tabelas novas para os ajustes |
| Painel lendo a tabela bruta | Tabela agregada, atualizada por consulta agendada |
| Somar as linhas sem cuidado | Agregar as métricas, porque a exportação traz chaves repetidas |

## Checklist

- [ ] Objetivo definido: histórico pontual (API) ou análise contínua (BigQuery)
- [ ] Conta de serviço adicionada como usuário da propriedade no Search Console (para a API)
- [ ] Projeto no Google Cloud com faturamento e as APIs BigQuery e BigQuery Storage ativas
- [ ] Funções de Usuário de jobs e Editor de dados do BigQuery para search-console-data-export@system.gserviceaccount.com
- [ ] Exportação em massa configurada em Configurações > Exportação de dados em massa
- [ ] Validade das partições definida (6 ou 12 meses, por exemplo)
- [ ] Histórico anterior puxado pela API e guardado em outra tabela
- [ ] Consultas sempre com filtro em data_date

## Perguntas frequentes

### Por que o Search Console mostra só 1.000 linhas?

É um limite da interface: cada relatório de desempenho mostra e exporta no máximo 1.000 linhas, como consultas ou páginas. Os dados completos existem, mas só saem pela Search Console API ou pela exportação de dados em massa para o BigQuery.

### Quantas linhas a Search Console API devolve?

Até 25 mil linhas por chamada, com paginação pelo parâmetro startRow. A documentação informa que a API expõe no máximo 50 mil linhas por dia, por tipo de busca (web, imagem, vídeo, notícias, Discover), ordenadas por cliques.

### A exportação para o BigQuery traz os dados antigos?

Não. A exportação em massa começa a partir do dia em que é configurada, e a primeira carga chega em até 48 horas. Para os dados anteriores, que o Search Console guarda por 16 meses, use a Search Console API.

### Quanto custa usar o BigQuery com o Search Console?

A exportação em si não é cobrada pelo Search Console, mas o BigQuery cobra armazenamento e consultas. O Google Cloud tem uma faixa gratuita mensal de armazenamento e de dados processados que costuma cobrir sites pequenos e médios. Filtrar as consultas por data e definir a validade das partições mantém o custo baixo.

### As consultas anônimas entram na exportação?

Não. Consultas raras são anonimizadas por privacidade: na exportação, elas aparecem com is_anonymized_query verdadeiro e a consulta vazia. As impressões e os cliques delas continuam somados nos totais.

## Fontes e referências

- [Google for Developers: Getting all your data from the Search Analytics API](https://developers.google.com/webmaster-tools/v1/how-tos/all-your-data)
- [Ajuda do Search Console: iniciar uma nova exportação de dados em massa](https://support.google.com/webmasters/answer/12917675?hl=pt-BR)
- [Ajuda do Search Console: diretrizes e referência das tabelas da exportação](https://support.google.com/webmasters/answer/12917991?hl=pt-BR)
- [Ajuda do Search Console: sobre a exportação de dados em massa](https://support.google.com/webmasters/answer/12918484?hl=pt-BR)

## Sobre o autor

Patrick Perdigão é especialista em seo e growth. Especialista de SEO na Omie, instrutor na Alura e professor na EducaSEO. Perfil completo: https://patrickperdigao.com.br/index.md

## Continue lendo

- [Relatório de IA do Search Console: como ler as impressões dos AI Overviews e do Modo IA](https://patrickperdigao.com.br/blog/relatorio-de-ia-search-console.md): O Search Console agora mostra impressões nos AI Overviews e no Modo IA. Veja o que o relatório mede, o que ele esconde e 5 análises para fazer hoje. (SEO Técnico, 14 out 2026)
- [Google Discover: o que é, como aparecer e como medir o tráfego](https://patrickperdigao.com.br/blog/google-discover.md): Entenda o que é o Google Discover, o que o seu site precisa para aparecer no feed, o que mudou no update de 2026 e como medir os resultados no Search Console. (SEO Técnico, 14 out 2026)
- [Cloudflare e os robôs de IA: o que mudou em 2026 e o que conferir no seu site](https://patrickperdigao.com.br/blog/cloudflare-robos-de-ia.md): Em 15/09/2026 o Cloudflare mudou o tratamento de robôs de IA. Entenda Search, Agent e Training e a opção que pode tirar o seu site do Google. (SEO Técnico, 12 out 2026)
