{"openapi":"3.1.0","info":{"title":"CanAgentUse Scanner API","version":"0.1.0","description":"Create public website readiness scans, read reports, check usage, and discover machine-readable agent resources. Requests work anonymously with public limits, or with an account API key for plan limits and signed-in report detail. Passed and not-applicable checks are hidden unless the account plan enables passed-check visibility."},"servers":[{"url":"https://canagentuse.com"}],"tags":[{"name":"Scanner API","description":"Useful application endpoints for creating scans, polling status, reading reports, exports, prompts, and usage limits."},{"name":"Account API","description":"Authenticated account resources such as API-key management and saved scan history."},{"name":"Agent Protocols","description":"JSON-RPC interfaces for A2A and MCP clients."},{"name":"Informational Discovery","description":"Public metadata files such as sitemap.xml, robots.txt, llms.txt, agents.json, OpenAPI, OAuth discovery, and well-known resources."}],"security":[],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Account API key generated in the signed-in dashboard. You may also send the same key as `Authorization: Bearer <key>`."}},"schemas":{"ScanCreateRequest":{"type":"object","additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"Public HTTP(S) URL to scan. Private network targets and unsafe redirects are rejected."},"private":{"type":"boolean","default":false,"description":"When authenticated, create a report only the account can open."},"fresh":{"type":"boolean","default":false,"description":"Request a fresh scan instead of using recent cached results when the plan allows it."},"performanceCategories":{"type":"array","items":{"type":"string","enum":["performance","accessibility","seo","best-practices"]},"description":"Optional Lighthouse categories. Defaults to performance, accessibility, seo, and best-practices."}},"required":["url"]},"ExportCapabilities":{"type":"object","properties":{"pdf":{"type":"boolean"}},"required":["pdf"]},"RateLimitStatus":{"type":"object","properties":{"allowed":{"type":"boolean"},"remaining":{"type":"number"},"limit":{"type":"number"},"resetAt":{"type":"string","format":"date-time"},"retryAfterSeconds":{"type":"number","description":"Seconds to wait before retrying when the limit has been reached."},"planKey":{"type":"string","description":"Plan bucket used for the request: `anonymous` or the authenticated user's plan id."},"exportCapabilities":{"$ref":"#/components/schemas/ExportCapabilities"}},"required":["allowed","remaining","limit","resetAt"]},"ScanCreateResponse":{"type":"object","properties":{"scanId":{"type":"string"},"rateLimit":{"$ref":"#/components/schemas/RateLimitStatus"}},"required":["scanId","rateLimit"]},"UsageResponse":{"type":"object","properties":{"authenticated":{"type":"boolean"},"planKey":{"type":"string"},"usage":{"type":"object","properties":{"scans":{"type":"object","properties":{"used":{"type":"number"},"remaining":{"type":"number"},"limit":{"type":"number"},"resetAt":{"type":"string","format":"date-time"},"nextRefillAt":{"type":"string","format":"date-time"}}}}}}},"Scan":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"submittedUrl":{"type":"string"},"normalizedUrl":{"type":"string"},"finalUrl":{"type":["string","null"]},"status":{"type":"string","enum":["created","rate_limit_checked","queued","waiting","validating","running","running_performance_accessibility_mobile","running_performance_accessibility_desktop","running_agent_checks","generating_report","completed","failed","timed_out","cancelled","rate_limited"],"description":"Current scan state. Terminal statuses are completed, failed, timed_out, cancelled, and rate_limited; every other value is a progress state."},"stage":{"type":"string","description":"Human-readable current scan stage."},"progress":{"type":"number","minimum":0,"maximum":100,"description":"Integer progress percentage from 0 to 100."},"queuePosition":{"type":["number","null"]},"usersAhead":{"type":["number","null"]},"estimatedStart":{"type":["string","null"]},"estimatedTotal":{"type":["string","null"]},"estimatedTimeLeft":{"type":["string","null"]},"errorMessage":{"type":["string","null"]},"failureCategory":{"type":["string","null"],"enum":["invalid_url","private_url","redirect_private","dns_failure","connection_refused","ssl_failure","unreachable","timeout","performance_accessibility_failure","agent_checks_failure","unknown",null]},"report":{"type":["object","null"],"additionalProperties":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","submittedUrl","normalizedUrl","status","stage","progress","createdAt","updatedAt"]},"ScanProgressEvent":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"number"},"scanId":{"type":"string"},"status":{"type":"string","enum":["created","rate_limit_checked","queued","waiting","validating","running","running_performance_accessibility_mobile","running_performance_accessibility_desktop","running_agent_checks","generating_report","completed","failed","timed_out","cancelled","rate_limited"],"description":"Same status enum as Scan.status."},"stage":{"type":"string"},"progress":{"type":"number","minimum":0,"maximum":100},"queuePosition":{"type":"number"},"usersAhead":{"type":"number"},"estimatedStart":{"type":"string"},"estimatedTotal":{"type":"string"},"estimatedTimeLeft":{"type":"string"},"message":{"type":"string"},"failureCategory":{"type":"string","enum":["invalid_url","private_url","redirect_private","dns_failure","connection_refused","ssl_failure","unreachable","timeout","performance_accessibility_failure","agent_checks_failure","unknown"]},"createdAt":{"type":"string","format":"date-time"},"terminalStatuses":{"type":"array","items":{"type":"string","enum":["completed","failed","timed_out","cancelled","rate_limited"]}}},"required":["id","scanId","status","stage","progress","createdAt"]},"Report":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"submittedUrl":{"type":"string"},"finalUrl":{"type":"string"},"overallScore":{"type":"number"},"checks":{"type":"array","items":{"type":"object","additionalProperties":true}}}},"PublicScanResult":{"type":"object","additionalProperties":true,"properties":{"type":{"type":"string","enum":["scan_result"]},"scanId":{"type":"string"},"submittedUrl":{"type":"string"},"normalizedUrl":{"type":"string"},"finalUrl":{"type":["string","null"]},"status":{"type":"string","enum":["created","rate_limit_checked","queued","waiting","validating","running","running_performance_accessibility_mobile","running_performance_accessibility_desktop","running_agent_checks","generating_report","completed","failed","timed_out","cancelled","rate_limited"]},"stage":{"type":["string","null"]},"progress":{"type":["number","null"]},"scannedAt":{"type":["string","null"],"format":"date-time"},"overallScore":{"type":["number","null"]},"readinessLevel":{"type":["string","null"]},"failures":{"type":"array","items":{"type":"string"}},"checkpoints":{"type":"array","items":{"type":"object","additionalProperties":true}},"remediationSkills":{"type":"array","items":{"type":"object","additionalProperties":true}},"topRecommendations":{"type":"array","items":{"type":"object","additionalProperties":true}},"metrics":{"type":["object","null"],"additionalProperties":true},"links":{"type":["object","null"],"additionalProperties":{"type":"string"}}},"required":["type","scanId","submittedUrl","normalizedUrl","status","failures","checkpoints","remediationSkills","topRecommendations"]},"JsonRpcId":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"null"}]},"JsonRpcRequest":{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"$ref":"#/components/schemas/JsonRpcId"},"method":{"type":"string"},"params":{"type":"object","additionalProperties":true}},"required":["jsonrpc","method"]},"JsonRpcError":{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"$ref":"#/components/schemas/JsonRpcId"},"error":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":true}},"required":["code","message"]}},"required":["jsonrpc","error"]},"A2aCreateScanRequest":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequest"}],"examples":[{"jsonrpc":"2.0","id":"scan-1","method":"message/send","params":{"metadata":{"skillId":"create_scan","url":"https://example.com","performanceCategories":["performance","accessibility","seo","best-practices"]}}}]},"McpCreateScanRequest":{"allOf":[{"$ref":"#/components/schemas/JsonRpcRequest"}],"examples":[{"jsonrpc":"2.0","id":"scan-1","method":"tools/call","params":{"name":"create_scan","arguments":{"url":"https://example.com","performanceCategories":["performance","accessibility","seo","best-practices"]}}}]},"LeadCreateRequest":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"email":{"type":"string","format":"email"},"websiteUrl":{"type":"string","minLength":1},"phone":{"type":"string"},"company":{"type":"string"},"notes":{"type":"string"},"scanId":{"type":"string","minLength":1},"overallScore":{"type":"number"},"failedChecks":{"type":"array","items":{"type":"string"}},"submittedUrl":{"type":"string","minLength":1},"finalScannedUrl":{"type":"string","minLength":1},"sourcePage":{"type":"string","minLength":1},"utm":{"type":"object","additionalProperties":{"type":"string"}}},"required":["name","email","websiteUrl","scanId","overallScore","failedChecks","submittedUrl","finalScannedUrl","sourcePage"]},"LeadCreateResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"},"rateLimit":{"$ref":"#/components/schemas/RateLimitStatus"}},"required":["error"]}}},"paths":{"/api/scans":{"post":{"tags":["Scanner API"],"summary":"Create a scan","description":"Starts a website readiness scan. Anonymous requests use public limits and receive public report previews. Authenticated requests can use account plan limits and may create private scans.","security":[{},{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanCreateRequest"}}}},"responses":{"200":{"description":"Scan created. Rate-limit status is returned in the JSON body and `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanCreateResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Private or unsafe target URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"get":{"tags":["Scanner API"],"summary":"Get scan rate-limit status","description":"Returns the current scan usage bucket for the anonymous IP or authenticated account API key/session.","security":[{},{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Rate-limit status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitStatus"}}}}}}},"/api/usage":{"get":{"tags":["Scanner API"],"summary":"Get usage and next refill time","description":"Returns scan usage, remaining quota, active limit bucket, and next refill time. Works anonymously and with an account API key.","security":[{},{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Usage report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponse"}}}}}}},"/api/scans/{id}":{"get":{"tags":["Scanner API"],"summary":"Get scan status and report","description":"Returns scan state and report data. Anonymous callers can read public reports with gated preview detail. Authenticated callers can read full detail according to account access and can access their private scans.","security":[{},{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scan object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scan"}}}},"404":{"description":"Scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/scans/{id}/result":{"get":{"summary":"Get curated scan status or completed results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Curated public scan result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicScanResult"}}}},"404":{"description":"Scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/scans/{id}/events":{"get":{"tags":["Scanner API"],"summary":"Stream scan progress events","description":"Server-sent event stream for queue, runtime, and completion progress.","security":[{},{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Server-sent events stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"404":{"description":"Scan not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/scans/{id}/prompt":{"get":{"tags":["Scanner API"],"summary":"Get a Markdown remediation prompt for a completed scan","description":"Generates a fix prompt from full report details. Requires account authentication or an API key with report access.","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"checkId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Markdown prompt","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Report not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/scans/{id}/export":{"get":{"tags":["Scanner API"],"summary":"Export a completed scan report","description":"Exports actionable report issues as JSON, CSV, XLSX, or PDF. Requires account authentication or an API key with report access. Passed and not-applicable checks are omitted unless the authenticated plan enables passed-check visibility.","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","csv","xlsx","pdf"],"default":"json"}}],"responses":{"200":{"description":"Report export","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}},"text/csv":{"schema":{"type":"string"}},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"type":"string","contentEncoding":"base64"}},"application/pdf":{"schema":{"type":"string","contentEncoding":"base64"}}}},"400":{"description":"Unsupported export format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Report not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/reports/{scanId}":{"get":{"tags":["Scanner API"],"summary":"Open the human-readable scan report","parameters":[{"name":"scanId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"HTML scan report","content":{"text/html":{"schema":{"type":"string"}}}},"404":{"description":"Report not found","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/a2a":{"post":{"tags":["Agent Protocols"],"summary":"Invoke the A2A JSON-RPC endpoint","description":"A2A-compatible JSON-RPC endpoint. The `message/send` method can create a scan through `params.metadata.skillId=create_scan` and `params.metadata.url`.","security":[{},{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/A2aCreateScanRequest"}}}},"responses":{"200":{"description":"JSON-RPC result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid JSON-RPC request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}},"403":{"description":"Private or unsafe target URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}},"429":{"description":"Rate limit reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}}}}},"/api/mcp":{"post":{"tags":["Agent Protocols"],"summary":"Invoke the MCP JSON-RPC endpoint","description":"MCP-compatible JSON-RPC endpoint. Use `tools/list` to discover `create_scan`, then `tools/call` with `{ name: 'create_scan', arguments: { url } }`.","security":[{},{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpCreateScanRequest"}}}},"responses":{"200":{"description":"JSON-RPC result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid JSON-RPC request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}},"403":{"description":"Private or unsafe target URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}},"429":{"description":"Rate limit reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}}}}},"/api/leads":{"post":{"tags":["Scanner API"],"summary":"Create a sales or follow-up lead","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadCreateRequest"}}}},"responses":{"200":{"description":"Lead accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadCreateResponse"}}}},"400":{"description":"Invalid lead payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/conversion-config":{"get":{"tags":["Informational Discovery"],"summary":"Get public conversion UI configuration","responses":{"200":{"description":"Conversion configuration","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/docs":{"get":{"tags":["Informational Discovery"],"summary":"Open the documentation page","responses":{"200":{"description":"HTML documentation page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api":{"get":{"tags":["Informational Discovery"],"summary":"Open the API reference page","responses":{"200":{"description":"HTML API reference page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"tags":["Informational Discovery"],"summary":"Get the agent guide","responses":{"200":{"description":"Markdown guide","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/ai.txt":{"get":{"tags":["Informational Discovery"],"summary":"Get the AI usage policy","responses":{"200":{"description":"AI usage policy","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"tags":["Informational Discovery"],"summary":"Get robots.txt","responses":{"200":{"description":"Robots policy","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"tags":["Informational Discovery"],"summary":"Get sitemap.xml","responses":{"200":{"description":"Sitemap XML","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/agent.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the root agent.json manifest","responses":{"200":{"description":"Agent Web Protocol manifest","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/agents.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the root agents.json directory","responses":{"200":{"description":"Agents directory","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/mcp.json":{"get":{"tags":["Informational Discovery"],"summary":"Get MCP server metadata","responses":{"200":{"description":"MCP server metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/ai/context":{"get":{"tags":["Informational Discovery"],"summary":"Get compact AI context metadata","responses":{"200":{"description":"AI context metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/canagentuse-indexnow-2026.txt":{"get":{"tags":["Informational Discovery"],"summary":"Get the IndexNow key file","responses":{"200":{"description":"IndexNow key","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/agent.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the well-known agent.json manifest","responses":{"200":{"description":"Agent Web Protocol manifest","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/agents.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the well-known agents.json directory","responses":{"200":{"description":"Agents directory","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/agent-card.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the A2A agent card","responses":{"200":{"description":"A2A agent card","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/mcp.json":{"get":{"tags":["Informational Discovery"],"summary":"Get well-known MCP server metadata","responses":{"200":{"description":"MCP server metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/mcp/server-card.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the MCP server card","responses":{"200":{"description":"MCP server card","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/webmcp.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the WebMCP manifest","responses":{"200":{"description":"WebMCP manifest","content":{"application/webmcp+json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/api-catalog":{"get":{"tags":["Informational Discovery"],"summary":"Get the API catalog linkset","responses":{"200":{"description":"Linkset","content":{"application/linkset+json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/openid-configuration":{"get":{"tags":["Informational Discovery"],"summary":"Get OIDC discovery metadata","responses":{"200":{"description":"OIDC discovery metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"tags":["Informational Discovery"],"summary":"Get OAuth authorization server metadata","responses":{"200":{"description":"OAuth authorization server metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"tags":["Informational Discovery"],"summary":"Get OAuth protected resource metadata","responses":{"200":{"description":"OAuth protected resource metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/tdmrep.json":{"get":{"tags":["Informational Discovery"],"summary":"Get TDMRep text/data mining policy","responses":{"200":{"description":"TDMRep policy","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/oauth/authorize":{"get":{"tags":["Informational Discovery"],"summary":"OAuth authorization endpoint","parameters":[{"name":"response_type","in":"query","required":true,"schema":{"type":"string","enum":["code"]}},{"name":"client_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string","format":"uri"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"OAuth protocol error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/oauth/token":{"post":{"tags":["Informational Discovery"],"summary":"OAuth token endpoint","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"grant_type":{"type":"string"},"code":{"type":"string"},"refresh_token":{"type":"string"},"client_id":{"type":"string"}},"required":["grant_type"]}}}},"responses":{"400":{"description":"OAuth protocol error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/oauth/jwks.json":{"get":{"tags":["Informational Discovery"],"summary":"Get OAuth/OIDC JWKS","responses":{"200":{"description":"JWK set","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/agent-skills/index.json":{"get":{"tags":["Informational Discovery"],"summary":"Get the Agent Skills index","responses":{"200":{"description":"Agent Skills discovery index","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/http-message-signatures-directory":{"get":{"tags":["Informational Discovery"],"summary":"Get HTTP Message Signatures directory","responses":{"200":{"description":"HTTP Message Signatures directory","content":{"application/http-message-signatures-directory+json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/acp":{"get":{"tags":["Informational Discovery"],"summary":"Get ACP non-support metadata","responses":{"200":{"description":"ACP non-support metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/acp.json":{"get":{"tags":["Informational Discovery"],"summary":"Get ACP non-support metadata as JSON","responses":{"200":{"description":"ACP non-support metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/ucp":{"get":{"tags":["Informational Discovery"],"summary":"Get UCP non-support metadata","responses":{"200":{"description":"UCP non-support metadata","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}}