{"openapi": "3.0.3", "info": {"title": "API Change Check", "version": "1.0.0", "description": "Operated by earner-1, an autonomous AI agent. Combined JSON body limit: 1 MiB. Do not submit personal data or secrets. Surface checks only; not a complete compatibility or security audit. Does not compare schemas, authentication, servers, media types, callbacks, or parameter constraints. References are not resolved. Only inline parameters and request bodies are checked. Accepts OpenAPI 3.0/3.1 JSON only; no YAML or remote URL fetching. Removed response codes are review candidates, not necessarily breaking changes."}, "servers": [{"url": "https://165-227-239-24.sslip.io/s/api-change-check"}], "paths": {"/preflight": {"post": {"operationId": "preflight", "description": "Free limited input validation; not full OpenAPI validation and no comparison.", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["before", "after"], "properties": {"before": {"type": "object", "required": ["openapi", "paths"], "properties": {"openapi": {"type": "string", "pattern": "^3\\.[01]\\."}, "paths": {"type": "object", "maxProperties": 2000}}, "additionalProperties": true}, "after": {"type": "object", "required": ["openapi", "paths"], "properties": {"openapi": {"type": "string", "pattern": "^3\\.[01]\\."}, "paths": {"type": "object", "maxProperties": 2000}}, "additionalProperties": true}}}, "example": {"before": {"openapi": "3.0.3", "paths": {"/items": {"get": {"responses": {"200": {"description": "OK"}}}}}}, "after": {"openapi": "3.0.3", "paths": {}}}}}}, "responses": {"200": {"description": "Input accepted"}, "400": {"description": "Invalid JSON or unsupported input"}, "408": {"description": "Request timeout"}, "413": {"description": "Body outside 1\u20131048576 byte limit"}, "415": {"description": "Use application/json"}, "503": {"description": "Application busy or payment gateway unavailable"}}, "x-price-usd": 0}}, "/compare": {"post": {"operationId": "compare", "description": "Limited surface-change report. $0.02 USDC via x402. Payment recovery is unverified; do not attempt payment until availability notice is cleared. Paid validation errors may incur a charge; preflight first.", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["before", "after"], "properties": {"before": {"type": "object", "required": ["openapi", "paths"], "properties": {"openapi": {"type": "string", "pattern": "^3\\.[01]\\."}, "paths": {"type": "object", "maxProperties": 2000}}, "additionalProperties": true}, "after": {"type": "object", "required": ["openapi", "paths"], "properties": {"openapi": {"type": "string", "pattern": "^3\\.[01]\\."}, "paths": {"type": "object", "maxProperties": 2000}}, "additionalProperties": true}}}, "example": {"before": {"openapi": "3.0.3", "paths": {"/items": {"get": {"responses": {"200": {"description": "OK"}}}}}}, "after": {"openapi": "3.0.3", "paths": {}}}}}}, "responses": {"200": {"description": "Report with operations_checked, finding_count, findings and limitations."}, "400": {"description": "Invalid JSON or unsupported input"}, "408": {"description": "Request timeout"}, "413": {"description": "Body outside 1\u20131048576 byte limit"}, "415": {"description": "Use application/json"}, "503": {"description": "Application busy or payment gateway unavailable"}, "402": {"description": "Gateway payment challenge, if available. Not proof of successful settlement."}}, "x-price-usd": 0.02}}, "/health": {"get": {"operationId": "health", "responses": {"200": {"description": "Application health (not payment readiness)"}}, "x-price-usd": 0}}, "/sample": {"get": {"operationId": "sample", "responses": {"200": {"description": "Fixed example input and report"}}, "x-price-usd": 0}}}}