Search Console report
run_gsc_reportQuery Google Search Console analytics to get clicks, impressions, CTR, and average position by query, page, device, and date; diagnose organic traffic drops and find keyword opportunities.
Instructions
Run a Google Search Console search analytics report.
Returns clicks, impressions, CTR, and average position broken down by the requested dimensions. Useful for diagnosing organic traffic drops, finding keyword opportunities, and cross-referencing with GA4 and Ads data. One request returns at most 25,000 rows; a full page carries next_start_row for the following request. With data_state "all" the response metadata names the first date whose data is still incomplete.
Queries the Search Console API: https://developers.google.com/webmaster-tools/v1/searchanalytics/query
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default 100, max 25000 per request; higher values are capped at 25000). | |
| site_url | No | The GSC property URL (e.g. "https://example.com/" or "sc-domain:example.com"), as listed by list_gsc_sites. Defaults to the configured Search Console site (gsc.site_url). | |
| start_row | No | Zero-based offset of the first row, for paging past the 25,000-row cap (pass the previous response's next_start_row). | |
| data_state | No | "final" (default) returns finalized data only; "all" adds fresh data from the last days that can still change; "hourly_all" is the state the hour dimension uses. | final |
| dimensions | No | One or more of "query", "page", "country", "device", "date", "searchAppearance" (search result feature, e.g. rich results) or "hour" (hourly rows for roughly the last 10 days; switches data_state to "hourly_all"). Defaults to ["query"]. | |
| search_type | No | "web" (default), "image", "video", "news", "discover", or "googleNews". | web |
| date_range_end | No | End date, same formats as date_range_start. | today |
| aggregation_type | No | "auto" (default), "byPage" (aggregate by canonical URL) or "byProperty" (aggregate by property; not combinable with grouping or filtering by page). | auto |
| date_range_start | No | Start date as ISO "YYYY-MM-DD" or a relative value like "7daysAgo", "30daysAgo", "today". | 7daysAgo |
| dimension_filter_groups | No | Optional list of GSC DimensionFilterGroup objects to filter by query, page, country, or device, e.g. [{"filters": [{"dimension": "query", "operator": "contains", "expression": "analytics"}]}]. searchAppearance is filterable too. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||