How to export more than 1,000 rows from Google Search Console
The Search Console interface exports at most 1,000 rows, with or without filters; to get more, use the Search Analytics API, the Looker Studio connector, or the bulk data export to BigQuery. The API returns up to 25,000 rows per request and pages further with startRow, up to a ceiling Google puts at 50,000 rows per day, per site, per search type — the same ceiling the Looker Studio connector has. The bulk data export to BigQuery has no such ceiling but starts on the day you set it up, with no history before that. None of the routes returns anonymized queries, the rare searches Google withholds for privacy; they are only ever counted in the chart totals. Each route is set out below with its limit, its cost and its setup.
Why the export stops at 1,000 rows
Google's own explainer, A deep dive into Search Console performance data filtering and limits, puts it plainly: the maximum you can export through the Search Console user interface is 1,000 rows. The report table is built for browsing, and the export button hands you the same table. Filters change which 1,000 rows you get, which is why filtering by page or country and exporting several times is the common workaround — and why it never adds up to the whole.
Route 1 — the Search Analytics API
The API is the direct route. Per Google's guide to getting all your data, a request returns at most 25,000 rows; you page by repeating the query with startRow increased by 25,000 until a page comes back empty. The method exposes a maximum of 50,000 rows per day per search type, sorted by clicks, so a large site's long tail beyond that is not reachable through the API at all.
What it costs: nothing in money, and a Google Cloud project, OAuth and a script to run it. Storing the results is up to you; the API only keeps 16 months of data.
Route 2 — the Looker Studio connector
Google's native Search Console connector for Looker Studio (renamed Data Studio in April 2026) reads through the same API, with the same 50,000-rows-per-day-per-search-type ceiling, according to Google's explainer. A table chart can be exported to CSV or Google Sheets from the report, which makes Looker Studio a no-code way past 1,000 rows. It is live, not stored: every report open re-queries Google. The Search Console to Looker Studio guide covers the two table types it offers.
Route 3 — bulk data export to BigQuery
Search Console's bulk data export sends all the performance data available to Search Console, except anonymized queries, into a BigQuery project every day — no 50,000-row ceiling. Setting it up takes a Google Cloud project with billing and BigQuery enabled; the first export arrives up to 48 hours later and covers only that day. For history before the setup date, Google points you back to the API or the reports.
What it costs: BigQuery storage and queries beyond the free tier. Google warns that data accumulates forever unless you set an expiration, and suggests partition expiration as the control.
Route 4 — a synced copy you can query
TableBI is a fourth shape: its Search Console connector pulls the query-and-page detail through the same API, 25,000 rows per request with startRow paging, into a table named search_console_raw, alongside site-level totals that include the clicks from anonymized queries. The first sync covers the last 90 days by default; your own agent, Claude Code for example, then queries it in read-only SQL.
# connect once; the first sync pages through the API for you tablebi connect gsc --site sc-domain:example.com # every query × page row for the latest 28 synced days, as CSV tablebi ask "SELECT query, page, SUM(clicks) AS clicks, SUM(impressions) AS impressions FROM search_console_raw WHERE date > (SELECT MAX(date) FROM search_console_raw) - 28 GROUP BY query, page ORDER BY clicks DESC" > gsc-query-page.csv # or ask Google directly, 25,000 rows at a time tablebi gsc query --site example.com --dims query,page --days 28 --limit 25000 tablebi gsc query --site example.com --dims query,page --days 28 --limit 25000 --start-row 25000
The same 50,000-row daily ceiling applies, because it is the API underneath; what changes is that nobody writes the paging, the storage or the refresh. TableBI is free for one source and one live dashboard.
The routes side by side
| Route | Row limit | History | Setup | Cost |
|---|---|---|---|---|
| Interface export | 1,000 rows | 16 months | None | Free |
| Search Analytics API | 25,000 per request; 50,000 per day per search type | 16 months | Cloud project, OAuth, a script | Free |
| Looker Studio connector | 50,000 per day per search type | 16 months | Minutes | Free |
| Bulk export to BigQuery | No row ceiling (anonymized queries excluded) | From the setup date forward | Cloud project with billing | BigQuery storage and queries |
| TableBI synced copy | The API's limits | 90 days on the first sync by default, then kept | CLI install and a Google sign-in | Free for one source |
The rows no route returns
Anonymized queries — searches made by too few people to list without identifying them — are omitted from every table, export, API response and bulk export row, and are included only in chart totals, according to Google's explainer. That is why the sum of the rows you export is lower than the total clicks in the chart, whichever route you use, and why the gap is not a bug. Comparing a query-level sum with the site total is the only way to see how large that hidden share is for your site.
FAQ
Why can I only export 1,000 rows from Search Console?
Because the Search Console interface caps exports at 1,000 rows, with or without filters. Google says so in its explainer on performance data limits. The API, the Looker Studio connector and the bulk data export to BigQuery all go further.
What is the Search Console API row limit?
25,000 rows per request, paged with startRow, and at most 50,000 rows per day per search type for a site, sorted by clicks. The Looker Studio connector has the same daily ceiling.
Does Search Console bulk export include historical data?
No. The first export arrives up to 48 hours after setup and contains that day only; for earlier dates Google points to the API or the reports, which keep 16 months.
Why don't my exported rows add up to the total clicks?
Anonymized queries are counted in the chart totals but never listed as rows, in the interface, the API or the bulk export. The difference between the sum of your rows and the total is that hidden share.
How do I export all Search Console queries without code?
Use the Looker Studio connector and export a table chart to CSV or Google Sheets, which reaches up to 50,000 rows per day per search type. For no ceiling, set up the bulk data export to BigQuery, which starts from the setup date.
Related guides
- Google Search Console API alternative
- Connect Search Console to Looker Studio
- Search Console to Tableau
- Search Console to Power BI
- SEO ROI calculator
Sources
- Google Search Central Blog — A deep dive into Search Console performance data filtering and limits
- Search Console API — Getting all your data
- Search Console Help — Bulk data export
- Search Console Help — Start a new bulk data export
Search Console, GA4 and Google Ads live, Meta Ads in beta, CSV by upload: in your agent today, with no BigQuery project and no licence per viewer.
npm i -g @tablebi/cli && tablebi install