[{"data":1,"prerenderedAt":1193},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fapi\u002Fapi-overview":213},[4],{"title":5,"path":6,"stem":7,"children":8,"page":30},"Docs","\u002Fdocs","docs",[9,31,56,98,118,138,163],{"title":10,"description":11,"group":11,"path":12,"stem":13,"children":14,"page":30},"Getting started",null,"\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[15,20,25],{"title":16,"path":17,"stem":18,"description":19,"group":11},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","docs\u002F1.getting-started\u002F1.overview","What Shruwd does and what you get out of it.",{"title":21,"path":22,"stem":23,"description":24,"group":11},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F1.getting-started\u002F2.quickstart","From an empty account to your first measurement.",{"title":26,"path":27,"stem":28,"description":29,"group":11},"Reading your results","\u002Fdocs\u002Fgetting-started\u002Freading-your-results","docs\u002F1.getting-started\u002F3.reading-your-results","What the four numbers mean, and when to trust them.",false,{"title":32,"description":11,"group":11,"path":33,"stem":34,"children":35,"page":30},"What you track","\u002Fdocs\u002Ftracking","docs\u002F2.tracking",[36,41,46,51],{"title":37,"path":38,"stem":39,"description":40,"group":11},"Brands","\u002Fdocs\u002Ftracking\u002Fbrands","docs\u002F2.tracking\u002F1.brands","Add, rename and archive the brands you measure.",{"title":42,"path":43,"stem":44,"description":45,"group":11},"Prompts","\u002Fdocs\u002Ftracking\u002Fprompts","docs\u002F2.tracking\u002F2.prompts","Choose and manage the questions Shruwd asks each engine.",{"title":47,"path":48,"stem":49,"description":50,"group":11},"Competitors","\u002Fdocs\u002Ftracking\u002Fcompetitors","docs\u002F2.tracking\u002F3.competitors","Track the brands you are compared against, and how they are matched.",{"title":52,"path":53,"stem":54,"description":55,"group":11},"Connecting Search Console","\u002Fdocs\u002Ftracking\u002Fconnecting-search-console","docs\u002F2.tracking\u002F4.connecting-search-console","Add per-page search demand so two diagnostics can run.",{"title":57,"description":11,"group":11,"path":58,"stem":59,"children":60,"page":30},"Crawler logs","\u002Fdocs\u002Fcrawler-logs","docs\u002F3.crawler-logs",[61,66,72,77,82,87,93],{"title":62,"path":63,"stem":64,"description":65,"group":11},"Choosing a log path","\u002Fdocs\u002Fcrawler-logs\u002Fchoosing-a-log-path","docs\u002F3.crawler-logs\u002F1.choosing-a-log-path","Pick the way of sending crawler logs that matches your hosting.",{"title":67,"path":68,"stem":69,"description":70,"group":71},"Platform log drains","\u002Fdocs\u002Fcrawler-logs\u002Fplatform-log-drains","docs\u002F3.crawler-logs\u002F2.platform-log-drains","Send logs from Vercel, Netlify, Fly and similar. No code.","Setup guides",{"title":73,"path":74,"stem":75,"description":76,"group":71},"Cloudflare Worker","\u002Fdocs\u002Fcrawler-logs\u002Fcloudflare-worker","docs\u002F3.crawler-logs\u002F3.cloudflare-worker","Forward crawler hits from behind Cloudflare, on any plan.",{"title":78,"path":79,"stem":80,"description":81,"group":71},"Cloudflare Logpush","\u002Fdocs\u002Fcrawler-logs\u002Fcloudflare-logpush","docs\u002F3.crawler-logs\u002F4.cloudflare-logpush","Send zone request logs straight to Shruwd. Enterprise zones, no code.",{"title":83,"path":84,"stem":85,"description":86,"group":71},"Server middleware","\u002Fdocs\u002Fcrawler-logs\u002Fserver-middleware","docs\u002F3.crawler-logs\u002F5.server-middleware","Forward crawler hits from a Nuxt or Nitro origin. Last resort.",{"title":88,"path":89,"stem":90,"description":91,"group":92},"Crawlers tracked","\u002Fdocs\u002Fcrawler-logs\u002Fcrawlers-tracked","docs\u002F3.crawler-logs\u002F6.crawlers-tracked","Which bots Shruwd recognises, and how a hit is verified.","Reference",{"title":94,"path":95,"stem":96,"description":97,"group":92},"Ingest not arriving","\u002Fdocs\u002Fcrawler-logs\u002Fingest-not-arriving","docs\u002F3.crawler-logs\u002F7.ingest-not-arriving","Diagnose a log drain that is not delivering.",{"title":99,"description":11,"group":11,"path":100,"stem":101,"children":102,"page":30},"Findings and fixes","\u002Fdocs\u002Ffindings","docs\u002F4.findings",[103,108,113],{"title":104,"path":105,"stem":106,"description":107,"group":11},"How findings work","\u002Fdocs\u002Ffindings\u002Fhow-findings-work","docs\u002F4.findings\u002F1.how-findings-work","What a finding is, how much to trust it, and how to prove your fix worked.",{"title":109,"path":110,"stem":111,"description":112,"group":11},"Rechecks","\u002Fdocs\u002Ffindings\u002Frechecks","docs\u002F4.findings\u002F2.rechecks","How Shruwd proves whether your fix moved the number.",{"title":114,"path":115,"stem":116,"description":117,"group":11},"Findings reference","\u002Fdocs\u002Ffindings\u002Ffindings-reference","docs\u002F4.findings\u002F3.findings-reference","Every diagnostic Shruwd runs, what triggers it and what to do.",{"title":119,"description":11,"group":11,"path":120,"stem":121,"children":122,"page":30},"Metrics","\u002Fdocs\u002Fmetrics","docs\u002F5.metrics",[123,128,133],{"title":124,"path":125,"stem":126,"description":127,"group":11},"Metric definitions","\u002Fdocs\u002Fmetrics\u002Fmetric-definitions","docs\u002F5.metrics\u002F1.metric-definitions","Exactly what each number counts, and when it is undefined.",{"title":129,"path":130,"stem":131,"description":132,"group":11},"Confidence and sample size","\u002Fdocs\u002Fmetrics\u002Fconfidence-and-sample-size","docs\u002F5.metrics\u002F2.confidence-and-sample-size","Why every number has a range, and why some are withheld.",{"title":134,"path":135,"stem":136,"description":137,"group":11},"When a number has moved","\u002Fdocs\u002Fmetrics\u002Fwhen-a-number-has-moved","docs\u002F5.metrics\u002F3.when-a-number-has-moved","The rule Shruwd uses before calling a change real.",{"title":139,"description":11,"group":11,"path":140,"stem":141,"children":142,"page":30},"Account","\u002Fdocs\u002Faccount","docs\u002F6.account",[143,148,153,158],{"title":144,"path":145,"stem":146,"description":147,"group":11},"Plans and limits","\u002Fdocs\u002Faccount\u002Fplans-and-limits","docs\u002F6.account\u002F1.plans-and-limits","What each plan includes and what happens when you reach a limit.",{"title":149,"path":150,"stem":151,"description":152,"group":11},"Team and roles","\u002Fdocs\u002Faccount\u002Fteam-and-roles","docs\u002F6.account\u002F2.team-and-roles","Invite people, set what they can change, and remove access.",{"title":154,"path":155,"stem":156,"description":157,"group":11},"Billing","\u002Fdocs\u002Faccount\u002Fbilling","docs\u002F6.account\u002F3.billing","Change plan, read your usage, and handle a failed payment.",{"title":159,"path":160,"stem":161,"description":162,"group":11},"Email notifications","\u002Fdocs\u002Faccount\u002Femail-notifications","docs\u002F6.account\u002F4.email-notifications","What Shruwd emails you, and how to turn it off.",{"title":164,"description":11,"group":11,"path":165,"stem":166,"children":167,"page":30},"Build on Shruwd","\u002Fdocs\u002Fapi","docs\u002F7.api",[168,173,178,182,187,192,197,203,208],{"title":169,"path":170,"stem":171,"description":172,"group":11},"API overview","\u002Fdocs\u002Fapi\u002Fapi-overview","docs\u002F7.api\u002F1.api-overview","Authentication, errors, limits and the rules every endpoint follows.",{"title":37,"path":174,"stem":175,"description":176,"group":177},"\u002Fdocs\u002Fapi\u002Fbrands","docs\u002F7.api\u002F2.brands","Create, read, rename and archive brands over the API.","Endpoints",{"title":42,"path":179,"stem":180,"description":181,"group":177},"\u002Fdocs\u002Fapi\u002Fprompts","docs\u002F7.api\u002F3.prompts","Add, edit and retire the questions asked every cycle.",{"title":183,"path":184,"stem":185,"description":186,"group":177},"Entities","\u002Fdocs\u002Fapi\u002Fentities","docs\u002F7.api\u002F4.entities","Manage the brand and its competitors, and the aliases that count.",{"title":188,"path":189,"stem":190,"description":191,"group":177},"Measurement","\u002Fdocs\u002Fapi\u002Fmeasurement","docs\u002F7.api\u002F5.measurement","Run cycles and read visibility, crawlers and individual answers.",{"title":193,"path":194,"stem":195,"description":196,"group":177},"Findings","\u002Fdocs\u002Fapi\u002Ffindings","docs\u002F7.api\u002F6.findings","Read diagnosed findings and move them through their lifecycle.",{"title":198,"path":199,"stem":200,"description":201,"group":202},"TypeScript SDK","\u002Fdocs\u002Fapi\u002Ftypescript-sdk","docs\u002F7.api\u002F7.typescript-sdk","A typed client for the Shruwd API.","Clients and agents",{"title":204,"path":205,"stem":206,"description":207,"group":202},"MCP server","\u002Fdocs\u002Fapi\u002Fmcp-server","docs\u002F7.api\u002F8.mcp-server","Give Claude or Cursor tools to run Shruwd.",{"title":209,"path":210,"stem":211,"description":212,"group":202},"For AI agents","\u002Fdocs\u002Fapi\u002Ffor-ai-agents","docs\u002F7.api\u002F9.for-ai-agents","Machine-readable versions of everything here.",{"id":214,"title":169,"body":215,"description":1187,"extension":1188,"group":11,"meta":1189,"navigation":1190,"path":170,"section":164,"seo":1191,"stem":171,"__hash__":1192},"docs\u002Fdocs\u002F7.api\u002F1.api-overview.md",{"type":216,"value":217,"toc":1170},"minimark",[218,222,226,237,248,261,266,274,335,338,343,396,402,406,409,463,477,481,484,490,503,507,510,563,566,570,573,638,651,674,678,685,750,804,808,1046,1050,1053,1083,1098,1102,1108,1119,1129,1133,1143,1147,1166],[219,220,169],"h1",{"id":221},"api-overview",[223,224,225],"p",{},"Everything the dashboard does, the API does — it is the same surface, not a mirror of one.",[227,228,233],"pre",{"className":229,"code":231,"language":232},[230],"language-text","https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\n","text",[234,235,231],"code",{"__ignoreMap":236},"",[223,238,239,240,243,244,247],{},"Paths in these docs are relative to that base, as in the OpenAPI document: ",[234,241,242],{},"POST \u002Fbrands","\nis ",[234,245,246],{},"POST https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fbrands",".",[223,249,250,251,257,258,247],{},"JSON in, JSON out, UTF-8. The contract describes itself in OpenAPI 3.1 at\n",[252,253,255],"a",{"href":254},"\u002Fopenapi.json",[234,256,254],{},", which needs no key to read. The same document is also\nserved at ",[234,259,260],{},"\u002Fapi\u002Fv1\u002Fopenapi.json",[262,263,265],"h2",{"id":264},"authenticating","Authenticating",[223,267,268,269,273],{},"Mint a key in the dashboard under ",[270,271,272],"strong",{},"Account → API keys",", then send it as a bearer token.",[275,276,277,317],"code-group",{},[227,278,283],{"className":279,"code":280,"filename":281,"language":282,"meta":236,"style":236},"language-bash shiki shiki-themes github-light github-dark","curl \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fworkspace\" \\\n  -H \"Authorization: Bearer $SHRUWD_API_KEY\"\n","curl","bash",[234,284,285,301],{"__ignoreMap":236},[286,287,290,293,297],"span",{"class":288,"line":289},"line",1,[286,291,281],{"class":292},"sScJk",[286,294,296],{"class":295},"sZZnC"," \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fworkspace\"",[286,298,300],{"class":299},"sj4cs"," \\\n",[286,302,304,307,310,314],{"class":288,"line":303},2,[286,305,306],{"class":299},"  -H",[286,308,309],{"class":295}," \"Authorization: Bearer ",[286,311,313],{"class":312},"sVt8B","$SHRUWD_API_KEY",[286,315,316],{"class":295},"\"\n",[227,318,323],{"className":319,"code":320,"filename":321,"language":322,"meta":236,"style":236},"language-powershell shiki shiki-themes github-light github-dark","Invoke-RestMethod -Uri \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fworkspace\" `\n  -Headers @{ Authorization = \"Bearer $env:SHRUWD_API_KEY\" }\n","PowerShell","powershell",[234,324,325,330],{"__ignoreMap":236},[286,326,327],{"class":288,"line":289},[286,328,329],{},"Invoke-RestMethod -Uri \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fworkspace\" `\n",[286,331,332],{"class":288,"line":303},[286,333,334],{},"  -Headers @{ Authorization = \"Bearer $env:SHRUWD_API_KEY\" }\n",[223,336,337],{},"Keys can only be created from a signed-in session. A key uses the product; it can never\nadminister the account — it cannot mint other keys, change billing, or delete anything\nthat is not brand configuration.",[339,340,342],"h3",{"id":341},"scopes","Scopes",[344,345,346,359],"table",{},[347,348,349],"thead",{},[350,351,352,356],"tr",{},[353,354,355],"th",{},"Scope",[353,357,358],{},"Grants",[360,361,362,376,386],"tbody",{},[350,363,364,370],{},[365,366,367],"td",{},[234,368,369],{},"read",[365,371,372,373],{},"Every ",[234,374,375],{},"GET",[350,377,378,383],{},[365,379,380],{},[234,381,382],{},"write",[365,384,385],{},"Brand, prompt and entity writes; finding transitions; manual cycles; ingest tokens",[350,387,388,393],{},[365,389,390],{},[234,391,392],{},"default",[365,394,395],{},"Both",[223,397,398,399,247],{},"A request outside its key's scopes is ",[234,400,401],{},"403 insufficient_scope",[339,403,405],{"id":404},"roles","Roles",[223,407,408],{},"A request acts with your role in the workspace.",[344,410,411,421],{},[347,412,413],{},[350,414,415,418],{},[353,416,417],{},"Role",[353,419,420],{},"Can",[360,422,423,433,443,453],{},[350,424,425,430],{},[365,426,427],{},[234,428,429],{},"viewer",[365,431,432],{},"Every read",[350,434,435,440],{},[365,436,437],{},[234,438,439],{},"editor",[365,441,442],{},"Prompts, competitors, finding transitions, brand name and timezone, run a cycle",[350,444,445,450],{},[365,446,447],{},[234,448,449],{},"admin",[365,451,452],{},"The above, plus invites, connections and ingest tokens",[350,454,455,460],{},[365,456,457],{},[234,458,459],{},"owner",[365,461,462],{},"The above, plus creating and archiving brands, and billing",[223,464,465,466,469,470,473,474,247],{},"A key never exceeds its holder's role. Refusals are ",[234,467,468],{},"403 not_a_member"," and\n",[234,471,472],{},"403 insufficient_role",", the latter carrying ",[234,475,476],{},"details: { required, role }",[262,478,480],{"id":479},"workspaces-are-implicit","Workspaces are implicit",[223,482,483],{},"Your key determines the workspace. No path or body ever carries a workspace id.",[223,485,486,487,489],{},"If you own no workspace, your first ",[234,488,242],{}," creates one. There is no workspace\nresource to set up first.",[223,491,492,493,498,499,502],{},"A brand or finding id belonging to another workspace returns ",[270,494,495],{},[234,496,497],{},"404",", not ",[234,500,501],{},"403"," —\nindistinguishable from an id that does not exist.",[262,504,506],{"id":505},"identifiers","Identifiers",[223,508,509],{},"Ids are ULIDs and opaque. Two human-readable handles sit beside them, and both are\naccepted wherever the id is:",[344,511,512,525],{},[347,513,514],{},[350,515,516,519,522],{},[353,517,518],{},"Handle",[353,520,521],{},"Used by",[353,523,524],{},"Example",[360,526,527,545],{},[350,528,529,535,540],{},[365,530,531,532],{},"A brand's ",[234,533,534],{},"slug",[365,536,537],{},[234,538,539],{},"{brandId}",[365,541,542],{},[234,543,544],{},"\u002Fbrands\u002Fwaitlister",[350,546,547,553,558],{},[365,548,549,550],{},"A finding's ",[234,551,552],{},"number",[365,554,555],{},[234,556,557],{},"{findingId}",[365,559,560],{},[234,561,562],{},"\u002Ffindings\u002F7",[223,564,565],{},"Finding numbers start at 1 per workspace, in first-seen order, and are never reused.",[262,567,569],{"id":568},"every-metric-carries-its-uncertainty","Every metric carries its uncertainty",[223,571,572],{},"There is no shape in this API that returns a bare number.",[227,574,578],{"className":575,"code":576,"language":577,"meta":236,"style":236},"language-json shiki shiki-themes github-light github-dark","{ \"state\": \"ok\", \"point\": 0.142, \"lo\": 0.081, \"hi\": 0.226, \"n\": 42 }\n","json",[234,579,580],{"__ignoreMap":236},[286,581,582,585,588,591,594,597,600,602,605,607,610,612,615,617,620,622,625,627,630,632,635],{"class":288,"line":289},[286,583,584],{"class":312},"{ ",[286,586,587],{"class":299},"\"state\"",[286,589,590],{"class":312},": ",[286,592,593],{"class":295},"\"ok\"",[286,595,596],{"class":312},", ",[286,598,599],{"class":299},"\"point\"",[286,601,590],{"class":312},[286,603,604],{"class":299},"0.142",[286,606,596],{"class":312},[286,608,609],{"class":299},"\"lo\"",[286,611,590],{"class":312},[286,613,614],{"class":299},"0.081",[286,616,596],{"class":312},[286,618,619],{"class":299},"\"hi\"",[286,621,590],{"class":312},[286,623,624],{"class":299},"0.226",[286,626,596],{"class":312},[286,628,629],{"class":299},"\"n\"",[286,631,590],{"class":312},[286,633,634],{"class":299},"42",[286,636,637],{"class":312}," }\n",[223,639,640,596,643,646,647,650],{},[234,641,642],{},"point",[234,644,645],{},"lo"," and ",[234,648,649],{},"hi"," are proportions from 0 to 1: 0.142 is 14.2%.",[223,652,653,656,657,596,660,663,664,667,668,671,672,247],{},[234,654,655],{},"state"," is ",[234,658,659],{},"ok",[234,661,662],{},"insufficient_data"," (fewer than ten responses — ",[270,665,666],{},"not zero","), or\n",[234,669,670],{},"undefined",". See ",[252,673,26],{"href":27},[262,675,677],{"id":676},"errors","Errors",[223,679,680,681,684],{},"The response body ",[270,682,683],{},"is"," the error. There is no wrapper.",[227,686,688],{"className":575,"code":687,"language":577,"meta":236,"style":236},"{ \"code\": \"plan_limit\", \"message\": \"…\", \"retryable\": false, \"details\": { \"limit\": 25, \"current\": 25 } }\n",[234,689,690],{"__ignoreMap":236},[286,691,692,694,697,699,702,704,707,709,712,714,717,719,722,724,727,730,733,735,738,740,743,745,747],{"class":288,"line":289},[286,693,584],{"class":312},[286,695,696],{"class":299},"\"code\"",[286,698,590],{"class":312},[286,700,701],{"class":295},"\"plan_limit\"",[286,703,596],{"class":312},[286,705,706],{"class":299},"\"message\"",[286,708,590],{"class":312},[286,710,711],{"class":295},"\"…\"",[286,713,596],{"class":312},[286,715,716],{"class":299},"\"retryable\"",[286,718,590],{"class":312},[286,720,721],{"class":299},"false",[286,723,596],{"class":312},[286,725,726],{"class":299},"\"details\"",[286,728,729],{"class":312},": { ",[286,731,732],{"class":299},"\"limit\"",[286,734,590],{"class":312},[286,736,737],{"class":299},"25",[286,739,596],{"class":312},[286,741,742],{"class":299},"\"current\"",[286,744,590],{"class":312},[286,746,737],{"class":299},[286,748,749],{"class":312}," } }\n",[344,751,752,761],{},[347,753,754],{},[350,755,756,759],{},[353,757,758],{},"Field",[353,760],{},[360,762,763,775,784,794],{},[350,764,765,769],{},[365,766,767],{},[234,768,234],{},[365,770,771,772],{},"Stable and machine-readable. Branch on this, never on ",[234,773,774],{},"message",[350,776,777,781],{},[365,778,779],{},[234,780,774],{},[365,782,783],{},"Human-readable. May change at any time",[350,785,786,791],{},[365,787,788],{},[234,789,790],{},"retryable",[365,792,793],{},"Whether retrying the identical request could succeed",[350,795,796,801],{},[365,797,798],{},[234,799,800],{},"details",[365,802,803],{},"Present when there is something specific to say",[339,805,807],{"id":806},"common-codes","Common codes",[344,809,810,823],{},[347,811,812],{},[350,813,814,817,820],{},[353,815,816],{},"Code",[353,818,819],{},"Status",[353,821,822],{},"Meaning",[360,824,825,837,854,870,882,898,914,933,945,957,969,981,993,1005,1017,1029],{},[350,826,827,832,834],{},[365,828,829],{},[234,830,831],{},"not_found",[365,833,497],{},[365,835,836],{},"No such resource, or it belongs to another workspace",[350,838,839,844,846],{},[365,840,841],{},[234,842,843],{},"insufficient_scope",[365,845,501],{},[365,847,848,849,851,852],{},"The key lacks ",[234,850,369],{}," or ",[234,853,382],{},[350,855,856,865,867],{},[365,857,858,861,862],{},[234,859,860],{},"not_a_member"," · ",[234,863,864],{},"insufficient_role",[365,866,501],{},[365,868,869],{},"Your role is too low",[350,871,872,877,879],{},[365,873,874],{},[234,875,876],{},"not_entitled",[365,878,501],{},[365,880,881],{},"Your plan does not include this",[350,883,884,889,892],{},[365,885,886],{},[234,887,888],{},"plan_limit",[365,890,891],{},"409",[365,893,894,895,897],{},"A plan cap is used up. ",[234,896,800],{}," carries the numbers",[350,899,900,905,908],{},[365,901,902],{},[234,903,904],{},"rate_limited",[365,906,907],{},"429",[365,909,910,911],{},"See below. ",[234,912,913],{},"retryable: true",[350,915,916,927,930],{},[365,917,918,861,921,861,924],{},[234,919,920],{},"invalid_domain",[234,922,923],{},"invalid_name",[234,925,926],{},"invalid_timezone",[365,928,929],{},"422",[365,931,932],{},"Bad brand input",[350,934,935,940,942],{},[365,936,937],{},[234,938,939],{},"duplicate_domain",[365,941,891],{},[365,943,944],{},"Another active brand here has that domain",[350,946,947,952,954],{},[365,948,949],{},[234,950,951],{},"duplicate_prompt",[365,953,891],{},[365,955,956],{},"That prompt is already active on the brand",[350,958,959,964,966],{},[365,960,961],{},[234,962,963],{},"context_terms_required",[365,965,929],{},[365,967,968],{},"A short or common-word competitor name needs context terms",[350,970,971,976,978],{},[365,972,973],{},[234,974,975],{},"domain_taken",[365,977,891],{},[365,979,980],{},"Another entity of this brand owns that domain",[350,982,983,988,990],{},[365,984,985],{},[234,986,987],{},"self_entity",[365,989,891],{},[365,991,992],{},"The brand's own entity cannot be removed",[350,994,995,1000,1002],{},[365,996,997],{},[234,998,999],{},"snapshot_taken",[365,1001,891],{},[365,1003,1004],{},"A free-plan domain has already had its one measurement",[350,1006,1007,1012,1014],{},[365,1008,1009],{},[234,1010,1011],{},"workspace_on_hold",[365,1013,891],{},[365,1015,1016],{},"Measurement is paused pending review",[350,1018,1019,1024,1026],{},[365,1020,1021],{},[234,1022,1023],{},"suggestion_decided",[365,1025,891],{},[365,1027,1028],{},"That suggestion was already accepted or dismissed",[350,1030,1031,1036,1039],{},[365,1032,1033],{},[234,1034,1035],{},"empty_patch",[365,1037,1038],{},"400",[365,1040,1041,1042,1045],{},"A ",[234,1043,1044],{},"PATCH"," with no fields",[262,1047,1049],{"id":1048},"rate-limits","Rate limits",[223,1051,1052],{},"Per key, in fixed one-minute windows.",[344,1054,1055,1064],{},[347,1056,1057],{},[350,1058,1059,1061],{},[353,1060],{},[353,1062,1063],{},"Per minute",[360,1065,1066,1075],{},[350,1067,1068,1072],{},[365,1069,1070],{},[234,1071,375],{},[365,1073,1074],{},"120",[350,1076,1077,1080],{},[365,1078,1079],{},"Everything else",[365,1081,1082],{},"30",[223,1084,1085,1086,1089,1090,1093,1094,1097],{},"Over the limit is ",[234,1087,1088],{},"429 rate_limited"," with ",[234,1091,1092],{},"Retry-After"," in seconds. Honour it —\nthe ",[252,1095,1096],{"href":199},"SDK"," does this for you.",[262,1099,1101],{"id":1100},"times-and-ranges","Times and ranges",[223,1103,1104,1105,247],{},"Timestamps are ISO 8601 UTC. Days are ",[234,1106,1107],{},"YYYY-MM-DD",[1109,1110,1112],"callout",{"type":1111},"note",[223,1113,1114,1115,1118],{},"Date ranges default to ",[270,1116,1117],{},"today in the brand's timezone",", which is the calendar the\nmeasurements are bucketed on. UTC today can be a day ahead of it.",[223,1120,1121,1124,1125,1128],{},[234,1122,1123],{},"from"," is clamped to your plan's history window. When that happens the response says so\nin ",[234,1126,1127],{},"historyFrom"," rather than failing.",[262,1130,1132],{"id":1131},"versioning","Versioning",[223,1134,1135,1136,1139,1140,247],{},"The version is in the path. Changes within ",[234,1137,1138],{},"v1"," are additive only; anything breaking\nwould be ",[234,1141,1142],{},"\u002Fapi\u002Fv2",[262,1144,1146],{"id":1145},"next-steps","Next steps",[1148,1149,1150,1156,1161],"ul",{},[1151,1152,1153,1155],"li",{},[252,1154,37],{"href":174}," — create and manage what you measure",[1151,1157,1158,1160],{},[252,1159,198],{"href":199}," — a typed client over all of this",[1151,1162,1163,1165],{},[252,1164,209],{"href":210}," — machine-readable docs",[1167,1168,1169],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":236,"searchDepth":1171,"depth":1171,"links":1172},3,[1173,1177,1178,1179,1180,1183,1184,1185,1186],{"id":264,"depth":303,"text":265,"children":1174},[1175,1176],{"id":341,"depth":1171,"text":342},{"id":404,"depth":1171,"text":405},{"id":479,"depth":303,"text":480},{"id":505,"depth":303,"text":506},{"id":568,"depth":303,"text":569},{"id":676,"depth":303,"text":677,"children":1181},[1182],{"id":806,"depth":1171,"text":807},{"id":1048,"depth":303,"text":1049},{"id":1100,"depth":303,"text":1101},{"id":1131,"depth":303,"text":1132},{"id":1145,"depth":303,"text":1146},"Base URL, authentication, scopes, rate limits and the error shape shared by every Shruwd API endpoint.","md",{},{"title":169,"description":172},{"title":169,"description":1187},"gh05ldcx0Oz2n0VQ8aSTe6xLE0qkfzHZEfI7dpbXxNI",1790003439567]