# Free Fly Apparel: agent door 65, human door not measured
- Site: freeflyapparel.com
- Scanned: 2026-09-04
- Scan type: Basic scan
- Business type: ecommerce
- Report: https://www.seconddoor.io/r/freeflyapparel-tc3udu
- Scanner version: 10
A browser-blocking storefront that publishes product data and checkout protocols but refuses the real browsers that agents use to shop.
## Scores
| Measure | Score |
| --- | --- |
| Humans | not measured |
| Agents | 65/100 |
| Composite | 65/100 |
Agent door only. The human door could not be measured on this scan. A Door Gap needs both doors, so this scan does not report one.
## What the machine actually did
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.
- ok      reach the site at all
- ok      find out whether machines are welcome
- ok      ask whether the door opens for requests carrying the AI crawlers' names
- ok      read the site's own guide for language models
- ok      find out what pages exist
- missing find a contact route for machines
- missing find a published agent interface
- missing find an agent plugin manifest
- missing find out whether verified agents are recognised
- missing read the homepage as data rather than as a page
- missing find a machine readable API spec
- missing read the developer documentation
- ok      read the prices without running JavaScript
- ok      read the product catalogue as data
- ok      read a product page as data
- ok      read the returns and shipping terms
- ok      walk the way a visitor would, to a signup form or a product
## Top issues
1. **Reviews load from Okendo by script, so a client that reads raw HTML sees the products without a single review.** (pricing_legibility)
2. **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.** (machine_fetchable_trust)
3. **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.** (programmatic_onboarding)
The evidence and the recommended fix for each are on the report page: https://www.seconddoor.io/r/freeflyapparel-tc3udu
## Files generated from this scan
- **Let verified assistants through** at `notes`, 1 hour, developer. Verify: The next scan opens the homepage and the key pages in a real browser and under the search crawler names, and every one is served.
- **Put Okendo reviews in the page** at `notes`, 10 minutes, no developer needed. Verify: The next scan finds review text in the server HTML of a product page.
- **robots.txt rules for AI crawlers** at `/robots.txt`, 10 minutes, no developer needed. Verify: The next scan reads robots.txt and finds every search and agent crawler allowed, none of them kept off product or pricing paths.
- **Return policy and shipping structured data** at `product page`, 30 minutes, developer. Verify: The next scan reads a MerchantReturnPolicy on the product pages, and OfferShippingDetails when the shipping node was published.
- **Link the policy pages from the product page** at `notes`, 30 minutes, no developer needed. Verify: The next scan finds the returns and shipping policy pages linked from a product page.
- **Variants missing a GTIN or a brand** at `catalog-identifiers.csv`, 5 minutes, no developer needed. Verify: The next scan reads the catalogue feed and finds a valid GTIN on at least nine in ten variants and a brand on at least nine in ten products.
- **Organization structured data** at `homepage`, 15 minutes, developer. Verify: The next scan reads Organization and WebSite nodes in the homepage JSON-LD and the structured data check passes.
- **security.txt** at `/.well-known/security.txt`, 10 minutes, no developer needed. Verify: The next scan fetches /.well-known/security.txt as text and the security.txt check passes.
- **Machine interfaces: where you stand** at `notes`, 10 minutes, no developer needed. Verify: The next scan finds the interface you published answering at its well-known path, and that check passes.
Each file is written from what this scan found on the site. The content is in the JSON once the evidence is opened: https://www.seconddoor.io/api/reports/freeflyapparel-tc3udu
## The agent door
- **machine_discoverability** 86/100. 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.
- **programmatic_onboarding** 10/100. 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.
- **pricing_legibility** 90/100. 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.
- **agent_aware_instrumentation** 57/100. 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.
- **machine_fetchable_trust** 65/100. 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.
- **commercial_rails** 84/100. 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.
## The human door
- **steps_to_first_value** null/100. Could not verify: this scan did not reach the pages that would show it.
- **required_fields** null/100. Could not verify: this scan did not reach the pages that would show it.
- **verification_walls** null/100. Could not verify: this scan did not reach the pages that would show it.
- **error_recovery** null/100. Could not verify: this scan did not reach the pages that would show it.
---
Scored by SecondDoor. Method: https://www.seconddoor.io/methodology
Scan another site: https://www.seconddoor.io
Rate an issue or this report: POST https://www.seconddoor.io/api/feedback, or the rate_fix tool on https://www.seconddoor.io/api/mcp
