---
title: "Page through Search Analytics results"
description: "Query Google rows with a Site, dimensions, and Pacific reporting dates."
canonical_url: "https://gscdump.com/gscdump-sdk/guides/read-data/direct-search-analytics"
last_updated: "2026-10-03T07:15:32.068Z"
---

# Page through Search Analytics results

Use the direct Google client when your application holds a Google grant. [List Sites](/gscdump-sdk/guides/start/direct-first-result) first and copy the exact identifier.

## Before you start

Choose a complete Search Console date window. Google's reporting calendar uses Pacific dates. Recent days can change while Google finalizes data.

## Build a query

::pre{tabindex="0"}
```ts
import { googleSearchConsole } from 'gscdump'
import { between, date, gsc, page, query } from 'gscdump/query'

const token = process.env.GOOGLE_ACCESS_TOKEN
if (!token)
  throw new Error('Set GOOGLE_ACCESS_TOKEN')

const google = googleSearchConsole({ accessToken: token })
const site = 'sc-domain:example.com'
const request = gsc
  .select(page, query)
  .where(between(date, '2026-08-01', '2026-08-28'))

for await (const rows of google.query(site, request)) {
  for (const row of rows)
    console.log(row.page, row.query, row.clicks, row.impressions)
}
```
::

Replace the Site and dates. The iterator yields nonempty batches and handles Google's 25,000-row pages. Keep the same dates when comparing pages.

## Use a raw request when needed

The direct operation accepts a Search Analytics request body:

::pre{tabindex="0"}
```ts
const response = await google.searchAnalytics.query(site, {
  startDate: '2026-08-01',
  endDate: '2026-08-28',
  dimensions: ['page'],
  rowLimit: 1000,
})
```
::

Use the [direct client reference](/gscdump-sdk/api/direct-client) for exports. Do not assume a missing row means zero demand. Google can omit rows under its API limits.

## Handle quota and empty rows

If no batch arrives, check the Site, date window, and query dimensions. For quota or grant failures, inspect the Google error before retrying. If you need hosted totals and sync metadata, switch at [Choose access](/gscdump-sdk/guides/start/choose-access).

## Sitemap

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