{"service":"tokenapi-scan","version":"1.0.0","git_sha":"e59b5fc","supported_protocols":["REST/v1"],"contract":{"idempotency_key":{"header":"Idempotency-Key","window_seconds":7200,"applies_to":["POST","PUT","PATCH","DELETE"],"store":{"entries":0,"max":10000,"window_seconds":7200}},"rate_limit_headers":["X-RateLimit-Limit","X-RateLimit-Remaining","X-RateLimit-Reset"],"request_id_header":"X-Request-Id","security_schemes":["apiKey (Phase 2+)","oauth2 (Phase 4+)","ap2Mandate (Phase 4+)"],"auth_enforced":false,"phase_0_decisions":{"D1_protocol":"REST + JSON + OpenAPI 3.1","D2_auth":"Phase 0/1: no auth + IP rate limit; Phase 4+: tiered (apiKey/oauth2/ap2Mandate)","D3_sunset":"v1 fields stable ≥ 12 months; 90-day Sunset header notice on removal","D4_cursor":"base64url(JSON{anchor}) — deferred to Phase 0 #0.6","D5_errors":"error.code snake_case short codes; see /docs/standards/ERROR_CODES.md"}},"links":{"openapi":"/openapi.json  (internal-only: 127.0.0.1/192.168.*/10.*)","docs":"/docs  (internal-only)","redoc":"/redoc  (internal-only)","llms":"/llms.txt","sitemap":"/sitemap.xml","feed":"/feed.xml","error_codes":"/docs/standards/ERROR_CODES.md"},"phase":"Phase 0 (Agent API contract foundations)","timestamp":"2026-10-29T08:32:12.014951+00:00"}