[{"data":1,"prerenderedAt":583},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fapi\u002Ffor-ai-agents":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":209,"body":215,"description":577,"extension":578,"group":202,"meta":579,"navigation":580,"path":210,"section":164,"seo":581,"stem":211,"__hash__":582},"docs\u002Fdocs\u002F7.api\u002F9.for-ai-agents.md",{"type":216,"value":217,"toc":568},"minimark",[218,222,226,231,300,307,317,320,323,373,377,385,389,392,398,405,424,428,431,434,500,545,548,552,564],[219,220,209],"h1",{"id":221},"for-ai-agents",[223,224,225],"p",{},"Everything on this site is readable without parsing HTML. If you are pointing a model at\nShruwd, start here.",[227,228,230],"h2",{"id":229},"the-four-entry-points","The four entry points",[232,233,234,247],"table",{},[235,236,237],"thead",{},[238,239,240,244],"tr",{},[241,242,243],"th",{},"URL",[241,245,246],{},"What it is",[248,249,250,265,277,289],"tbody",{},[238,251,252,262],{},[253,254,255],"td",{},[256,257,259],"a",{"href":258},"\u002Fllms.txt",[260,261,258],"code",{},[253,263,264],{},"A curated index. Every page, grouped by section, each linking to its markdown",[238,266,267,274],{},[253,268,269],{},[256,270,272],{"href":271},"\u002Fllms-full.txt",[260,273,271],{},[253,275,276],{},"The entire documentation as one file, each page tagged with its source URL",[238,278,279,286],{},[253,280,281],{},[256,282,284],{"href":283},"\u002Fskill.md",[260,285,283],{},[253,287,288],{},"A procedure for setting a brand up end to end, including the one step a human must do",[238,290,291,297],{},[253,292,293,294],{},"Any page ",[260,295,296],{},"+ .md",[253,298,299],{},"That page as plain markdown",[223,301,302,303,306],{},"Appending ",[260,304,305],{},".md"," works on every docs URL:",[308,309,314],"pre",{"className":310,"code":312,"language":313},[311],"language-text","\u002Fdocs\u002Fgetting-started\u002Fquickstart      the page\n\u002Fdocs\u002Fgetting-started\u002Fquickstart.md   the same page as markdown\n","text",[260,315,312],{"__ignoreMap":316},"",[223,318,319],{},"The markdown is the source these pages are built from, not a conversion of the rendered\nHTML. Presentational components are translated rather than dropped — a callout becomes a\nlabelled blockquote, a card becomes a link — so nothing loses its meaning on the way out.",[223,321,322],{},"Every page also declares its markdown twin in the HTML head, so a client that prefers\nmarkdown can find it without knowing the convention:",[308,324,328],{"className":325,"code":326,"language":327,"meta":316,"style":316},"language-html shiki shiki-themes github-light github-dark","\u003Clink rel=\"alternate\" type=\"text\u002Fmarkdown\" href=\"https:\u002F\u002Fshruwd.io\u002Fdocs\u002F…​.md\">\n","html",[260,329,330],{"__ignoreMap":316},[331,332,335,339,343,347,350,354,357,359,362,365,367,370],"span",{"class":333,"line":334},"line",1,[331,336,338],{"class":337},"sVt8B","\u003C",[331,340,342],{"class":341},"s9eBZ","link",[331,344,346],{"class":345},"sScJk"," rel",[331,348,349],{"class":337},"=",[331,351,353],{"class":352},"sZZnC","\"alternate\"",[331,355,356],{"class":345}," type",[331,358,349],{"class":337},[331,360,361],{"class":352},"\"text\u002Fmarkdown\"",[331,363,364],{"class":345}," href",[331,366,349],{"class":337},[331,368,369],{"class":352},"\"https:\u002F\u002Fshruwd.io\u002Fdocs\u002F…​.md\"",[331,371,372],{"class":337},">\n",[227,374,376],{"id":375},"copying-a-page-by-hand","Copying a page by hand",[223,378,379,380,384],{},"Every page carries a ",[381,382,383],"strong",{},"Copy page"," control under its title. It copies that page's markdown\nto your clipboard, and its menu opens the same page in ChatGPT or Claude with the URL\nalready loaded.",[227,386,388],{"id":387},"reading-the-api-instead","Reading the API instead",[223,390,391],{},"The REST API describes itself:",[308,393,396],{"className":394,"code":395,"language":313},[311],"https:\u002F\u002Fshruwd.io\u002Fopenapi.json\n",[260,397,395],{"__ignoreMap":316},[223,399,400,401,404],{},"That OpenAPI 3.1 document is the contract — the TypeScript SDK's types are generated from\nit. It needs no authentication to read, and every page names it in its head as\n",[260,402,403],{},"rel=\"service-desc\"",".",[223,406,407,408,410,411,416,417,423],{},"The ",[256,409,204],{"href":205}," is described at\n",[256,412,414],{"href":413},"\u002F.well-known\u002Fmcp.json",[260,415,413],{},": the package, the command and the key it\nneeds, in the ",[256,418,422],{"href":419,"rel":420},"https:\u002F\u002Fmcp-manifest.dev",[421],"nofollow","mcp-manifest"," format.",[227,425,427],{"id":426},"reading-a-metric-correctly","Reading a metric correctly",[223,429,430],{},"This is the thing agents most often get wrong, so check any output against it.",[223,432,433],{},"Every metric comes back with its uncertainty attached, or not at all:",[308,435,439],{"className":436,"code":437,"language":438,"meta":316,"style":316},"language-json shiki shiki-themes github-light github-dark","{ \"state\": \"ok\", \"point\": 0.142, \"lo\": 0.081, \"hi\": 0.226, \"n\": 42 }\n","json",[260,440,441],{"__ignoreMap":316},[331,442,443,446,450,453,456,459,462,464,467,469,472,474,477,479,482,484,487,489,492,494,497],{"class":333,"line":334},[331,444,445],{"class":337},"{ ",[331,447,449],{"class":448},"sj4cs","\"state\"",[331,451,452],{"class":337},": ",[331,454,455],{"class":352},"\"ok\"",[331,457,458],{"class":337},", ",[331,460,461],{"class":448},"\"point\"",[331,463,452],{"class":337},[331,465,466],{"class":448},"0.142",[331,468,458],{"class":337},[331,470,471],{"class":448},"\"lo\"",[331,473,452],{"class":337},[331,475,476],{"class":448},"0.081",[331,478,458],{"class":337},[331,480,481],{"class":448},"\"hi\"",[331,483,452],{"class":337},[331,485,486],{"class":448},"0.226",[331,488,458],{"class":337},[331,490,491],{"class":448},"\"n\"",[331,493,452],{"class":337},[331,495,496],{"class":448},"42",[331,498,499],{"class":337}," }\n",[501,502,503,517,527,538],"ul",{},[504,505,506,458,509,512,513,516],"li",{},[260,507,508],{},"point",[260,510,511],{},"lo"," and ",[260,514,515],{},"hi"," are proportions from 0 to 1: 0.142 is 14.2%.",[504,518,519,522,523,526],{},[260,520,521],{},"state: \"insufficient_data\""," means fewer than ten responses exist. ",[381,524,525],{},"It is not zero.","\nSay \"not enough data yet\", never \"0%\".",[504,528,529,530,532,533,512,535,537],{},"Never report ",[260,531,508],{}," without ",[260,534,511],{},[260,536,515],{},". The interval is often wide, and a bare\nnumber reads as far more certain than the measurement is.",[504,539,540,541,544],{},"Never call a change an improvement from two point estimates. Shruwd applies its own\n",[256,542,543],{"href":135},"movement gates"," and reports the verdict — use\nthat rather than recomputing it.",[223,546,547],{},"There is no shape in the API that returns a number without its interval. That is\ndeliberate, and it holds for agents exactly as it does for the dashboard.",[227,549,551],{"id":550},"next-steps","Next steps",[501,553,554,559],{},[504,555,556,558],{},[256,557,169],{"href":170}," — authentication, errors, limits",[504,560,561,563],{},[256,562,204],{"href":205}," — the tool interface for Claude and Cursor",[565,566,567],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":316,"searchDepth":569,"depth":569,"links":570},3,[571,573,574,575,576],{"id":229,"depth":572,"text":230},2,{"id":375,"depth":572,"text":376},{"id":387,"depth":572,"text":388},{"id":426,"depth":572,"text":427},{"id":550,"depth":572,"text":551},"Every page of these docs is available as markdown, plus a curated index, the whole corpus in one file, and a ready-made setup procedure.","md",{},{"title":209,"description":212},{"title":209,"description":577},"-ug652TQE7drbnWtBhUUaleqqDmo1lkBZEzV504eWL0",1790003440051]