[{"data":1,"prerenderedAt":529},["ShallowReactive",2],{"learn-nav":3,"learn-surround:\u002Flearn-google-search-console\u002Fapi\u002Fquery-builder":115,"learn-page:\u002Flearn-google-search-console\u002Fapi\u002Fquery-builder":122},[4],{"path":5,"title":6,"children":7,"stem":114,"page":16},"\u002Flearn-google-search-console","Learn GSC",[8,26,47,76,97,106,110],{"path":9,"title":10,"children":11,"stem":25,"page":16},"\u002Flearn-google-search-console\u002Fai-agents","Agents",[12,17,21],{"path":13,"title":14,"stem":15,"page":16},"\u002Flearn-google-search-console\u002Fai-agents\u002Fmcp-server","Check the connection","ai-agents\u002F1.mcp-server",true,{"path":18,"title":19,"stem":20,"page":16},"\u002Flearn-google-search-console\u002Fai-agents\u002Fclaude-code-seo","Claude Code SEO","ai-agents\u002F2.claude-code-seo",{"path":22,"title":23,"stem":24,"page":16},"\u002Flearn-google-search-console\u002Fai-agents\u002Fseo-workflows","SEO workflows","ai-agents\u002F3.seo-workflows","ai-agents\u002Findex",{"path":27,"title":28,"children":29,"stem":46,"page":16},"\u002Flearn-google-search-console\u002Fapi","API",[30,34,38,42],{"path":31,"title":32,"stem":33,"page":16},"\u002Flearn-google-search-console\u002Fapi\u002Fquery-builder","Query builder","api\u002F2.query-builder",{"path":35,"title":36,"stem":37,"page":16},"\u002Flearn-google-search-console\u002Fapi\u002Frate-limits","Rate limits","api\u002F3.rate-limits",{"path":39,"title":40,"stem":41,"page":16},"\u002Flearn-google-search-console\u002Fapi\u002Fauthentication","Authentication","api\u002F4.authentication",{"path":43,"title":44,"stem":45,"page":16},"\u002Flearn-google-search-console\u002Fapi\u002Fhourly-search-analytics-api","Hourly data","api\u002Fhourly-search-analytics-api","api\u002Findex",{"path":48,"title":49,"children":50,"stem":75,"page":16},"\u002Flearn-google-search-console\u002Flimits","Limits",[51,55,59,63,67,71],{"path":52,"title":53,"stem":54,"page":16},"\u002Flearn-google-search-console\u002Flimits\u002F16-month-data-retention","Data retention","limits\u002F1.16-month-data-retention",{"path":56,"title":57,"stem":58,"page":16},"\u002Flearn-google-search-console\u002Flimits\u002Fexport-row-limits","Export limits","limits\u002F2.export-row-limits",{"path":60,"title":61,"stem":62,"page":16},"\u002Flearn-google-search-console\u002Flimits\u002Fbigquery-alternative","BigQuery alternative","limits\u002F3.bigquery-alternative",{"path":64,"title":65,"stem":66,"page":16},"\u002Flearn-google-search-console\u002Flimits\u002F1000-row-limit","1,000-row limit","limits\u002F4.1000-row-limit",{"path":68,"title":69,"stem":70,"page":16},"\u002Flearn-google-search-console\u002Flimits\u002Fdata-delay","Data delay","limits\u002F5.data-delay",{"path":72,"title":73,"stem":74,"page":16},"\u002Flearn-google-search-console\u002Flimits\u002Fgsc-vs-ga4","GSC vs. GA4","limits\u002F6.gsc-vs-ga4","limits\u002Findex",{"path":77,"title":78,"children":79,"stem":96,"page":16},"\u002Flearn-google-search-console\u002Fperformance","Performance reports",[80,84,88,92],{"path":81,"title":82,"stem":83,"page":16},"\u002Flearn-google-search-console\u002Fperformance\u002Fai-powered-configuration","AI-powered configuration","performance\u002Fai-powered-configuration",{"path":85,"title":86,"stem":87,"page":16},"\u002Flearn-google-search-console\u002Fperformance\u002Fbranded-queries-filter","Branded queries","performance\u002Fbranded-queries-filter",{"path":89,"title":90,"stem":91,"page":16},"\u002Flearn-google-search-console\u002Fperformance\u002Fcustom-annotations","Annotations","performance\u002Fcustom-annotations",{"path":93,"title":94,"stem":95,"page":16},"\u002Flearn-google-search-console\u002Fperformance\u002Fgenerative-ai-performance-reports","Generative AI reports","performance\u002Fgenerative-ai-performance-reports","performance\u002Findex",{"path":98,"title":99,"children":100,"stem":105,"page":16},"\u002Flearn-google-search-console\u002Fresearch","Research",[101],{"path":102,"title":103,"stem":104,"page":16},"\u002Flearn-google-search-console\u002Fresearch\u002Fgsc-data-loss-study","Query gaps research","research\u002F1.gsc-data-loss-study","research\u002Findex",{"path":107,"title":108,"stem":109,"page":16},"\u002Flearn-google-search-console\u002Fsocial-platform-properties","Social accounts","social-platform-properties",{"path":111,"title":112,"stem":113,"page":16},"\u002Flearn-google-search-console\u002Fweekly-monthly-views","Weekly and monthly views","weekly-monthly-views","index",[116,119],{"path":9,"title":10,"description":117,"navigation":118},"Choose a Search Console task for an agent, check your registered Sites and their synced dates, then connect Claude, ChatGPT, or another client through MCP.",{"title":10},{"path":35,"title":36,"description":120,"navigation":121},"Identify Search Analytics request and load quotas, check URL Inspection limits, and choose a useful response to quota errors.",{"title":36},{"title":123,"description":124,"publishedAt":125,"updatedAt":126,"ogImage":127,"body":130,"id":523,"path":31,"stem":33,"extension":524,"navigation":525,"seo":526,"_source":527,"sitemap":528},"Build a Search Console API query","Build a mobile page report, combine filters, and paginate Search Analytics results without confusing returned rows with complete data.","2026-01-27","2026-09-11",{"component":128,"props":129},"Article",{"title":123,"description":124},{"toc":131,"nodes":151,"frontmatter":511,"meta":515},{"links":132,"title":149,"searchDepth":150,"depth":150},[133,137,140,143,146],{"id":134,"text":135,"depth":136},"build-one-page-report","Build one page report",2,{"id":138,"text":139,"depth":136},"add-detail-only-when-it-helps","Add detail only when it helps",{"id":141,"text":142,"depth":136},"combine-filters-deliberately","Combine filters deliberately",{"id":144,"text":145,"depth":136},"read-the-top-rows-then-paginate","Read the top rows, then paginate",{"id":147,"text":148,"depth":136},"keep-recent-data-separate","Keep recent data separate","",3,[152,156,164,167,170,339,353,364,366,373,381,384,386,389,396,429,436,439,441,444,454,480,483,490,492,505],[153,154,155],"p",{},"Suppose you want the pages that received the most Web search clicks from mobile users in the United States. You need page rows, with device and country filters.",[153,157,158,159,163],{},"This guide uses Google's Search Analytics request body. If you haven't made a request yet, follow the ",[160,161,162],"a",{"href":27},"first API request"," for authorization and the endpoint.",[165,166,135],"h2",{"id":134},[153,168,169],{},"The dates below are an example week. Replace them with the period you want to examine.",[171,172,175],"pre",{"language":173,"class":174},"json","rangi shiki shj-lang-json",[176,177,179,189,190,189,205,189,213,189,221,189,229,189,243,189,252,189,261,189,268,189,296,189,316,189,320,189,326,189,335],"code",{"class":178},"language-json",[180,181,184],"span",{"class":182,"style":183},"line","display: inline",[180,185,188],{"class":186,"style":187},"shj-syn-bracket shj-bracket","--shiki-light:#57606a;--shiki-default:#57606a;color:#57606a;--shiki-dark:#8b949e","{","\n",[180,191,192,193,198,199,204],{"class":182,"style":183},"  ",[180,194,197],{"class":195,"style":196},"shj-syn-var shj-var","--shiki-light:#0550ae;--shiki-default:#0550ae;color:#0550ae;--shiki-dark:#79c0ff","\"startDate\"",": ",[180,200,203],{"class":201,"style":202},"shj-syn-str shj-str","--shiki-light:#0a3069;--shiki-default:#0a3069;color:#0a3069;--shiki-dark:#a5d6ff","\"2026-09-01\"",",",[180,206,192,207,198,210,204],{"class":182,"style":183},[180,208,209],{"class":195,"style":196},"\"endDate\"",[180,211,212],{"class":201,"style":202},"\"2026-09-07\"",[180,214,192,215,198,218,204],{"class":182,"style":183},[180,216,217],{"class":195,"style":196},"\"type\"",[180,219,220],{"class":201,"style":202},"\"web\"",[180,222,192,223,198,226,204],{"class":182,"style":183},[180,224,225],{"class":195,"style":196},"\"dataState\"",[180,227,228],{"class":201,"style":202},"\"final\"",[180,230,192,231,198,234,237,240,204],{"class":182,"style":183},[180,232,233],{"class":195,"style":196},"\"dimensions\"",[180,235,236],{"class":186,"style":187},"[",[180,238,239],{"class":201,"style":202},"\"page\"",[180,241,242],{"class":186,"style":187},"]",[180,244,192,245,198,248,250],{"class":182,"style":183},[180,246,247],{"class":195,"style":196},"\"dimensionFilterGroups\"",[180,249,236],{"class":186,"style":187},[180,251,188],{"class":186,"style":187},[180,253,254,255,198,258,204],{"class":182,"style":183},"    ",[180,256,257],{"class":195,"style":196},"\"groupType\"",[180,259,260],{"class":201,"style":202},"\"and\"",[180,262,254,263,198,266],{"class":182,"style":183},[180,264,265],{"class":195,"style":196},"\"filters\"",[180,267,236],{"class":186,"style":187},[180,269,270,271,273,274,198,277,280,281,198,284,280,287,198,290,273,293,204],{"class":182,"style":183},"      ",[180,272,188],{"class":186,"style":187}," ",[180,275,276],{"class":195,"style":196},"\"dimension\"",[180,278,279],{"class":201,"style":202},"\"device\"",", ",[180,282,283],{"class":195,"style":196},"\"operator\"",[180,285,286],{"class":201,"style":202},"\"equals\"",[180,288,289],{"class":195,"style":196},"\"expression\"",[180,291,292],{"class":201,"style":202},"\"MOBILE\"",[180,294,295],{"class":186,"style":187},"}",[180,297,270,298,273,300,198,302,280,305,198,307,280,309,198,311,273,314],{"class":182,"style":183},[180,299,188],{"class":186,"style":187},[180,301,276],{"class":195,"style":196},[180,303,304],{"class":201,"style":202},"\"country\"",[180,306,283],{"class":195,"style":196},[180,308,286],{"class":201,"style":202},[180,310,289],{"class":195,"style":196},[180,312,313],{"class":201,"style":202},"\"usa\"",[180,315,295],{"class":186,"style":187},[180,317,254,318],{"class":182,"style":183},[180,319,242],{"class":186,"style":187},[180,321,192,322,324,204],{"class":182,"style":183},[180,323,295],{"class":186,"style":187},[180,325,242],{"class":186,"style":187},[180,327,192,328,198,331],{"class":182,"style":183},[180,329,330],{"class":195,"style":196},"\"rowLimit\"",[180,332,334],{"class":333,"style":196},"shj-syn-num shj-num","100",[180,336,337],{"class":182,"style":183},[180,338,295],{"class":186,"style":187},[153,340,341,344,345,348,349,352],{},[176,342,343],{},"dimensions"," decides what each row represents. Here, the row's first key is a page URL. Filters narrow the data included in those rows. You don't need to add ",[176,346,347],{},"device"," or ",[176,350,351],{},"country"," to the dimensions just to filter them.",[153,354,355,356,358,359,363],{},"If you add ",[176,357,347],{}," to the dimensions, the keys follow that order: page, then device. That matters when your code turns the response into table columns. See Google's ",[160,360,362],{"href":361},"https:\u002F\u002Fdevelopers.google.com\u002Fwebmaster-tools\u002Fv1\u002Fsearchanalytics\u002Fquery","query reference"," for the field definitions.",[165,365,139],{"id":138},[153,367,368,369,372],{},"For a first diagnosis, a page report is easier to interpret than page-by-query-by-device rows. Add ",[176,370,371],{},"query"," when you need to investigate the searches associated with a particular page.",[153,374,375,376,380],{},"Keep a separate request without page or query dimensions for headline totals. Google recommends this in its ",[160,377,379],{"href":378},"https:\u002F\u002Fdevelopers.google.com\u002Fwebmaster-tools\u002Fv1\u002Fhow-tos\u002Fall-your-data","data extraction guide",", because detailed requests can lose data.",[153,382,383],{},"For example, a decline in a page's clicks is a reason to inspect its queries. It doesn't establish that a specific query caused the decline when some query detail is missing.",[165,385,142],{"id":141},[153,387,388],{},"The filter group uses AND: both conditions must match. An OR filter group is not currently supported.",[153,390,391,392,395],{},"For alternatives within one text field, ",[176,393,394],{},"includingRegex"," can express a choice. This illustrative filter matches queries containing either product name:",[171,397,398],{"language":173,"class":174},[176,399,400,189,404,189,411,189,418,189,425],{"class":178},[180,401,402],{"class":182,"style":183},[180,403,188],{"class":186,"style":187},[180,405,192,406,198,408,204],{"class":182,"style":183},[180,407,276],{"class":195,"style":196},[180,409,410],{"class":201,"style":202},"\"query\"",[180,412,192,413,198,415,204],{"class":182,"style":183},[180,414,283],{"class":195,"style":196},[180,416,417],{"class":201,"style":202},"\"includingRegex\"",[180,419,192,420,198,422],{"class":182,"style":183},[180,421,289],{"class":195,"style":196},[180,423,424],{"class":201,"style":202},"\"(?i)(acme|northstar)\"",[180,426,427],{"class":182,"style":183},[180,428,295],{"class":186,"style":187},[153,430,431,432,435],{},"Search Console uses RE2 syntax. Escape special characters when turning a literal name into a pattern. A regex you write for brand names is your own definition; it doesn't reproduce Google's ",[160,433,434],{"href":85},"branded queries classification",".",[153,437,438],{},"For separate requests representing alternative conditions, watch for overlap before adding totals. A query matching both conditions would otherwise be counted twice.",[165,440,145],{"id":144},[153,442,443],{},"The API normally orders results by clicks descending. Date-grouped results use date order. There is no request field for a custom sort.",[153,445,446,449,450,453],{},[176,447,448],{},"rowLimit"," accepts up to 25,000 rows per response. ",[176,451,452],{},"startRow"," is a zero-based offset. To request the next page after 25,000 returned rows, keep the same request and set:",[171,455,456],{"language":173,"class":174},[176,457,458,189,462,189,469,189,476],{"class":178},[180,459,460],{"class":182,"style":183},[180,461,188],{"class":186,"style":187},[180,463,192,464,198,466,204],{"class":182,"style":183},[180,465,330],{"class":195,"style":196},[180,467,468],{"class":333,"style":196},"25000",[180,470,192,471,198,474],{"class":182,"style":183},[180,472,473],{"class":195,"style":196},"\"startRow\"",[180,475,468],{"class":333,"style":196},[180,477,478],{"class":182,"style":183},[180,479,295],{"class":186,"style":187},[153,481,482],{},"Those fields extend your original body; they are not a complete request by themselves. Continue until a response contains fewer rows than requested. Save the request's dates, filters, and dimensions with the result so later pages remain comparable.",[153,484,485,486,489],{},"A finished pagination loop means you've read the rows this request returned. Google does not guarantee every underlying row. The ",[160,487,488],{"href":56},"export limits guide"," separates pagination, internal limits, and anonymized queries.",[165,491,148],{"id":147},[153,493,494,497,498,501,502,435],{},[176,495,496],{},"dataState: \"final\""," requests finalized data. Use ",[176,499,500],{},"all"," only when your report can label fresh data and handle later changes. For hour-by-hour analysis, use the ",[160,503,504],{"href":43},"hourly request and metadata example",[153,506,507,508,435],{},"When a detailed request becomes expensive, narrow the dates or remove dimensions you don't need. Retrying the same wide query may keep hitting the same ",[160,509,510],{"href":35},"load quota",{"publishedAt":125,"updatedAt":126,"title":123,"description":124,"navigation":512,"ogImage":513},{"title":32},{"component":128,"props":514},{"title":123,"description":124},{"description":155,"toc":516},{"title":149,"searchDepth":150,"depth":150,"links":517},[518,519,520,521,522],{"id":134,"depth":136,"text":135},{"id":138,"depth":136,"text":139},{"id":141,"depth":136,"text":142},{"id":144,"depth":136,"text":145},{"id":147,"depth":136,"text":148},"learnGsc\u002Fapi\u002F2.query-builder.md","md",{"title":32},{"title":123,"description":124},"\u002Fopt\u002Factions-runner\u002F_work\u002Fgscdump.com\u002Fgscdump.com\u002Fcontent\u002Flearn-google-search-console\u002Fapi\u002F2.query-builder.md",{"loc":31,"lastmod":126},1793234288316]