# how we rate.

6 binary criteria per level. need 4/6 to pass.

your level is the highest one you pass. L0 means no level passed yet.

L1

## Basic Accessibility

can agents read your content?

- Uses semantic HTML elements (header, nav, main, article, section, footer) instead of just divs `l1_semantic_html`
- Has proper meta tags (title, description, og:tags, twitter:card) `l1_meta_tags`
- Includes Schema.org JSON-LD structured data `l1_schema_org`
- Does not block automated access with CAPTCHAs on public content `l1_no_captcha`
- Content is server-side rendered (visible in HTML source, not just JS-rendered) `l1_ssr_content`
- Uses clean, readable URLs (no excessive query params or hash fragments) `l1_clean_urls`

L2

## Discoverability

can agents find things on your site?

- Has a robots.txt that allows legitimate bot access `l2_robots_txt`
- Provides an XML sitemap `l2_sitemap`
- Has a /llms.txt file describing the site for LLMs `l2_llms_txt`
- Publishes an OpenAPI/Swagger specification for its API `l2_openapi_spec`
- Has comprehensive, machine-readable documentation `l2_documentation`
- Primary content is text-based (not locked in images/videos/PDFs) `l2_text_content`

L3

## Structured Interaction

can agents talk to your APIs?

- Provides a structured REST or GraphQL API `l3_structured_api`
- API returns JSON responses with consistent schema `l3_json_responses`
- API supports search and filtering parameters `l3_search_filter_api`
- Has an A2A agent card at /.well-known/agent.json `l3_a2a_agent_card`
- Rate limits are documented and return proper 429 responses with Retry-After `l3_rate_limits_documented`
- API returns structured error responses with error codes and messages `l3_structured_errors`

L4

## Agent Integration

can agents do real work on your site?

- Provides an MCP (Model Context Protocol) server `l4_mcp_server`
- Supports WebMCP for browser-based agent interaction `l4_webmcp`
- API supports write operations (POST/PUT/PATCH/DELETE), not just reads `l4_write_api`
- Supports agent-friendly authentication (API keys, OAuth client credentials) `l4_agent_auth`
- Supports webhooks for event notifications `l4_webhooks`
- Write operations support idempotency keys `l4_idempotency`

L5

## Autonomous Operation

can agents operate autonomously?

- Supports event streaming (SSE, WebSockets) for real-time updates `l5_event_streaming`
- Supports agent-to-agent capability negotiation `l5_agent_negotiation`
- Has a subscription/management API for agents `l5_subscription_api`
- Supports multi-step workflow orchestration `l5_workflow_orchestration`
- Can proactively notify agents of relevant changes `l5_proactive_notifications`
- Supports cross-service handoff between agents `l5_cross_service_handoff`
