# CanAgentUse Scanner

This website provides a performance, accessibility, crawler, browser, and AI-agent readiness scanner.

Public scan flow:

1. Create a scan with `POST https://canagentuse.com/api/scans` and JSON body `{"url":"https://example.com"}`.
   Optional: set `performanceCategories` to any subset of `performance`, `accessibility`, `seo`, and `best-practices`. If omitted, the full set is requested.
2. The response includes `scanId`, rate-limit details, and export capabilities.
3. Poll `GET https://canagentuse.com/api/scans/{scanId}` for internal status and report JSON used by the web UI.
4. Poll `GET https://canagentuse.com/api/scans/{scanId}/result` for curated, sanitized agent-facing results.
5. Stream progress from `GET https://canagentuse.com/api/scans/{scanId}/events`.
6. Download report exports from `GET https://canagentuse.com/api/scans/{scanId}/export?format=json|csv|xlsx|pdf`.
7. Generate a remediation prompt from `GET https://canagentuse.com/api/scans/{scanId}/prompt`.

Scan statuses:

- Progress: `created`, `rate_limit_checked`, `queued`, `waiting`, `validating`, `running`, `running_performance_accessibility_mobile`, `running_performance_accessibility_desktop`, `running_agent_checks`, and `generating_report`.
- Terminal: `completed`, `failed`, `timed_out`, `cancelled`, and `rate_limited`.

Agent and API discovery:

- [OpenAPI document](https://canagentuse.com/openapi.json) describes the public scan, export, protocol, lead, and discovery APIs.
- [API catalog](https://canagentuse.com/.well-known/api-catalog) advertises machine-readable service discovery.
- [agent.json](https://canagentuse.com/.well-known/agent.json) is the singular Agent Web Protocol manifest. It is intentionally separate from [agents.json](https://canagentuse.com/agents.json).
- [mcp.json](https://canagentuse.com/mcp.json) exposes MCP server metadata for the public MCP endpoint.
- [AI context endpoint](https://canagentuse.com/api/ai/context) provides a compact JSON context bundle for agents.
- [Agent Skills index](https://canagentuse.com/.well-known/agent-skills/index.json) lists per-check remediation skills for scanned sites.
- [MCP server card](https://canagentuse.com/.well-known/mcp/server-card.json) advertises the JSON-RPC MCP transport at `https://canagentuse.com/api/mcp`.
- [A2A agent card](https://canagentuse.com/.well-known/agent-card.json) advertises the JSON-RPC A2A endpoint at `https://canagentuse.com/api/a2a`.
- [WebMCP manifest](https://canagentuse.com/.well-known/webmcp.json) advertises browser-facing tool annotations.
- [AI policy](https://canagentuse.com/ai.txt) and [TDMRep policy](https://canagentuse.com/.well-known/tdmrep.json) disclose AI use and text/data mining preferences.
- [IndexNow key](https://canagentuse.com/canagentuse-indexnow-2026.txt) verifies ownership for IndexNow URL submissions.

A2A create-scan example:

```json
{"jsonrpc":"2.0","id":"scan-1","method":"message/send","params":{"metadata":{"skillId":"create_scan","url":"https://example.com","performanceCategories":["performance","accessibility","seo","best-practices"]}}}
```

MCP create-scan example:

```json
{"jsonrpc":"2.0","id":"scan-1","method":"tools/call","params":{"name":"create_scan","arguments":{"url":"https://example.com","performanceCategories":["performance","accessibility","seo","best-practices"]}}}
```

MCP get-scan-results example:

```json
{"jsonrpc":"2.0","id":"scan-2","method":"tools/call","params":{"name":"get_scan_results","arguments":{"scanId":"scan-1"}}}
```

Operational notes:

- Public scan APIs currently do not require OAuth bearer tokens.
- Signed-in report exports include failed, warning, and informational checks. Passed and not-applicable checks stay hidden on the free plan and are reserved for future plans with `canViewPassedChecks=true`.
- OIDC/OAuth discovery, authorization, token, protected-resource metadata, and JWKS endpoints are published for auth-aware clients. The browser product currently uses Google sign-in and account API keys; dynamic OAuth clients are not enabled yet.
- Rate-limit responses use HTTP 429 and include a `rateLimit` object with `allowed`, `remaining`, `limit`, and `resetAt`.
- ACP and UCP commerce discovery endpoints return a clear not-supported document because this service does not provide agentic checkout.
- Agent Skills are remediation guides for scanned websites, not claims that this application implements every protocol it can audit.
