{"openapi":"3.1.0","info":{"title":"OpenAPI Validator API","version":"1.0.0","description":"Validate and summarise an OpenAPI / Swagger API definition. Supply the spec inline (?spec=), as a request body, or fetched from a URL (?url=, SSRF-guarded) — in JSON or YAML. The validator detects the version (Swagger 2.0, OpenAPI 3.0.x or 3.1.x), checks the required structure (info.title and info.version, the presence of paths/components, and every operation's responses), and lints for common problems — duplicate or missing operationIds, operations without a summary or description, tags used but not declared, and malformed paths — returning a valid flag, counts of paths, operations, schemas, tags and servers, and separate error and warning lists. A summary endpoint inventories the whole API: every endpoint with its method, path, operationId, summary and tags, plus the declared servers, tags and component schemas. Built for CI gates on API contracts, API-catalogue ingestion, documentation pipelines and design review. An OpenAPI definition validator and linter — distinct from the JSON-Schema validator (jsonschema), the JSON/YAML/XML converters and the on-page HTML/SEO tools. No upstream key, no cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/openapi-api","description":"oanor gateway"}],"tags":[{"name":"OpenAPI"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/summary":{"get":{"operationId":"get_v1_summary","tags":["OpenAPI"],"summary":"Inventory a spec's endpoints","description":"","parameters":[{"name":"spec","in":"query","required":false,"description":"Inline OpenAPI/Swagger JSON or YAML","schema":{"type":"string"},"example":"{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Example API\",\"version\":\"1.0.0\"},\"paths\":{\"\\/ping\":{\"get\":{\"operationId\":\"ping\",\"summary\":\"Ping\",\"responses\":{\"200\":{\"description\":\"ok\"}}}}}}"},{"name":"url","in":"query","required":false,"description":"URL to fetch the spec from","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"tags":[],"title":"Example API","schemas":[],"servers":[],"version":"OpenAPI 3.0.0","endpoints":[{"path":"/ping","tags":[],"method":"GET","summary":"Ping","operation_id":"ping"}],"api_version":"1.0.0","operation_count":1},"meta":{"timestamp":"2026-06-01T23:40:49.956Z","request_id":"2b40d927-64ff-4f33-9e2c-c41bc79000ad"},"status":"ok","message":"Spec summarised","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/validate":{"get":{"operationId":"get_v1_validate","tags":["OpenAPI"],"summary":"Validate & lint a spec","description":"","parameters":[{"name":"spec","in":"query","required":false,"description":"Inline OpenAPI/Swagger JSON or YAML","schema":{"type":"string"},"example":"{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Example API\",\"version\":\"1.0.0\"},\"paths\":{\"\\/ping\":{\"get\":{\"operationId\":\"ping\",\"summary\":\"Ping\",\"responses\":{\"200\":{\"description\":\"ok\"}}}}}}"},{"name":"url","in":"query","required":false,"description":"URL to fetch the spec from","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"title":"Example API","valid":true,"counts":{"tags":0,"paths":1,"schemas":0,"servers":0,"operations":1},"errors":[],"methods":{"get":1},"version":"OpenAPI 3.0.0","warnings":[],"api_version":"1.0.0","error_count":0,"warning_count":0},"meta":{"timestamp":"2026-06-01T23:40:50.061Z","request_id":"c297dfd1-d18e-4a2f-9f26-aed1ed9b83ce"},"status":"ok","message":"Spec validated","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Supported versions & inputs","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Validate and summarise an OpenAPI / Swagger API definition. Supply the spec inline via ?spec=, as a POST body, or fetched from a ?url= (JSON or YAML; private targets refused). /v1/validate detects the version (Swagger 2.0, OpenAPI 3.0.x or 3.1.x), checks the required structure (info.title/version, paths/components, every operation's responses), lints for common problems (duplicate or missing operationIds, missing summaries, undeclared tags, malformed paths) and returns valid plus counts of paths, operations, schemas, tags and servers with separate error and warning lists. /v1/summary inventories the API: every endpoint with its method, path, operationId, summary and tags, plus the declared servers, tags and component schemas. Ideal for CI gates on API contracts, API-catalogue ingestion, documentation tooling and design review. An OpenAPI definition validator/linter — distinct from the JSON-Schema validator (jsonschema), the JSON/YAML converters and the on-page SEO/HTML tools. No key, no cache.","input":["?spec= (inline JSON/YAML)","?url= (fetched, SSRF-guarded)","POST body (JSON/YAML)"],"supports":["Swagger 2.0","OpenAPI 3.0.x","OpenAPI 3.1.x"],"endpoints":["/v1/validate","/v1/summary","/v1/meta"]},"meta":{"timestamp":"2026-06-01T23:40:50.135Z","request_id":"117e08aa-28fe-467e-b89a-c650beea70fa"},"status":"ok","message":"Meta retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2360,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":685,"monthly_call_quota":47000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2160,"monthly_call_quota":240000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5650,"monthly_call_quota":880000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/openapi-api"}