Search Console

Google Search Console performance data (impressions, clicks, CTR, average position) for projects with a connected GSC property. Growth plan or above required. ctr is a 0..1 fraction and position is the impression-weighted average. The X-Search-Console-Backend response header identifies stored or live reads. Stored reads use synced data without contacting Google. Live reads return ERR_SEARCH_CONSOLE_ACCESS_REVOKED (403) for revoked Google access; reconnect the property in Preferences > Project Settings > Data Connections. They return ERR_SEARCH_CONSOLE_UPSTREAM (503) when Google is unavailable or over quota; wait for the number of seconds in Retry-After before retrying. Stored reads refuse queries, pages and narrowed requests with ERR_INVALID_PARAM. For queries and pages, total counts the rows of one Google request, up to 25,000 (truncated: true at that limit). Row lists do not add up to the totals: to total a set of pages or queries, call /search_console/summary with filters and no dimension.

GET/search_console/summary

Headline totals for the range, property-wide unless filters narrows them, with an optional breakdown aggregated over the same range. breakdown_truncated: true means the breakdown left rows out. Query rows exclude anonymized queries, and page and searchAppearance rows are counted per page rather than per property, so breakdown rows can differ from the totals.

Params:
  • project_idrequired
  • range
  • from
  • to
  • dimensioncountry|device|page|query|searchAppearance
  • limitdefault and max 1000
  • search_typeweb|image|video|news|discover|googleNews
  • filters
  • data_statefinal|all
  • aggregation_typeauto|byPage|byProperty

GET/search_console/timeseries

Series bucketed by day, week or month, property-wide unless filters narrows it.

Params:
  • project_idrequired
  • range
  • from
  • to
  • granularityday|week|month
  • search_typeweb|image|video|news|discover|googleNews
  • filters
  • data_statefinal|all
  • aggregation_typeauto|byPage|byProperty
  • outputflat|csv

GET/search_console/queries

Top search queries for the range, ranked and paginated. Knowingly undercounts anonymized queries, so they do not sum exactly to the summary totals (same as the GSC UI).

Params:
  • project_idrequired
  • range
  • from
  • to
  • sortimpressions|clicks|ctr|position
  • page
  • per_page
  • start_row
  • search_typeweb|image|video|news|discover|googleNews
  • filters
  • data_statefinal|all
  • aggregation_typeauto|byPage|byProperty
  • outputflat|csv

GET/search_console/pages

Top landing pages for the range, ranked and paginated. Same shape as the queries endpoint, with each row key being a page URL.

Params:
  • project_idrequired
  • range
  • from
  • to
  • sortimpressions|clicks|ctr|position
  • page
  • per_page
  • start_row
  • search_typeweb|image|video|news|discover|googleNews
  • filters
  • data_statefinal|all
  • aggregation_typeauto|byPage|byProperty
  • outputflat|csv

GET/search_console/rows

Rows grouped by up to three dimensions, for example page and query, or date and page, ranked and paginated. Each dimension is its own field. Google returns at most 25,000 rows per request: truncated: true marks a full window and start_row reads the next one.

Params:
  • project_idrequired
  • dimensionsrequired, comma-separated, 1 to 3 of date|country|device|page|query|searchAppearance
  • range
  • from
  • to
  • sortimpressions|clicks|ctr|position
  • page
  • per_page
  • start_row
  • search_type
  • filters
  • data_statefinal|all
  • aggregation_typeauto|byPage|byProperty
  • outputflat|csv