L2
balldontlie.io.
level 2: discoverable
BallDontLie is a sports data API providing real-time statistics for over 20 leagues, including the NBA, NFL, MLB, NHL, and various soccer, tennis, golf, and esports leagues. It allows developers to access player statistics, game data, and other sports-related information. The API offers a free tier and several paid subscription options.
LEVEL 1 /
BASIC ACCESSIBILITY
— 6/6
Uses semantic HTML elements (header, nav, main, article, section, footer) instead of just divs
PASS
Has proper meta tags (title, description, og:tags, twitter:card)
PASS
Includes Schema.org JSON-LD structured data
PASS
Does not block automated access with CAPTCHAs on public content
PASS
Content is server-side rendered (visible in HTML source, not just JS-rendered)
PASS
Uses clean, readable URLs (no excessive query params or hash fragments)
PASS
LEVEL 2 /
DISCOVERABILITY
— 5/6
Has a robots.txt that allows legitimate bot access
PASS
Provides an XML sitemap
PASS
Has a /llms.txt file describing the site for LLMs
FAIL
Publishes an OpenAPI/Swagger specification for its API
PASS
Has comprehensive, machine-readable documentation
PASS
Primary content is text-based (not locked in images/videos/PDFs)
PASS
LEVEL 3 /
STRUCTURED INTERACTION
— 2/6
Provides a structured REST or GraphQL API
FAIL
API returns JSON responses with consistent schema
PASS
API supports search and filtering parameters
FAIL
Has an A2A agent card at /.well-known/agent.json
FAIL
Rate limits are documented and return proper 429 responses with Retry-After
PASS
API returns structured error responses with error codes and messages
FAIL
LEVEL 4 /
AGENT INTEGRATION
— 2/6
Provides an MCP (Model Context Protocol) server
PASS
Supports WebMCP for browser-based agent interaction
FAIL
API supports write operations (POST/PUT/PATCH/DELETE), not just reads
FAIL
Supports agent-friendly authentication (API keys, OAuth client credentials)
PASS
Supports webhooks for event notifications
FAIL
Write operations support idempotency keys
FAIL
LEVEL 5 /
AUTONOMOUS OPERATION
— 2/6
Supports event streaming (SSE, WebSockets) for real-time updates
PASS
Supports agent-to-agent capability negotiation
FAIL
Has a subscription/management API for agents
FAIL
Supports multi-step workflow orchestration
PASS
Can proactively notify agents of relevant changes
FAIL
Supports cross-service handoff between agents
FAIL