Authenticate with the Search Console API using a service account and OAuth 2.0 with the webmasters.readonly scope
Send an initial POST to the searchanalytics.query endpoint with rowLimit set to 25000 and startRow set to 0
Capture the number of rows returned; if it equals rowLimit, increment startRow by 25000 and repeat
Continue paginating until a response returns fewer rows than rowLimit, indicating the final page
Merge all response arrays and deduplicate on the requested dimension tuple before writing to storage
Known gotchas
The API exposes a maximum of 50000 rows per day per search type when sorted by clicks; pagination cannot retrieve data beyond this daily cap regardless of startRow value
Changing any dimension or date range resets the available row pool, so keep request parameters identical across all pagination calls
Data is aggregated and sampled for low-traffic properties; additional rows from pagination do not add statistical precision if the property is below sampling thresholds
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp