Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Converts a JSON schema to an OpenAPI specification version 3.0.

Project description


Converts a JSON schema to an OpenAPI specification version 3.0.


pip install jsonschema-to-openapi



jsonschema-to-openapi my_json_schema.json my_open_api_spec.json


>>> from jsonschema_to_openapi.convert import convert

>>> schema = {} # Your json schema as dictionary.

>>> convert(schema)
{} # Your OpenAPI specification as dictionary.

Caveats and Limitations

  • If you have a complex schema, where you extend a base schema with the $ref operator, you will need to put all base schemas under a "definitions" key in root.
  • Abitrarily nested xOfs cannot be resolved yet. The program won't fail and will procude valid OpenAPI specification, but the result will still contain nested xOf operators.
    • Input:

        "anyOf": [{"$ref": "#/definitions/my_object"}, { "anyOf": [{"type": "null"}] }],
        "definitions": {
            "my_object": {"type": "string"}
    • Output:

          "anyOf": [
                  "$ref": "#/definitions/my_object"
                  "anyOf": [
                          "type": "null"
          "definitions": {
              "my_object": {
                  "nullable": false,
                  "type": "string"


Please take a look at the for notable changes to jsonschema-to-openapi.


See the LICENSE for details.


We welcome new contributions to this project!

Source Code

You can check the latest source code with the command:

git clone


After cloning and installing the dependencies, you can lint the project by executing:

make lint


After cloning and installing the dependencies, you can test the project by executing:

make test

Help and Support



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for jsonschema-to-openapi, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size jsonschema_to_openapi-0.2.1-py3-none-any.whl (8.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size jsonschema-to-openapi-0.2.1.tar.gz (7.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page