Generate OpenAPI 3.0
Schema from JSON
Paste any JSON sample and instantly get a complete OpenAPI 3.0 specification with schema definitions, paths, and request/response types. No signup required.
Open OpenAPI GeneratorA full OpenAPI spec in four steps
No account. No upload. No nonsense.
No Server
Your JSON never leaves your device. There is no backend to send it to.
Standards-Compliant
Generated output is valid OpenAPI 3.0 with JSON Schema Draft-07 types.
Works Offline
Load once and use forever — even on a plane or without internet access.
Related JSON tools
Common questions answered
What is an OpenAPI schema?
OpenAPI (formerly Swagger) is a standard specification for describing REST APIs. It defines endpoints, request/response structures, and data types in JSON or YAML format.
Is the generated OpenAPI schema valid?
Yes. The generator produces a valid OpenAPI 3.0 specification that you can import into tools like Swagger UI, Postman, or Insomnia.
Does my JSON data leave my browser?
No. All processing is 100% client-side — your JSON never leaves your device.
Can I customize the generated API paths?
The generator creates a base structure you can customize. The default path /resource includes both GET and POST operations.
What JSON Schema draft does the output use?
The output uses JSON Schema Draft-07 compatible types, which is what OpenAPI 3.0 supports.
Converting JSON to OpenAPI 3.0 schemas
OpenAPI 3.0 (formerly Swagger) is the standard for describing REST APIs. An OpenAPI schema defines request/response structure using JSON Schema vocabulary. This tool generates OpenAPI component schemas from JSON — useful for bootstrapping API documentation from sample payloads.
The converter produces a complete schema object with type, properties, required arrays, and nested $ref references. Arrays generate items schemas, nested objects become reusable component definitions. Output follows OpenAPI 3.0 syntax for the components/schemas section of your spec.
{
"id": 1,
"name": "Alice",
"email": "alice@test.com",
"roles": ["admin"],
"address": {
"city": "Portland"
}
}
User:
type: object
required:
- id
- name
- email
properties:
id:
type: integer
name:
type: string
email:
type: string
format: email
roles:
type: array
items:
type: string
address:
$ref: "#/components/schemas/
Address"
Get the most out of this tool
- Generate schemas from real API responses to ensure documentation matches actual behavior.
- Use $ref references for nested objects to keep schemas DRY and reusable across endpoints.
- Add description, example, and format fields manually — they improve API documentation quality significantly.
Ready to generate your OpenAPI schema?
Free forever. No signup. Instant results.
Generate OpenAPI schema nowOpenAPI 3.0 schema from JSON data
OpenAPI (formerly Swagger) is the industry-standard specification for describing REST APIs. An OpenAPI document defines endpoints, request bodies, response schemas, authentication methods, and parameters in a machine-readable format. The Schema Object within OpenAPI is based on JSON Schema (Draft 7 subset) and describes the shape of request and response data. Generating OpenAPI schemas from real JSON data is faster and more accurate than writing them from documentation alone.
The converter analyzes your JSON data and produces an OpenAPI 3.0 Schema Object — the component that appears in requestBody, responses, and components/schemas sections of your OpenAPI document. The generated schema includes the type keyword (string, number, integer, boolean, array, object), properties for object fields, items for array element schemas, and required arrays listing fields that appear in every sample record. You can paste the output directly into your OpenAPI YAML or JSON document.
OpenAPI 3.0 introduced several improvements over Swagger 2.0 (OAS2). The oneOf, anyOf, and allOf keywords enable polymorphic schemas — describing APIs where a field might be one of several different shapes. The nullable keyword (in OAS3) or type: [string, null] (in OAS3.1) marks fields that can be null. The $ref keyword references reusable schema components defined in the components/schemas section, enabling schema reuse across multiple endpoints without repetition.
Schema examples — the example and examples keywords in OpenAPI 3.0 — show API consumers what a realistic payload looks like. The converter can include your source JSON as the example value in the generated schema, making the schema self-documenting. Documentation tools like Swagger UI and Redoc render these examples as copy-paste-ready sample payloads in the interactive API documentation.
Validation keywords like format, minimum, maximum, minLength, maxLength, pattern, minItems, maxItems, and uniqueItems constrain acceptable values beyond just the type. The format keyword provides semantic type hints — format: email, format: uri, format: date, format: uuid — that documentation tools use to render more informative fields and that validation libraries can use to perform format-specific checks. The converter infers some formats from field naming conventions and value patterns.
OpenAPI schemas are used by more than just documentation tools. Server code generators (openapi-generator, swagger-codegen) create server stubs from the spec. Client SDK generators create typed clients in dozens of languages. Mock server tools (Prism, WireMock) generate mock responses from the schema. API testing tools validate request/response payloads against the schema. A well-defined OpenAPI schema created from real JSON data is the foundation for all of these tools.
When developers use this tool
Additional frequently asked questions
What is the difference between OpenAPI 3.0 and 3.1?
OpenAPI 3.1 aligns fully with JSON Schema 2020-12, eliminating discrepancies between the two specs. It removes the nullable keyword (replaced by type arrays like ["string", "null"]), adds support for $vocabulary, $dynamicRef, and all 2020-12 keywords. OAS3.1 tooling support is growing but OAS3.0 is still more widely supported by existing tools. The converter targets OAS3.0 for maximum compatibility.
How do I add the generated schema to my existing OpenAPI document?
Paste the generated schema into your components/schemas section under a meaningful name. Then reference it from your endpoint definitions using $ref: '#/components/schemas/MyType'. This allows you to reuse the schema across multiple endpoints (GET and PUT for the same resource, for example) without duplicating the definition.
Does the generated schema mark all fields as required?
The converter marks fields as required if they appear in every sample record. Fields that are absent in any record are left as optional (not in the required array). For a single JSON sample, all fields are marked required. Provide multiple samples (as a JSON array) for more accurate required field inference based on which fields appear consistently.
Can the generated schema be used with FastAPI or Flask?
FastAPI generates its own OpenAPI schema from Python type annotations — you do not add schemas manually. Use the JSON-to-TypeScript or JSON-to-Python converter instead, then translate those types to Pydantic models for FastAPI. For Flask with flask-smorest or Flask-RESTX, you can use the generated OpenAPI schema component directly in your spec definition.