OpenAPI Studio — Viewer & Validator

Paste an OpenAPI 3.0 / 3.1 or Swagger 2.0 definition to browse endpoints by tag and schemas as trees, and to check it against the official schemas with line and column. It never calls the API or fetches external files, and nothing leaves your device.

On-device・No uploadMobile friendlyWorks offlineBeta

Your files and input are processed only inside your browser on this device and are never uploaded to our servers.

OpenAPI definition (YAML / JSON)Paste a definition and the result appears here.
0 chars0 lines
Paste a definition and the result appears here.

How to use

  1. openapi.yaml

    Paste or open the spec

  2. Validation resultsProblems in one list
    Endpoint list

    Validate and list

  3. curl examples
    YAML ⇄ JSON

    Output curl or JSON

Paste an OpenAPI definition, validate it, and get a list and examples
  1. Paste OpenAPI (or Swagger 2.0) YAML or JSON into the input pane, or click “Open file” (several files at once are fine). “Sample” loads an example.

  2. In “View”, search or filter to pick an endpoint, then read its parameters, request body, responses, schema tree, examples and curl example. Tabs for schemas, security and general info are there too.

  3. In “Validate”, see syntax errors with line and column, mismatches with the official schema, undefined $refs, duplicate operationIds, missing path parameters and examples that do not fit their schema. “Go to” selects the spot in the input.

  4. In “Convert”, switch between YAML and JSON, then copy or download.

  5. Relative references to other files (./schemas.yaml#/Pet) resolve against the files you loaded together. References to anything else are shown as unresolved.

What it does

Official-schema validation

Checks Swagger 2.0, OpenAPI 3.0 and 3.1 files against the official JSON Schemas (from @apidevtools/openapi-schemas 2.1.0) and shows each mismatch with its line and column. Validation runs in a Web Worker, so large definitions do not freeze the page.

Mistakes the schemas cannot express

Finds undefined $refs, duplicate operationIds, path templates and path parameters that do not match, required names missing from properties, minimum above maximum, undefined security schemes, and example / default values that do not fit their schema.

Tag-grouped list and detail

Lists method, path, summary and deprecated per tag with search. Each operation shows parameters, request body, responses (with headers and examples per media type) and the security schemes it needs.

Schema trees that survive cycles

Follows $ref and expands allOf, oneOf and anyOf. A circular reference is marked and not followed, and trees stop at depth 10 and 3,000 nodes, so recursive definitions cannot hang the page.

Relative references across files

Resolves relative references between the files you load together (for example to another file’s #/components/…). URLs and files that were not loaded are never fetched; they are counted as unresolved.

curl examples with placeholders

Builds a curl command per operation. Credentials and unspecified values stay as placeholders such as <TOKEN> and <API_KEY>; nothing is actually sent.

Use cases

  • Check a work-in-progress OpenAPI YAML against the spec without opening an editor
  • Read a Swagger / OpenAPI file someone sent you without standing up Swagger UI
  • Catch duplicate operationIds and missing path parameters before review
  • Verify that examples still match their schemas
  • Inspect an internal API definition without sending it to an online service
  • Convert OpenAPI between YAML and JSON

Supported formats

Input

OpenAPI 3.0.xOpenAPI 3.1.xSwagger 2.0.yaml.yml.jsonUTF-8 (BOM allowed)

Output

On-screen viewerValidation resultsYAML ⇄ JSON conversioncurl examples

Capability matrix

FeatureSupportNotes
Viewing OpenAPI 3.0 / 3.1 and Swagger 2.0 (endpoints, schemas, examples, security schemes)Supported—
Syntax errors with line and column (YAML, JSON)Supported—
Validation against the official JSON SchemasSupported2.0, 3.0 and 3.1. 3.2 files are viewed using the 3.1 rules without schema validation
Undefined $ref, duplicate operationId, path parameters, required contradictions, example vs schemaSupportedExample checks stop at 300 examples or 4 seconds
Relative references between several filesSupportedOnly among the files loaded together
YAML ⇄ JSON conversionSupportedYAML comments do not survive into JSON
curl example generationPartialUses only values from examples and defaults; credentials are placeholders; style / explode serialization is not applied
Markdown in descriptionsPartialShown as plain text, not rendered
Fetching external $refs (URLs, files that were not loaded)Not supportedNo network access, so they are shown as unresolved
Try it out (calling the API)Not supportedIt needs network access, so it is not built
Swagger 2.0 → OpenAPI 3 conversionNot supportedNo reliable converter library could be bundled for the browser. 2.0 files are viewed and validated as 2.0
Validating a whole multi-file definitionPartialOnly the first spec file is validated; the other files are used for resolving references
Offline useSupportedWorks without a connection once loaded

Limits & notes

  • Up to 5 million characters per file, 10 million in total and 20 files. Above one million characters, auto-run pauses and you press “Run”.
  • Nesting is limited to 100 levels. YAML aliases are limited to 100 uses; beyond that the file is rejected.
  • Up to 3,000 operations are listed and 300 validation results are shown. Schema trees stop at depth 10 and 3,000 nodes; anything beyond is omitted.
  • Processing is stopped after 30 seconds (a huge definition, or a pattern that takes very long).
  • Markdown and HTML in descriptions are not interpreted; they are shown as text. Links are http(s) only and open in a new tab with rel="noopener noreferrer nofollow".
  • nullable (3.0) and x-nullable (2.0) are treated as allowing null when examples are checked.

Privacy & safety

Your definition and files are processed only inside your browser. Nothing is sent to or stored on any server, and external $refs are never fetched. HTML in descriptions is never executed; it is displayed as text. Closing the page discards everything.

FAQ

How is this different from Swagger Editor or Swagger UI?
It reads and validates the definition entirely in your browser and never calls the API (no Try it out) or fetches external files. The definition goes nowhere, so internal API specs are fine to inspect.
What does the OpenAPI validation check?
Syntax (line and column), conformance to the official JSON Schemas for Swagger 2.0, OpenAPI 3.0 and 3.1, undefined $refs, duplicate operationIds, missing or extra path parameters, required contradictions, and examples that do not match their schema.
Why are duplicate operationIds a problem?
Code generators and documentation tools use operationId as a function name or identifier, so duplicates make generated code collide or overwrite one another. Every duplicate is listed with its line.
How are $refs to other files handled?
If the file was loaded together with the spec (select several files in “Open file”), the reference is resolved. URLs and files that were not loaded are not fetched and are shown as unresolved.
Can it convert Swagger 2.0 to OpenAPI 3?
No. Swagger 2.0 files are viewed and validated as 2.0. For conversion use a tool such as swagger2openapi. YAML ⇄ JSON conversion is supported.
Is my definition sent to a server?
No. Everything runs in your browser; your input is never sent to LIBRA Works or any third party.

JSON Studio — Formatter & Validator

Paste JSON to format, minify or validate it instantly. Errors are shown with the exact line, column and cause, and comments or trailing commas can be auto-repaired. Your data never leaves your device.

No upload

YAML / TOML Studio — Validate, Format & Convert

Paste YAML, TOML or JSON to validate, format or convert it. Errors show the exact line and column, and type traps such as “no becomes false” and anything lost in conversion are flagged up front. Your data never leaves your device.

No uploadBeta

curl Converter

Paste “Copy as cURL” from Chrome or Firefox to see the method, URL, headers, cookies and body in tables, then convert to 12 kinds of code. The request is never sent and everything runs in your browser. Authorization and cookies can be hidden before you share.

No uploadBeta

Schema Codegen — JSON to Types & Schema

Paste sample JSON, a JSON Schema or an OpenAPI document to get type definitions in 10 formats. Put several samples in a row to infer optional keys and unions. Your data never leaves your device.

No uploadBeta

Secret Scanner

Paste text or drop config and code files to list likely secrets with file, line and rule before you publish or share them. Values are masked by default and you can save a copy with them replaced by ***. A helper only — it cannot guarantee that nothing is missed.

No upload

Diff Tool — Text & Code Compare

Paste or drop two versions and see added and removed lines, plus the exact words that changed inside each line. Copy or save the result as a unified patch. Nothing leaves your browser.

No upload

Last updated: