---
title: "OpenAPI structure check"
description: "Check required OAS 3.0 object shape: openapi, info, and paths. This is not Spectral, Redocly, $ref resolution, or OAS 3.1 security-scheme rules."
url: https://findutils.com/developers/openapi-validator/
category: developers
---

# OpenAPI structure check

Check required OAS 3.0 object shape: openapi, info, and paths. This is not Spectral, Redocly, $ref resolution, or OAS 3.1 security-scheme rules.

**Use this tool:** [OpenAPI structure check](https://findutils.com/developers/openapi-validator/)

## Programmatic access

- REST id `openapi-validator`: POST https://api.findutils.com/api/tools/openapi-validator/execute (reference: https://findutils.com/api/openapi-validator/)
- MCP tool `openapi_validator` on https://mcp.findutils.com (reference: https://findutils.com/mcp/openapi-validator/)

## Why use OpenAPI structure check?

Use this page to confirm the required OAS 3.0 object fields: openapi, info (title and version), and paths. Empty paths {} is a warning, not a full API. For Spectral or Redocly lint, use those tools.

## Tips for Writing Valid OpenAPI Specs

- Include the required top-level fields: openapi (version string), info (with title and version), and paths. Missing any of these fails the structure check.
- An empty paths object is a warning. Add at least one path item before you treat the document as a usable API.
- Define a responses object for every operation. This check flags operations that lack responses.
- Run this structure check first. Then run Spectral or Redocly for rule-based lint and $ref resolution.
- Format JSON or YAML before the check. Parser errors hide the structure report.

## FAQ

### What OpenAPI versions are supported?

This structure check reads OpenAPI 3.x and Swagger 2.0 documents. It checks required object fields. It does not implement OAS 3.1 JSON Schema or security-scheme rules.

### Can I check YAML specifications?

Yes. Paste JSON or simple YAML, or upload a .json, .yaml, or .yml file. The YAML reader is basic. Complex YAML (anchors, aliases) may need JSON first.

### What does this check detect?

It reports missing openapi or swagger, missing info.title, missing info.version, missing paths, paths that do not start with /, operations without responses, and empty paths as a warning. It does not resolve $ref or run Spectral rules.

### Does this OpenAPI validator require a signup?

No. It is available with no signup, no usage limits. All validation runs in your browser, so your API specifications are never sent to any server.

### Is my API specification safe when validating online?

Absolutely. The validation engine runs entirely client-side in your browser. Your specification data never leaves your device, making it safe for proprietary or confidential API designs.

### What is the difference between errors and warnings?

Errors mean a required object field is missing. Warnings flag extra structure notes, such as empty paths or a missing operationId. A warning does not mean Spectral lint passed.

### Does this tool resolve $ref?

No. This check does not resolve $ref pointers, inside the file or across files. Use a bundler and a Spectral or Redocly lint for reference checks.

### How large of a specification can I validate?

Since validation runs in your browser, the limit depends on your device's memory and processing power. Most modern browsers handle specifications with hundreds of paths and thousands of lines without any issues.

### How do I check $ref pointers?

This page does not resolve $ref. Check that the pointer matches a local component, then use a bundler or Spectral for a full lint. The JSON Formatter can help you find the definition.

### Can I convert my Swagger 2.0 spec to OpenAPI 3.x?

Yes. After validating your Swagger 2.0 document here, use the Swagger to OpenAPI Converter to upgrade it to OpenAPI 3.0. Then run this structure check again on the converted output to confirm its required fields are still in place.

### Is this a full OpenAPI linter like Spectral?

No. It checks structure and basic consistency: the required top-level fields (openapi or swagger, info.title, info.version, paths), that every path starts with /, that every operation has a responses object, and it warns about empty paths, a missing operationId and component schemas with no type, $ref or composition keyword. It does not run a ruleset such as Spectral's OpenAPI rules or Redocly's, does not resolve $ref, and does not validate the document against the OpenAPI schema. For deep linting, run Spectral (from Stoplight) or Redocly CLI on the file after this check.

## Related Tools

- [Swagger to OpenAPI](https://findutils.com/developers/swagger-to-openapi/)
- [API Docs Generator](https://findutils.com/developers/api-docs-generator/)
- [JSON Schema Validator](https://findutils.com/developers/json-schema-validator/)
- [YAML Validator](https://findutils.com/developers/yaml-validator/)
- [JSON Formatter](https://findutils.com/developers/json-formatter/)
- [GraphQL Schema Validator](https://findutils.com/developers/graphql-schema-validator/)
- [cURL to Code](https://findutils.com/developers/curl-to-code/)
- [Postman to cURL](https://findutils.com/developers/postman-to-curl/)
