{"slug":"brooklinen-7v6p6e","companyName":"Brooklinen","domain":"brooklinen.com","url":"https://brooklinen.com","headline":"Prices and products are readable to agents, but structured data and checkout automation are missing.","compositeScore":38,"humanScore":0,"agentScore":38,"doorGap":0,"humanMeasured":0,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":true,"depth":"free","siteClass":"ecommerce","scannerVersion":16,"scannedAt":"2026-09-08T19:55:02.986Z","unlocked":false,"mission":{"steps":[{"url":"https://brooklinen.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://brooklinen.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://brooklinen.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://brooklinen.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://www.brooklinen.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://brooklinen.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://brooklinen.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://brooklinen.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://brooklinen.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://brooklinen.com","outcome":"missing","purpose":"read the homepage as data rather than as a page"},{"url":"https://brooklinen.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://brooklinen.com","outcome":"ok","purpose":"read the prices without running JavaScript"},{"url":"https://brooklinen.com","outcome":"ok","purpose":"read the product catalogue as data"},{"url":"https://brooklinen.com","outcome":"ok","purpose":"read a product page as data"}],"verdict":"The agent got through 8 of 14 requests, but could not find a contact route for machines. It came up empty on 5 other checks too. That is enough missing for a machine to give up before it reaches a purchase."},"observations":null,"dimensions":[{"key":"machine_discoverability","audience":"agent","score":99,"summary":"No AI crawler is blocked by robots.txt or user agent rules; llms.txt is published; the sitemap lists 256 URLs including products; the catalogue answers as JSON at /products.json with brand data on each item; a real browser is served the.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":10,"summary":"No API surface, MCP manifest, or OpenAPI spec was found at any of the 9 standard paths checked. The store is a Shopify instance with a public product feed, but no documented programmatic entry point exists for agents to act without.","evidence":{"locked":true,"count":1}},{"key":"pricing_legibility","audience":"agent","score":45,"summary":"Prices are in the raw HTML of the 3 product pages read, 25 prices on the homepage itself, no Product structured data within the first 1.2 MB read of each product page.","evidence":{"locked":true,"count":2}},{"key":"agent_aware_instrumentation","audience":"agent","score":14,"summary":"The catalogue answers as data at /products.json, which is agent-aware. No MCP manifest exists at any of the 3 standard paths checked. No other instrumentation for agent coordination was found.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":40,"summary":"No security.txt file exists at /.well-known/security.txt. The homepage answers automated requests with HTTP 200 and serves a real browser normally. Trust signals are minimal.","evidence":{"locked":true,"count":2}},{"key":"commercial_rails","audience":"agent","score":19,"summary":"The catalogue feed at /products.json is open and readable, with brand data on each of 12 products. Shopify stores can syndicate to feeds, but the feed does not publish GTINs, which are required for most product syndication networks.","evidence":{"locked":true,"count":3}},{"key":"steps_to_first_value","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":0}},{"key":"required_fields","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":0}},{"key":"verification_walls","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":0}},{"key":"error_recovery","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":0}}],"issues":[{"rank":1,"title":"No MCP manifest was found at the 3 standard paths checked, so an agent has no published machine door to this site.","dimensionKey":"agent_aware_instrumentation","evidence":{"locked":true,"count":2},"fix":null},{"rank":2,"title":"No OpenAPI specification was found at the 6 standard paths checked, so a client must be written from prose instead of generated.","dimensionKey":"programmatic_onboarding","evidence":{"locked":true,"count":2},"fix":null},{"rank":3,"title":"The product feed lacks GTINs, which are required for syndication to most retail networks.","dimensionKey":"commercial_rails","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":5,"summaries":[{"id":"robots_search_bots:robots-txt","kind":"robots_search_bots","title":"robots.txt rules for AI crawlers","path":"/robots.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["The assistants' search crawlers read and cite the site to buyers; training stays the owner's decision."]}},{"id":"catalog_identifiers:catalog-identifiers-csv","kind":"catalog_identifiers","title":"Variants missing a GTIN or a brand","path":"catalog-identifiers.csv","effort":{"minutes":5,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Feed listings stop being rejected for a missing brand or GTIN."]}},{"id":"organization_jsonld:homepage","kind":"organization_jsonld","title":"Organization structured data","path":"homepage","effort":{"minutes":15,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Search and assistant crawlers read the company entity from the homepage rather than inferring it."]}},{"id":"security_txt:well-known-security-txt","kind":"security_txt","title":"security.txt","path":"/.well-known/security.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_fetchable_trust","external":["Researchers and automated scanners find a disclosure address instead of guessing one."]}},{"id":"interfaces_note:notes","kind":"interfaces_note","title":"Machine interfaces: where you stand","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["The developer surface is built in an order where every published pointer answers."]}}]},"feedback":{"endpoint":"/api/feedback","mcpTool":"rate_fix","targets":[{"type":"report","key":"report"},{"type":"dimension","dimensionKey":"machine_discoverability","key":"dimension:machine_discoverability"},{"type":"dimension","dimensionKey":"programmatic_onboarding","key":"dimension:programmatic_onboarding"},{"type":"dimension","dimensionKey":"pricing_legibility","key":"dimension:pricing_legibility"},{"type":"dimension","dimensionKey":"agent_aware_instrumentation","key":"dimension:agent_aware_instrumentation"},{"type":"dimension","dimensionKey":"machine_fetchable_trust","key":"dimension:machine_fetchable_trust"},{"type":"dimension","dimensionKey":"commercial_rails","key":"dimension:commercial_rails"},{"type":"dimension","dimensionKey":"steps_to_first_value","key":"dimension:steps_to_first_value"},{"type":"dimension","dimensionKey":"required_fields","key":"dimension:required_fields"},{"type":"dimension","dimensionKey":"verification_walls","key":"dimension:verification_walls"},{"type":"dimension","dimensionKey":"error_recovery","key":"dimension:error_recovery"},{"type":"issue","dimensionKey":"agent_aware_instrumentation","checkId":"mcp_manifest","key":"issue:agent_aware_instrumentation:mcp_manifest"},{"type":"issue","dimensionKey":"programmatic_onboarding","checkId":"openapi","key":"issue:programmatic_onboarding:openapi"},{"type":"issue","dimensionKey":"commercial_rails","checkId":null,"key":"issue:commercial_rails:-"}]}}