[{"data":1,"prerenderedAt":468},["ShallowReactive",2],{"learn-nav":3,"learn-surround:\u002Flearn-google-search-console\u002Fapi":115,"learn-page:\u002Flearn-google-search-console\u002Fapi":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":43,"title":44,"description":117,"navigation":118},"Request hourly Search Console data with hour and hourly_all. Preserve timestamp offsets and inspect incomplete-hour metadata before comparing recent traffic.",{"title":44},{"path":5,"title":6,"description":120,"navigation":121},"Read your Search Console reports, understand data limits, and use the API when you need more control.",{"title":6},{"title":123,"description":124,"publishedAt":125,"updatedAt":126,"ogImage":127,"body":130,"id":462,"path":27,"stem":46,"extension":463,"navigation":464,"seo":465,"_source":466,"sitemap":467},"Google Search Console API: make your first report","Make an authorized Search Console API request, read the returned metrics, and choose the right guide for filters, quotas, or hourly data.","2026-01-27","2026-09-11",{"component":128,"props":129},"Article",{"title":123,"description":124},{"toc":131,"nodes":148,"frontmatter":451,"meta":455},{"links":132,"title":146,"searchDepth":147,"depth":147},[133,137,140,143],{"id":134,"text":135,"depth":136},"request-one-period","Request one period",2,{"id":138,"text":139,"depth":136},"ask-a-more-specific-question","Ask a more specific question",{"id":141,"text":142,"depth":136},"choose-the-resource-for-the-job","Choose the resource for the job",{"id":144,"text":145,"depth":136},"plan-the-next-request","Plan the next request","",3,[149,153,161,164,167,179,186,292,304,327,329,336,339,350,352,360,427,435,437,444],[150,151,152],"p",{},"The Search Console API lets you put search performance into your own report. Start with one question: how many clicks did this property receive during a known period?",[150,154,155,156,160],{},"You need a Google account with access to the property and an OAuth access token. An ordinary Google API key cannot authorize access to this private data. If you don't have a token, start with ",[157,158,159],"a",{"href":39},"authentication",".",[162,163,135],"h2",{"id":134},[150,165,166],{},"This example asks for Web search totals for 1–7 September 2026. Replace the property and dates with your own. Both dates are included, using Pacific Time.",[150,168,169,170,174,175,178],{},"For a Domain property, use ",[171,172,173],"code",{},"sc-domain:example.com",". For a URL-prefix property, use its exact registered prefix, such as ",[171,176,177],{},"https:\u002F\u002Fwww.example.com\u002F",". Encode that whole value in the request URL.",[150,180,181,182,185],{},"With your access token already stored in the ",[171,183,184],{},"GOOGLE_ACCESS_TOKEN"," environment variable:",[187,188,191],"pre",{"language":189,"class":190},"bash","rangi shiki shj-lang-bash",[171,192,194,205,206,205,215,205,232,205,239,205,247,205,258,205,266,205,274,205,282],{"class":193},"language-bash",[195,196,199,204],"span",{"class":197,"style":198},"line","display: inline",[195,200,203],{"class":201,"style":202},"shj-syn-func shj-func","--shiki-light:#8250df;--shiki-default:#8250df;color:#8250df;--shiki-dark:#d2a8ff","curl"," --fail-with-body \\","\n",[195,207,208,209,214],{"class":197,"style":198},"  ",[195,210,213],{"class":211,"style":212},"shj-syn-str shj-str","--shiki-light:#0a3069;--shiki-default:#0a3069;color:#0a3069;--shiki-dark:#a5d6ff","'https:\u002F\u002Fwww.googleapis.com\u002Fwebmasters\u002Fv3\u002Fsites\u002Fsc-domain%3Aexample.com\u002FsearchAnalytics\u002Fquery'"," \\",[195,216,208,217,220,221,224,229,214],{"class":197,"style":198},[195,218,219],{"class":201,"style":202},"--header"," ",[195,222,223],{"class":211,"style":212},"\"Authorization: Bearer ",[195,225,228],{"class":226,"style":227},"shj-syn-var shj-var","--shiki-light:#0550ae;--shiki-default:#0550ae;color:#0550ae;--shiki-dark:#79c0ff","$GOOGLE_ACCESS_TOKEN",[195,230,231],{"class":211,"style":212},"\"",[195,233,208,234,220,236,214],{"class":197,"style":198},[195,235,219],{"class":201,"style":202},[195,237,238],{"class":211,"style":212},"'Content-Type: application\u002Fjson'",[195,240,208,241,220,244],{"class":197,"style":198},[195,242,243],{"class":201,"style":202},"--data",[195,245,246],{"class":211,"style":212},"'{",[195,248,249,250,253,254,257],{"class":197,"style":198},"    ",[195,251,252],{"class":211,"style":212},"\"startDate\"",": ",[195,255,256],{"class":211,"style":212},"\"2026-09-01\"",",",[195,259,249,260,253,263,257],{"class":197,"style":198},[195,261,262],{"class":211,"style":212},"\"endDate\"",[195,264,265],{"class":211,"style":212},"\"2026-09-07\"",[195,267,249,268,253,271,257],{"class":197,"style":198},[195,269,270],{"class":211,"style":212},"\"type\"",[195,272,273],{"class":211,"style":212},"\"web\"",[195,275,249,276,253,279],{"class":197,"style":198},[195,277,278],{"class":211,"style":212},"\"dataState\"",[195,280,281],{"class":211,"style":212},"\"final\"",[195,283,208,284,289],{"class":197,"style":198},[195,285,288],{"class":286,"style":287},"shj-syn-bracket shj-bracket","--shiki-light:#57606a;--shiki-default:#57606a;color:#57606a;--shiki-dark:#8b949e","}",[195,290,291],{"class":211,"style":212},"'",[150,293,294,295,298,299,303],{},"No ",[171,296,297],{},"dimensions"," means one aggregate row for the requested period, if data is available. Google's ",[157,300,302],{"href":301},"https:\u002F\u002Fdevelopers.google.com\u002Fwebmaster-tools\u002Fv1\u002Fsearchanalytics\u002Fquery","query reference"," documents the request and response.",[150,305,306,307,310,311,314,315,318,319,322,323,326],{},"Read ",[171,308,309],{},"clicks"," and ",[171,312,313],{},"impressions"," as counts. ",[171,316,317],{},"ctr"," is a fraction: ",[171,320,321],{},"0.04"," means 4%. ",[171,324,325],{},"position"," is an average across impressions, so it doesn't tell you where a page ranked every day. An empty response needs investigation; it doesn't establish that the property had no search activity.",[162,328,139],{"id":138},[150,330,331,332,335],{},"To see which pages received those clicks, add ",[171,333,334],{},"\"dimensions\": [\"page\"]",". You'll get page rows instead of one property total.",[150,337,338],{},"That changes the meaning of the result. Detailed rows can omit information, and their sum may differ from an ungrouped total. Keep a separate totals request when your report needs both headline metrics and a page or query breakdown.",[150,340,341,342,345,346,349],{},"The ",[157,343,344],{"href":31},"query builder guide"," walks through dimensions, filters, and pagination. For a recent traffic check, the ",[157,347,348],{"href":43},"hourly API guide"," explains incomplete-hour metadata.",[162,351,142],{"id":141},[150,353,354,355,359],{},"Google exposes different resources for different tasks. The ",[157,356,358],{"href":357},"https:\u002F\u002Fdevelopers.google.com\u002Fwebmaster-tools\u002Fv1\u002Fapi_reference_index","API reference"," lists their methods.",[361,362,363,379],"table",{},[364,365,366],"thead",{},[367,368,369,373,376],"tr",{},[370,371,372],"th",{},"Task",[370,374,375],{},"Resource",[370,377,378],{},"What to expect",[380,381,382,394,405,416],"tbody",{},[367,383,384,388,391],{},[385,386,387],"td",{},"Build a clicks or impressions report",[385,389,390],{},"Search Analytics",[385,392,393],{},"Aggregated performance rows",[367,395,396,399,402],{},[385,397,398],{},"Check one URL's indexed status",[385,400,401],{},"URL Inspection",[385,403,404],{},"Information about Google's indexed version",[367,406,407,410,413],{},[385,408,409],{},"Read or manage submitted sitemaps",[385,411,412],{},"Sitemaps",[385,414,415],{},"Sitemap submissions and related information",[367,417,418,421,424],{},[385,419,420],{},"Find accessible properties",[385,422,423],{},"Sites",[385,425,426],{},"Properties available to the authorized account",[150,428,429,430,434],{},"URL Inspection cannot test the live page through this API. Its ",[157,431,433],{"href":432},"https:\u002F\u002Fdevelopers.google.com\u002Fwebmaster-tools\u002Fv1\u002FurlInspection.index\u002Finspect","reference"," makes that distinction explicit.",[162,436,145],{"id":144},[150,438,439,440,443],{},"Pagination increases the rows returned across responses. It cannot restore query text Google withholds or overcome every internal data limit. Use the ",[157,441,442],{"href":56},"export limits guide"," before designing a complete-data archive.",[150,445,446,447,450],{},"If requests fail with quota errors, check ",[157,448,449],{"href":35},"API rate limits",". A costly query can hit a load limit even when your request count looks low.",{"publishedAt":125,"updatedAt":126,"title":123,"description":124,"navigation":452,"ogImage":453},{"title":28},{"component":128,"props":454},{"title":123,"description":124},{"description":152,"toc":456},{"title":146,"searchDepth":147,"depth":147,"links":457},[458,459,460,461],{"id":134,"depth":136,"text":135},{"id":138,"depth":136,"text":139},{"id":141,"depth":136,"text":142},{"id":144,"depth":136,"text":145},"learnGsc\u002Fapi\u002Findex.md","md",{"title":28},{"title":123,"description":124},"\u002Fopt\u002Factions-runner\u002F_work\u002Fgscdump.com\u002Fgscdump.com\u002Fcontent\u002Flearn-google-search-console\u002Fapi\u002Findex.md",{"loc":27,"lastmod":126},1793188219122]