---
title: "Google Search Console export limits"
description: "Choose between report downloads, API pagination, and BigQuery. Keep the 1,000-row report cap separate from API response size and daily data limits."
canonical_url: "https://gscdump.com/learn-google-search-console/limits/export-row-limits"
last_updated: "2026-09-11"
---

For a one-off spreadsheet, start with the report's **Export** button. Google limits report downloads to **1,000 representative rows**, while reported totals can include omitted rows. The [export documentation](https://support.google.com/webmasters/answer/12919797?hl=en) lists Google Sheets, Excel, and CSV formats.

If you need more detail, choose the method before building a workaround.

## Choose an extraction method

| Method               | Best fit                                  | Boundary to keep in mind                                   |
| -------------------- | ----------------------------------------- | ---------------------------------------------------------- |
| Report download      | A quick review of the displayed data      | Up to 1,000 representative rows.                           |
| Search Analytics API | Repeatable extracts and custom dimensions | Up to 25,000 rows per response; source limits still apply. |
| BigQuery bulk export | An ongoing bulk dataset                   | Starts with its first export, without earlier history.     |

Sources: [report downloads](https://support.google.com/webmasters/answer/12919797?hl=en), [API request reference](https://developers.google.com/webmaster-tools/v1/searchanalytics/query), and [bulk export setup](https://support.google.com/webmasters/answer/12917675?hl=en).

If your question is why a table doesn't add up to the chart, start with [missing rows and totals](/learn-google-search-console/limits/1000-row-limit).

## Separate response size from available data

Set `rowLimit` to `25000` for the largest API response. To retrieve another page, increase the zero-based `startRow` offset while keeping the rest of the request unchanged. Google's [query reference](https://developers.google.com/webmaster-tools/v1/searchanalytics/query) documents these fields and warns that the API returns top rows, without guaranteeing every underlying row.

For example, suppose a request has **32,000 available rows**. This is an illustration, not a captured response:

| Request     | `startRow` | Rows returned in this example |
| ----------- | ---------: | ----------------------------: |
| First page  | 0          | 25,000                        |
| Second page | 25,000     | 7,000                         |

The short second page ends that extraction. It does not prove Google exposed every possible combination.

Google documents a separate maximum of [50,000 rows per data day, search type, and property](https://support.google.com/webmasters/answer/12919192?hl=en). That concerns the date represented by the data. It is different from the [request-rate and load quotas](/learn-google-search-console/api/rate-limits) applied while you call the API.

## Request the detail you actually need

Google recommends [daily queries for one data day at a time](https://developers.google.com/webmaster-tools/v1/how-tos/all-your-data). Its guide also warns that requesting page or query detail can drop some data.

For a country trend, don't add page and query dimensions merely because they're available. For page-level diagnosis, request pages deliberately and keep those results separate from an overall-total check.

Use the [API query guide](/learn-google-search-console/api/query-builder) for request construction. More pagination cannot recover data Google withheld.

## Consider bulk export for ongoing coverage

Google's [bulk export](https://support.google.com/webmasters/answer/12918484?hl=en) provides the performance data available to Search Console without exposing anonymized query text. It requires a different setup from an API download.

Compare [BigQuery and API-based history](/learn-google-search-console/limits/bigquery-alternative) before choosing: existing history and ongoing bulk coverage are different needs.

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
