OpenAPI.Tools

We want to keep API developers up to date with the best OpenAPI tooling around, with the goal of upgrading to OpenAPI v3 as soon as possible. Tooling stuck on v2? You might need to send a pull request!

Contribute Main Website

Contribute

This project was created by Matthew Trask and Phil Sturgeon with contributions from the community. If you need help, hit Matt or Phil up on twitter.

Current OpenAPI Version

3.0.2 - Link to the specification

Converters

Name Language v2 v3 GitHub
api-spec-converter - Convert API descriptions between popular formats such as OpenAPI v2/v3, RAML, API Blueprint, WADL, etc. JavaScript
Apimatic Transformer - Transform API Descriptions to and from RAML, API Blueprint, OAI v2/v3, WSDL, etc. SaaS
API Flow - Convert from and to multiple formats. Linking to Phil's fork because the original is completely broken JavaScript 👷
Google Gnostic - Compile OpenAPI descriptions into equivalent Protocol Buffer representations Go
swagger2openapi - Upgrade specs from OpenAPI v2.0 to v3.0, bundling into one mega file or respecting $refs Node.js
OAS RAML Converter - Converts between OAS and RAML API specifications Node.js
OData OpenAPI - OData 4.0 to OpenAPI 3.0.0 converter XSLT
OpenAPI Filter - Filter internal components from OpenAPI definitions Node.js
OData.OpenAPI - Convert an Edm (Entity Data Model) to OpenApi 3.0 .NET
pyswagger - Client & converter in Python, which is type-safe, dynamic, spec-compliant. Python 👷
odata2openapi - OData 4.0 to OpenAPI 2 converter Node.js
OpenAPI Generator - A template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI definition (community-driven fork of swagger-codegen) Java
go-swagger - Everything all in one. Parser, validator, generates spec from code, or code from spec! Go 👷

Documentation

Name Language v2 v3 GitHub
APIMatic Developer Experience Portal - Customizable developer portals packed with language specific documentation, client libraries, code samples, an API console and much more. SaaS
Kong Enterprise Edition - Highly customizable developer portal with developer onboarding, integrated with the Kong API Gateway Lua
LucyBot DocGen - Generate a customizable website, with API documentation, console, and interactive workflows, from an OpenAPI spec JavaScript
openapi-viewer - Browse and test a REST API described with the OpenAPI 3.0 Specification Vue.js
openapi-ui - React based OpenAPI 3.0+ documentation generator React.js
ReDoc - OpenAPI/Swagger-generated API Reference Documentation React.js
widdershins - Generate Slate/Shins markdown from OpenAPI 2.0/3.0.x Node.js
openapi3-generator - Use your API OpenAPI 3 definition to generate code, documentation, and literally anything you need. Node.js

Text Editors

Name Language v2 v3 GitHub
KaiZen-OpenAPI-Editor - Full-featured Eclipse editor for OpenAPI 2.0 and 3.0, also available on Eclipse Marketplace. Java
Atom/linter-swagger - This plugin for Atom Linter will lint Swagger 2.0 specifications or OpenAPI 3.0, both JSON and YAML using swagger-parser node package. JavaScript
Swagger Editor - Design, describe, and document your API on the first open source editor fully dedicated to OpenAPI-based APIs. Node.js
SwaggerHub - API design and documentation platform to improve collaboration, standardize development workflow and centralize their API discovery and consumption. SaaS/On-Premise NodeJS
Senya Editor - Design API specifications fast and effectively​ in your favorite JetBrains IDE. Java
VSCode/openapi-lint - OpenAPI (Swagger) 2.0/3.0.x intellisense, validator and linter for Visual Studio Code Node.js

GUI Editors

Name Language v2 v3 GitHub
RepreZen API Studio - RepreZen API Studio is an integrated workbench that brings API-first design into focus for your whole team, harmonizes your API designs, and generates APIs that click into client apps. Java
Apicurio Studio - A standalone API design studio that can be used to create new or edit existing API designs. TypeScript
Rápido - An API design tool that facilitates the sketching phase of design. Node.js
Stoplight - Stoplight is the Complete OpenAPI Specification Toolkit that leverages your OpenAPI documents to drive the entire API development process SaaS

Mock Servers

Name Language v2 v3 GitHub
Connexion - OpenAPI First framework for Python on top of Flask with automatic endpoint validation & OAuth2 support Python
Prism - Turn any OAI file into an API server with mocking, transformations, validations, and more. cli 👷
Sandbox - SaaS, self-hosted, or CLI tool for turning OpenAPI (and other) definitions into a mock server, where you can modify behaviour, simulate downtime, and any other nonsnese you can think of thanks to a built-in code editor! SaaS / Java 👷
Microcks - Mocking and testing platform for API and microservices. Turn your OAI contract examples into ready to use mocks. Use examples to test and validate implementations according schema elements. Self-hosted / SaaS
API Sprout - Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation cli / Docker

Server implementations

Name Language v2 v3 GitHub
Vert.x Web Api Contract - Create API endpoints with Vert.x 3 and OpenAPI 3 with automatic requests validation Java, Kotlin, JavaScript, Groovy, Ruby, Ceylon & Scala
BaucisJS + baucis-openapi3 - Create REST resources with persistence on MongoDB and expose OpenAPI v.3 contracts JavaScript
BaucisJS + baucis-swagger2 - Create REST resources with persistence on MongoDB and expose OpenAPI v.2 contracts JavaScript
@smartrecruiters/openapi-first - Initializes your API express application with specification in OpenAPI Specification 3.0 format using provided middlewares (parsers, validators, controller, defaults setting) or custom ones Node.js
openapi-backend - Build, Validate, Route, and Mock using OpenAPI specification. Framework-agnostic Node.js

Miscellaneous

Name Language v2 v3 GitHub
Sway - A library that simplifies OpenAPI integrations/tooling. JavaScript 👷
openapi-diff - Utility for comparing two OpenAPI specifications. Java
$ oas (CLI) - Generate OAS files from code comments and easily host them ($ npm install oas -g) JavaScript

Parsers

Name Language v2 v3 GitHub
swagger-parser - Swagger 1.0, 1.1, 1.2, 2.0 to OpenAPI Specification parser Java
BigstickCarpet/swagger-parser - Swagger/OpenAPI 2.0 and 3.0 parser and validator. Can also bundle multiple files into one via `$ref`. Node.js
KaiZen OpenAPI Parser - High-performance Parser, Validator, and Java Object Model for OpenAPI 3.x Java
OpenAPI-TS - TS Model & utils for OpenAPI 3.0.x contracts TypeScript
kin-openapi - A Go library for handling OpenAPI 3.0 specifications Go
OpenAPI3-Rust - Rust serialization library for OpenAPI v3 Rust
psx-api - Parse and generate API specification formats PHP
Microsoft/OpenAPI.NET - C# based parser with definition validation and migration support from V2 .NET
oas_parser - A Ruby parser for Open API Spec 3.0+ definitions. Ruby

Schema Validators

Name Language v2 v3 GitHub
Speccy - Lint to enforce quality rules on your OpenAPI specifications CLI
BigstickCarpet/swagger-cli - A handy cli tool for validating JSON or YAML files schema files that respects $ref Node.js / CLI
openapi-spec-validator - OpenAPI Spec validator Python
Sway - A library that simplifies OpenAPI integrations/tooling. JavaScript 👷
oval - CLI for (O)penAPI Specification document (val)idation. JavaScript 👷
Spectral - A flexible JSON object linter with out of the box support for OpenAPI Specification TypeScript/JavaScript

Data Validators

Name Language v2 v3 GitHub
Dredd - Language-agnostic command-line tool for validating API description document against backend implementation of the API Javascript 👷
Sway - A library that simplifies OpenAPI integrations/tooling. JavaScript 👷
kin-openapi - A Go library for handling OpenAPI 3.0 specifications Go

Testing

Name Language v2 v3 GitHub
Dredd - Language-agnostic command-line tool for validating API description document against backend implementation of the API Javascript 👷
Swagger Inspector - Swagger Inspector is a free online tool to quickly execute any API request, validate its responses and generate a corresponding OpenAPI definition. Self-hosted/SaaS
Assertible - Import an OpenAPI specification into Assertible to generate tests that validate JSONSchema responses and status codes on every endpoint. SaaS

SDK Generators

Name Language v2 v3 GitHub
OpenAPI Generator - A template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI definition (community-driven fork of swagger-codegen) Java
APIMatic CodeGen - Bring in your API description (OAI v2/v3, RAML, API Blueprint, WSDL, etc.) to generate fully functional SDKs in over 10 languages. SaaS
janephp/open-api - Generate a PHP Client API (PSR7 compatible) given a OpenAPI specification. PHP
go-swagger - Everything all in one. Parser, validator, generates spec from code, or code from spec! Go 👷