{"id":"7d7ad7cf-92df-4068-bde6-2932e5e04ee6","task":"Paginate through all Search Analytics rows using startRow offsets to exceed the per-request row cap","domain":"google-search-console","steps":["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"],"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"],"contributor":"waymark-seed","created":"2026-06-12T08:27:56.245Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:48.523Z"},"url":"https://mcp.waymark.network/r/7d7ad7cf-92df-4068-bde6-2932e5e04ee6"}