{"slug":"freeflyapparel-tc3udu","companyName":"Free Fly Apparel","domain":"freeflyapparel.com","url":"https://freeflyapparel.com","headline":"A browser-blocking storefront that publishes product data and checkout protocols but refuses the real browsers that agents use to shop.","compositeScore":65,"humanScore":0,"agentScore":65,"doorGap":0,"humanMeasured":0,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":true,"depth":"free","siteClass":"ecommerce","scannerVersion":10,"scannedAt":"2026-09-04T01:33:34.814Z","unlocked":false,"mission":{"steps":[{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://freeflyapparel.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://freeflyapparel.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://freeflyapparel.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://freeflyapparel.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://freeflyapparel.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"read the homepage as data rather than as a page"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"read the developer documentation"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read the prices without running JavaScript"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read the product catalogue as data"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read a product page as data"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read the returns and shipping terms"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The agent got through 10 of 17 requests, but could not find a contact route for machines. It came up empty on 6 other checks too."},"observations":null,"dimensions":[{"key":"machine_discoverability","audience":"agent","score":86,"summary":"No AI crawler is blocked by robots.txt or user agent rules; llms.txt is published; a sitemap lists 425 URLs including products; product pages carry Product markup with price, currency, brand and availability.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":10,"summary":"No API documentation is linked from the homepage or published at standard paths. The site publishes a UCP manifest for checkout but offers no developer surface to understand the store's data model, authentication, or how to integrate.","evidence":{"locked":true,"count":3}},{"key":"pricing_legibility","audience":"agent","score":90,"summary":"Prices appear in raw HTML on the homepage (9 instances) and across 3 product pages checked (77 instances). Product structured data publishes price and currency without requiring JavaScript. An agent can determine cost from the markup alone.","evidence":{"locked":true,"count":2}},{"key":"agent_aware_instrumentation","audience":"agent","score":57,"summary":"A Universal Commerce Protocol manifest at version 2026-08-25 is published, declaring 8 capabilities and 3 payment handlers, and a storefront MCP endpoint answers agent calls. No MCP manifest exists at the 3 standard paths checked.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":65,"summary":"No security.txt is published. The returns policy and shipping policy are readable as text at dedicated URLs but are not linked from product pages and do not appear in product structured data.","evidence":{"locked":true,"count":3}},{"key":"commercial_rails","audience":"agent","score":84,"summary":"Product markup carries price, currency, brand, identifier, and aggregate rating (4.8 stars, 287 reviews). The catalogue answers as data at /products.json. A UCP manifest publishes checkout capabilities.","evidence":{"locked":true,"count":4}},{"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":1}},{"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":1}},{"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":1}},{"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":1}}],"issues":[{"rank":1,"title":"Reviews load from Okendo by script, so a client that reads raw HTML sees the products without a single review.","dimensionKey":"pricing_legibility","evidence":{"locked":true,"count":1},"fix":null},{"rank":2,"title":"Product structured data omits return policy and shipping details, forcing agents to scrape text from separate policy pages instead of reading terms from the product markup.","dimensionKey":"machine_fetchable_trust","evidence":{"locked":true,"count":3},"fix":null},{"rank":3,"title":"No API documentation or developer surface exists, leaving agents and integrators without a way to understand the store's data model or build custom shopping experiences.","dimensionKey":"programmatic_onboarding","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":9,"summaries":[{"id":"bot_wall_guidance:notes","kind":"bot_wall_guidance","title":"Let verified assistants through","path":"notes","effort":{"minutes":60,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Assistant shopping and search crawlers reach the product, pricing and policy pages a buyer asks about."]}},{"id":"review_schema_vendor:notes","kind":"review_schema_vendor","title":"Put Okendo reviews in the page","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Review text and ratings reach crawlers that do not run the review widget's script."]}},{"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":"merchant_policy_jsonld:product-page","kind":"merchant_policy_jsonld","title":"Return policy and shipping structured data","path":"product page","effort":{"minutes":30,"role":"developer"},"outcome":{"dimension":"machine_fetchable_trust","external":["Assistants read the return window and shipping terms from structured data."]}},{"id":"policy_pages_text:notes","kind":"policy_pages_text","title":"Link the policy pages from the product page","path":"notes","effort":{"minutes":30,"role":"owner"},"outcome":{"dimension":"machine_fetchable_trust","external":["Returns and shipping pages read as text and are linked from every product page."]}},{"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":"pricing_legibility","checkId":"product_pages","key":"issue:pricing_legibility:product_pages"},{"type":"issue","dimensionKey":"machine_fetchable_trust","checkId":"security_txt","key":"issue:machine_fetchable_trust:security_txt"},{"type":"issue","dimensionKey":"programmatic_onboarding","checkId":null,"key":"issue:programmatic_onboarding:-"}]}}