[{"data":1,"prerenderedAt":742},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fapi\u002Ffindings":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":215,"body":216,"description":736,"extension":737,"group":177,"meta":738,"navigation":739,"path":194,"section":164,"seo":740,"stem":195,"__hash__":741},"docs\u002Fdocs\u002F7.api\u002F6.findings.md","Findings API",{"type":217,"value":218,"toc":730},"minimark",[219,223,232,315,325,330,393,396,403,447,453,463,471,475,478,543,546,550,629,635,681,702,708,712,726],[220,221,215],"h1",{"id":222},"findings-api",[224,225,226,227,231],"p",{},"Paths on this page are relative to ",[228,229,230],"code",{},"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1",".",[233,234,235,254],"table",{},[236,237,238],"thead",{},[239,240,241,245,248,251],"tr",{},[242,243,244],"th",{},"Method",[242,246,247],{},"Path",[242,249,250],{},"Scope",[242,252,253],{},"Role",[255,256,257,278,295],"tbody",{},[239,258,259,265,270,275],{},[260,261,262],"td",{},[228,263,264],{},"GET",[260,266,267],{},[228,268,269],{},"\u002Fbrands\u002F{brandId}\u002Ffindings",[260,271,272],{},[228,273,274],{},"read",[260,276,277],{},"viewer",[239,279,280,284,289,293],{},[260,281,282],{},[228,283,264],{},[260,285,286],{},[228,287,288],{},"\u002Ffindings\u002F{findingId}",[260,290,291],{},[228,292,274],{},[260,294,277],{},[239,296,297,302,307,312],{},[260,298,299],{},[228,300,301],{},"POST",[260,303,304],{},[228,305,306],{},"\u002Ffindings\u002F{findingId}\u002Ftransition",[260,308,309],{},[228,310,311],{},"write",[260,313,314],{},"editor",[224,316,317,320,321,324],{},[228,318,319],{},"{findingId}"," accepts the finding's id or its ",[228,322,323],{},"number"," — 1, 2, 3… per workspace in\nfirst-seen order, never reused.",[326,327,329],"h2",{"id":328},"list-findings","List findings",[331,332,333,375],"code-group",{},[334,335,341],"pre",{"className":336,"code":337,"filename":338,"language":339,"meta":340,"style":340},"language-bash shiki shiki-themes github-light github-dark","curl \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fbrands\u002Fwaitlister\u002Ffindings?states=open,acknowledged\" \\\n  -H \"Authorization: Bearer $SHRUWD_API_KEY\"\n","curl","bash","",[228,342,343,359],{"__ignoreMap":340},[344,345,348,351,355],"span",{"class":346,"line":347},"line",1,[344,349,338],{"class":350},"sScJk",[344,352,354],{"class":353},"sZZnC"," \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fbrands\u002Fwaitlister\u002Ffindings?states=open,acknowledged\"",[344,356,358],{"class":357},"sj4cs"," \\\n",[344,360,362,365,368,372],{"class":346,"line":361},2,[344,363,364],{"class":357},"  -H",[344,366,367],{"class":353}," \"Authorization: Bearer ",[344,369,371],{"class":370},"sVt8B","$SHRUWD_API_KEY",[344,373,374],{"class":353},"\"\n",[334,376,381],{"className":377,"code":378,"filename":379,"language":380,"meta":340,"style":340},"language-powershell shiki shiki-themes github-light github-dark","Invoke-RestMethod -Uri \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fbrands\u002Fwaitlister\u002Ffindings?states=open,acknowledged\" `\n  -Headers @{ Authorization = \"Bearer $env:SHRUWD_API_KEY\" }\n","PowerShell","powershell",[228,382,383,388],{"__ignoreMap":340},[344,384,385],{"class":346,"line":347},[344,386,387],{},"Invoke-RestMethod -Uri \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Fbrands\u002Fwaitlister\u002Ffindings?states=open,acknowledged\" `\n",[344,389,390],{"class":346,"line":361},[344,391,392],{},"  -Headers @{ Authorization = \"Bearer $env:SHRUWD_API_KEY\" }\n",[224,394,395],{},"Ordered the way the dashboard and the digest order them: severity, then confidence, then\nestimated impact.",[224,397,398,399,402],{},"Every row carries ",[228,400,401],{},"confidence",", which decides how much weight a finding deserves:",[233,404,405,415],{},[236,406,407],{},[239,408,409,412],{},[242,410,411],{},"Confidence",[242,413,414],{},"Meaning",[255,416,417,427,437],{},[239,418,419,424],{},[260,420,421],{},[228,422,423],{},"observed",[260,425,426],{},"A first-party fact, from your own logs or a live fetch of your page",[239,428,429,434],{},[260,430,431],{},[228,432,433],{},"inferred",[260,435,436],{},"Not directly observed, but every link in the chain is checkable in the evidence",[239,438,439,444],{},[260,440,441],{},[228,442,443],{},"heuristic",[260,445,446],{},"A correlation from comparing your pages with the ones being cited. A lead, not a fact",[224,448,449,450,452],{},"Never present a ",[228,451,443],{}," finding as a fact.",[224,454,455,456,459,460,231],{},"If your plan caps visible findings, the rest are counted in ",[228,457,458],{},"locked"," rather than hidden,\nand fetching one is ",[228,461,462],{},"403 not_entitled",[224,464,465,466,470],{},"Findings reads are ",[467,468,469],"strong",{},"not"," clamped to your history window — a finding older than the\nwindow is still a finding.",[326,472,474],{"id":473},"get-one-finding","Get one finding",[224,476,477],{},"Returns the full evidence, the recommendation's steps, and:",[233,479,480,489],{},[236,481,482],{},[239,483,484,487],{},[242,485,486],{},"Field",[242,488],{},[255,490,491,509,519,529],{},[239,492,493,498],{},[260,494,495],{},[228,496,497],{},"baseline",[260,499,500,501,504,505,508],{},"The snapshot captured at ",[228,502,503],{},"fix_applied",": metric values, intervals, ",[228,506,507],{},"n",", timestamp",[239,510,511,516],{},[260,512,513],{},[228,514,515],{},"stateChangedAt",[260,517,518],{},"When it entered its current state",[239,520,521,526],{},[260,522,523],{},[228,524,525],{},"events",[260,527,528],{},"Newest first, each with the payload it recorded — a recheck verdict's per-prompt gates are readable here",[239,530,531,540],{},[260,532,533,536,537],{},[228,534,535],{},"suppressedBy"," · ",[228,538,539],{},"suppressedByNumber",[260,541,542],{},"Set when a more fundamental finding on the same URL is masking this one",[224,544,545],{},"Suppression matters: there is no point restructuring a page for citation while your server\nis refusing the crawler that would read it.",[326,547,549],{"id":548},"transition-a-finding","Transition a finding",[331,551,552,604],{},[334,553,555],{"className":336,"code":554,"filename":338,"language":339,"meta":340,"style":340},"curl -X POST \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Ffindings\u002F7\u002Ftransition\" \\\n  -H \"Authorization: Bearer $SHRUWD_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"to\":\"fix_applied\",\"note\":\"Removed the Disallow for OAI-SearchBot\"}'\n",[228,556,557,572,585,595],{"__ignoreMap":340},[344,558,559,561,564,567,570],{"class":346,"line":347},[344,560,338],{"class":350},[344,562,563],{"class":357}," -X",[344,565,566],{"class":353}," POST",[344,568,569],{"class":353}," \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Ffindings\u002F7\u002Ftransition\"",[344,571,358],{"class":357},[344,573,574,576,578,580,583],{"class":346,"line":361},[344,575,364],{"class":357},[344,577,367],{"class":353},[344,579,371],{"class":370},[344,581,582],{"class":353},"\"",[344,584,358],{"class":357},[344,586,588,590,593],{"class":346,"line":587},3,[344,589,364],{"class":357},[344,591,592],{"class":353}," \"Content-Type: application\u002Fjson\"",[344,594,358],{"class":357},[344,596,598,601],{"class":346,"line":597},4,[344,599,600],{"class":357},"  -d",[344,602,603],{"class":353}," '{\"to\":\"fix_applied\",\"note\":\"Removed the Disallow for OAI-SearchBot\"}'\n",[334,605,607],{"className":377,"code":606,"filename":379,"language":380,"meta":340,"style":340},"Invoke-RestMethod -Method Post -Uri \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Ffindings\u002F7\u002Ftransition\" `\n  -Headers @{ Authorization = \"Bearer $env:SHRUWD_API_KEY\" } `\n  -ContentType \"application\u002Fjson\" `\n  -Body '{\"to\":\"fix_applied\",\"note\":\"Removed the Disallow for OAI-SearchBot\"}'\n",[228,608,609,614,619,624],{"__ignoreMap":340},[344,610,611],{"class":346,"line":347},[344,612,613],{},"Invoke-RestMethod -Method Post -Uri \"https:\u002F\u002Fshruwd.io\u002Fapi\u002Fv1\u002Ffindings\u002F7\u002Ftransition\" `\n",[344,615,616],{"class":346,"line":361},[344,617,618],{},"  -Headers @{ Authorization = \"Bearer $env:SHRUWD_API_KEY\" } `\n",[344,620,621],{"class":346,"line":587},[344,622,623],{},"  -ContentType \"application\u002Fjson\" `\n",[344,625,626],{"class":346,"line":597},[344,627,628],{},"  -Body '{\"to\":\"fix_applied\",\"note\":\"Removed the Disallow for OAI-SearchBot\"}'\n",[224,630,631,634],{},[228,632,633],{},"to"," is one of:",[233,636,637,646],{},[236,638,639],{},[239,640,641,644],{},[242,642,643],{},"Value",[242,645,414],{},[255,647,648,658,671],{},[239,649,650,655],{},[260,651,652],{},[228,653,654],{},"acknowledged",[260,656,657],{},"You have picked it up",[239,659,660,664],{},[260,661,662],{},[228,663,503],{},[260,665,666,667,670],{},"The change is live. ",[467,668,669],{},"Captures the baseline"," and returns when the recheck will run",[239,672,673,678],{},[260,674,675],{},[228,676,677],{},"dismissed",[260,679,680],{},"Not a problem. Quiet for 90 days, then it may return",[682,683,685],"callout",{"type":684},"warning",[224,686,687,690,691,694,695,698,699,231],{},[228,688,689],{},"resolved"," and ",[228,692,693],{},"not_moved"," are ",[467,696,697],{},"refused",". Those verdicts belong to the recheck, which\ncompares the baseline against a fresh measurement — they are not something a caller, human\nor agent, can assert. See ",[700,701,109],"a",{"href":110},[224,703,704,705,707],{},"Mark ",[228,706,503],{}," only once the change is live. The baseline is captured at that moment,\nso marking it early compares your change against itself.",[326,709,711],{"id":710},"next-steps","Next steps",[713,714,715,721],"ul",{},[716,717,718,720],"li",{},[700,719,104],{"href":105}," — the full lifecycle",[716,722,723,725],{},[700,724,109],{"href":110}," — how the verdict is decided",[727,728,729],"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":340,"searchDepth":587,"depth":587,"links":731},[732,733,734,735],{"id":328,"depth":361,"text":329},{"id":473,"depth":361,"text":474},{"id":548,"depth":361,"text":549},{"id":710,"depth":361,"text":711},"Read the diagnoses behind your numbers and transition them as you act on each one.","md",{},{"title":193,"description":196},{"title":215,"description":736},"eRlbwI0cnaUXFzfpUmgDpL39v7kh5zFNzDbPewWi1dM",1790003439877]