[{"data":1,"prerenderedAt":358},["ShallowReactive",2],{"learn-nav":3,"learn-surround:\u002Flearn-google-search-console\u002Flimits\u002Fbigquery-alternative":115,"learn-page:\u002Flearn-google-search-console\u002Flimits\u002Fbigquery-alternative":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":56,"title":57,"description":117,"navigation":118},"Choose between report downloads, API pagination, and BigQuery. Keep the 1,000-row report cap separate from API response size and daily data limits.",{"title":57},{"path":64,"title":65,"description":120,"navigation":121},"Diagnose a Search Console table that stops at 1,000 rows or fails to match the chart total. Check filters, aggregation, and query privacy.",{"title":65},{"title":123,"description":124,"publishedAt":125,"updatedAt":126,"ogImage":127,"body":132,"id":349,"path":60,"stem":62,"extension":350,"navigation":351,"head":352,"seo":355,"_source":356,"sitemap":357},"Search Console BigQuery export or API history: which fits?","Choose BigQuery for ongoing bulk exports or the API for earlier available history. Check first-export dates, table aggregation, and retention settings.","2026-01-27","2026-09-11",{"component":128,"props":129},"Article",{"title":130,"description":131},"BigQuery or API history","Choose forward exports or earlier available data",{"toc":133,"nodes":153,"frontmatter":331,"meta":340},{"links":134,"title":151,"searchDepth":152,"depth":152},[135,139,142,145,148],{"id":136,"text":137,"depth":138},"match-the-method-to-the-job","Match the method to the job",2,{"id":140,"text":141,"depth":138},"check-the-first-exported-date","Check the first exported date",{"id":143,"text":144,"depth":138},"prepare-the-cloud-project","Prepare the Cloud project",{"id":146,"text":147,"depth":138},"read-the-tables-correctly","Read the tables correctly",{"id":149,"text":150,"depth":138},"keep-the-two-histories-distinguishable","Keep the two histories distinguishable","",3,[154,170,183,186,238,245,247,259,262,264,275,278,280,293,311,319,321,324],[155,156,157,158,162,163,169],"p",{},"Choose ",[159,160,161],"strong",{},"BigQuery bulk export"," when you need an ongoing Search Console dataset in a warehouse. Choose an ",[159,164,165],{},[166,167,168],"a",{"href":27},"API-based extract"," when you need earlier dates that are still available or want to manage the data elsewhere. You can use both, provided you track where their date ranges overlap.",[155,171,172,173,177,178,182],{},"Google describes ",[166,174,176],{"href":175},"https:\u002F\u002Fsupport.google.com\u002Fwebmasters\u002Fanswer\u002F12918484?hl=en","bulk export"," as daily performance exports, with anonymized query text withheld. Bulk export ",[166,179,181],{"href":180},"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fblog\u002F2023\u002F02\u002Fbulk-data-export","avoids the API’s daily row limit",", which matters for larger sites. A new export does not fill in your earlier history.",[184,185,137],"h2",{"id":136},[187,188,189,202],"table",{},[190,191,192],"thead",{},[193,194,195,199],"tr",{},[196,197,198],"th",{},"Your job",[196,200,201],{},"Start here",[203,204,205,214,222,230],"tbody",{},[193,206,207,211],{},[208,209,210],"td",{},"Save a small report for a meeting",[208,212,213],{},"Download the report.",[193,215,216,219],{},[208,217,218],{},"Retrieve available dates before bulk export started",[208,220,221],{},"Use reports or the API.",[193,223,224,227],{},[208,225,226],{},"Keep an ongoing dataset for SQL analysis",[208,228,229],{},"Consider BigQuery bulk export.",[193,231,232,235],{},[208,233,234],{},"Keep files in a system you already operate",[208,236,237],{},"Consider a scheduled API extract.",[155,239,240,241,244],{},"API extracts retain Google's ",[166,242,243],{"href":56},"response and source-data limits",". Operating one also means handling credentials, failed requests, and missing dates.",[184,246,141],{"id":140},[155,248,249,250,253,254,258],{},"Google says the first export can take ",[159,251,252],{},"up to 48 hours after successful configuration"," and contains data for the export day. Earlier history comes from the ",[166,255,257],{"href":256},"https:\u002F\u002Fsupport.google.com\u002Fwebmasters\u002Fanswer\u002F12917675?hl=en","API or reports separately",".",[155,260,261],{},"For example, if your first successful export covers 11 September, don't assume the tables also contain August. Check the dates actually present before using the dataset for a month-over-month comparison.",[184,263,144],{"id":143},[155,265,266,267,270,271,274],{},"The ",[166,268,269],{"href":256},"setup guide"," requires a billed Google Cloud project, BigQuery APIs, and permissions for Google's export service account. Complete those steps before configuring ",[159,272,273],{},"Settings → Bulk data export"," in Search Console.",[155,276,277],{},"Choose the dataset location carefully. Google says it is difficult to change after exports begin. Review storage and query costs before connecting a dashboard that will repeatedly query the data.",[184,279,147],{"id":146},[155,281,282,283,287,288,292],{},"Google creates separate tables for property-level and URL-level performance, plus ",[284,285,286],"code",{},"ExportLog",". ",[166,289,291],{"href":290},"https:\u002F\u002Fsupport.google.com\u002Fwebmasters\u002Fanswer\u002F12917991?hl=en","The table reference"," documents several details that affect your results:",[294,295,296,300,303,308],"ul",{},[297,298,299],"li",{},"Rows can repeat their dimension keys. Aggregate metrics rather than assuming one row is already the complete total.",[297,301,302],{},"Anonymized-query rows can retain metrics while hiding the query text. Do not treat a hidden query as a recoverable keyword.",[297,304,305,307],{},[284,306,286],{}," records successful exports. A missing entry does not explain why an attempt failed.",[297,309,310],{},"Retention defaults can be overridden by project or organization policies. Check partition expiration before relying on long-term history.",[155,312,313,314,318],{},"Start with Google's ",[166,315,317],{"href":316},"https:\u002F\u002Fsupport.google.com\u002Fwebmasters\u002Fanswer\u002F12917174?hl=en","sample queries",". They show the required aggregation for the exported schema. Restrict the date range and selected columns to the analysis you need.",[184,320,150],{"id":149},[155,322,323],{},"If you combine an API backfill with ongoing bulk export, store the source beside each dataset. Do not silently append overlapping dates or expect identical detail coverage.",[155,325,326,327,330],{},"Before depending on either method, check the earliest saved date and a recent successful extraction. Then set a repeatable check for gaps. The ",[166,328,329],{"href":52},"retention guide"," explains what to preserve before it leaves Search Console.",{"publishedAt":125,"updatedAt":126,"title":123,"description":124,"navigation":332,"head":333,"ogImage":338},{"title":61},{"meta":334},[335],{"name":336,"content":337},"keywords","google search console bigquery, gsc bigquery export, gsc data warehouse",{"component":128,"props":339},{"title":130,"description":131},{"description":341,"toc":342},"Choose BigQuery bulk export when you need an ongoing Search Console dataset in a warehouse. Choose an API-based extract when you need earlier dates that are still available or want to manage the data elsewhere. You can use both, provided you track where their date ranges overlap.",{"title":151,"searchDepth":152,"depth":152,"links":343},[344,345,346,347,348],{"id":136,"depth":138,"text":137},{"id":140,"depth":138,"text":141},{"id":143,"depth":138,"text":144},{"id":146,"depth":138,"text":147},{"id":149,"depth":138,"text":150},"learnGsc\u002Flimits\u002F3.bigquery-alternative.md","md",{"title":61},{"meta":353},[354],{"name":336,"content":337},{"title":123,"description":124},"\u002Fopt\u002Factions-runner\u002F_work\u002Fgscdump.com\u002Fgscdump.com\u002Fcontent\u002Flearn-google-search-console\u002Flimits\u002F3.bigquery-alternative.md",{"loc":60,"lastmod":126},1793234288316]