OpenAPI Viewer and Validator

Read an OpenAPI 3.0 or 3.1 description as API documentation and check it against the official schemas, with broken references and path parameters found too.

OpenAPI Viewer

Nothing open
On this device
0 lines

Explore and validate an API description

Open an OpenAPI 3.0 or 3.1 description to browse every endpoint with its parameters, bodies and responses, check it against the official schema, and start a request for any operation.

YAML or JSON · up to 20 MB · local $refs followed

How is this calculated?
Structure: the official JSON Schemas published by the OpenAPI Initiative — https://spec.openapis.org/oas/3.0/schema/2021-09-28 (JSON Schema draft 4) and https://spec.openapis.org/oas/3.1/schema/2022-10-07 (2020-12) — checked with a standards-conformant validator. Where the schema offers alternatives, its errors are folded into one message per place. The tool is tested on every example document in the OpenAPI Specification repository, all of which it reads as valid.

Runs in your browser — nothing you enter leaves this device.

About this tool

What it does

An OpenAPI description is the file — usually openapi.yaml — that says what an HTTP API offers: its paths, the parameters and bodies each operation takes, and the responses it returns. This tool reads one, in YAML or JSON, and does two things. It checks it: the structure against the OpenAPI Initiative’s own published JSON Schemas for 3.0 and 3.1, then the mistakes those schemas cannot see — a $ref that points nowhere, a {parameter} in a path that no operation declares, two operations with the same operationId, two paths a server could not tell apart. And it shows it as documentation: operations grouped by tag, each with its parameters, request body and responses, and every schema laid out field by field with references followed.

How to use it
  1. Paste the description or open the file. “Try an example” loads a small Orders API; “Try one with mistakes” loads the same kind of API with one mistake of each kind the checker finds.
  2. Read the result at the top: valid, or a list of problems, each with where it is (such as paths["/orders"].get.parameters[0].in) and what to change.
  3. Below, browse the operations by tag, or find one by typing words from its path, summary or operationId.
  4. Open an operation to see its parameters, request body and responses; schemas are shown as fields with their types, whether they are required, and their constraints.
Limits and your data
  • OpenAPI 3.0.x and 3.1.x only. A Swagger 2.0 file is recognised and refused with a pointer to the official converter rather than checked against the wrong rules.
  • As the 3.1 specification allows, the schemas inside a 3.1 description (request and response bodies) are not themselves validated against JSON Schema; they are shown as written.
  • References to other files or URLs are listed as a warning and not followed: nothing is fetched.
  • Style rules — naming, descriptions, examples — are a matter of taste and are not checked here; only what makes a description wrong is reported.
  • Unpublished API descriptions often name internal hosts and endpoints. The file is read and checked here, in a background worker on your device; nothing is uploaded, and the page works offline.

Questions

Why is my file valid in one editor and not here?

Editors differ in which rules they apply. This tool applies the official OpenAPI JSON Schemas exactly, plus checks the specification states in words — unique operationIds, path parameters declared and required. A warning is advice; an error is something the specification does not allow.

What does “Matches the same URLs as” mean?

Two paths that differ only in the names inside braces, such as /orders/{id} and /orders/{orderId}, match exactly the same URLs. The specification says such paths must not both exist, because a server could not decide which one a request is for.

Can it convert Swagger 2.0?

No. Converting is more than renaming fields, and a wrong conversion is worse than none. The OpenAPI community’s swagger2openapi tool does it; check the result here afterwards.

Does it call my API?

No. It reads the description only. Nothing is sent to the servers the file names.