---
title: "Search Console rows by several dimensions (Growth+)"
method: GET
path: "/search_console/rows"
tags: ["Search Console"]
---

# Search Console rows by several dimensions (Growth+)

`GET /search_console/rows`

## Request

- Base URL: `https://api.llmpulse.ai/api/v1`
- URL: `https://api.llmpulse.ai/api/v1/search_console/rows`
- Auth: API key in header `Authorization`

Google Search Console rows grouped by 1 to 3 dimensions (date, country, device, page, query, searchAppearance, property) over a date range, each row carrying its dimension values as fields plus impressions, clicks, ctr (0..1) and position, ranked by impressions, clicks, ctr or position, paginated. Google ranks rows by clicks and returns at most 25,000 per request (truncated: true when reached); start_row moves that window. Query rows exclude anonymized queries, so rows add up to less than the summary totals. Requires a connected Search Console property (Growth+) and live reads: stored reads return ERR_INVALID_PARAM. Live reads return ERR_SEARCH_CONSOLE_ACCESS_REVOKED (403) for revoked Google access and ERR_SEARCH_CONSOLE_UPSTREAM (503) when Google Search Console is unavailable or over quota; wait for the number of seconds in Retry-After before retrying. A combination Google refuses comes back as ERR_INVALID_PARAM with its reason.

## Query parameters

- `project_id` integer, required
- `dimensions` string, required
- `range` integer
- `from` string, date
- `to` string, date
- `sort` 'impressions' | 'clicks' | 'ctr' | 'position'
- `page` integer
- `per_page` integer
- `start_row` integer
- `output` 'flat' | 'csv'
- `search_type` 'web' | 'image' | 'video' | 'news' | 'discover' | 'googleNews'
- `filters` string
- `data_state` 'final' | 'all'
- `aggregation_type` 'auto' | 'byPage' | 'byProperty'
- `property` string

## Response `200`

Search Console rows

- SearchConsoleRowsResponse
  - `project_id` integer
  - `property` SearchConsoleProperty
    - `id` string: Property id, e.g. sc-domain:example.com
    - `name` string
  - `from` string, date
  - `to` string, date
  - `data_through` string, date, nullable: Latest date Google has published for the property, or for every combined property (it lags 2-3 days). Later days are missing, not zero.
  - `page` integer
  - `per_page` integer
  - `total` integer: Rows in this window (one Google request, at most 25,000)
  - `sort` string
  - `start_row` integer: Present when start_row was set
  - `truncated` boolean: Present (true) when Google returned 25,000 rows, so more rows exist past this window
  - `dimensions` string[]
  - `data` object[]: One row per combination; only the requested dimensions are present
    - `date` string, date
    - `country` string
    - `device` string
    - `page` string
    - `query` string
    - `searchAppearance` string
    - `impressions` integer
    - `clicks` integer
    - `ctr` number: 0..1 fraction
    - `position` number: Impression-weighted average position
    - `property` string: Present when grouped by property
  - `request_id` string
  - `properties` SearchConsoleProperty[]: With a list or all in the property parameter, the properties whose data the response holds (instead of property)
    - `id` string: Property id, e.g. sc-domain:example.com
    - `name` string
  - `excluded_properties` SearchConsoleExcludedProperty[]: With a list or all, selected properties left out because another selected property already counts them
    - `id` string
    - `name` string
    - `covered_by` string: The selected property that already counts this one
  - `property_errors` SearchConsolePropertyError[]: With a list or all, selected properties Google refused, left out of the figures
    - `id` string
    - `name` string
    - `code` 'ERR_SEARCH_CONSOLE_ACCESS_REVOKED' | 'ERR_SEARCH_CONSOLE_UPSTREAM'
    - `message` string
    - `retry_after` integer: Seconds to wait before retrying, for ERR_SEARCH_CONSOLE_UPSTREAM

## Other responses

- `401`: Authentication failed
- `403`: Plan below Growth (ERR_PLAN_REQUIRED), or Google revoked the project's Search Console access (ERR_SEARCH_CONSOLE_ACCESS_REVOKED): reconnect the property
- `404`: Resource not found
- `422`: Invalid parameters
- `503`: Upstream provider unavailable, retry after the number of seconds in the Retry-After header: Google's own value when it sent one, otherwise 900 after a quota error and 60 after an outage

## Changes

- **2026-10-23** `5c21e7491d20`: 1 info
  - added the new optional `query` request parameter `property`
- **2026-10-11** `82f2d44c22e5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/llmpulse/apis/llm-pulse-api/changes/search_console/rows/get.md)

---

[API](https://skmtc.dev/llmpulse/apis/llm-pulse-api.md) - [All operations](https://skmtc.dev/llmpulse/apis/llm-pulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/llmpulse/apis/llm-pulse-api/revisions/38a31f123641?raw)
