Swagger is a set of open-source tools for describing, building, and consuming HTTP APIs, originally created by Tony Tam around 2011 to document the API of his startup’s service. It paired a machine-readable description format with tooling that consumed that format, letting an API be specified once and then rendered, exercised, and code-generated automatically.
Swagger’s own documentation describes the toolset as built around a description format for REST APIs, with three central tools. Swagger Editor is a browser-based editor for writing API definitions, Swagger UI renders those definitions as interactive documentation that lets users try requests directly in the browser, and Swagger Codegen generates server stubs and client libraries in many languages from a definition.
The core idea is that a single self-describing document, listing an API’s paths, operations, parameters, and response shapes, can drive an entire ecosystem of tooling. Rather than writing documentation, client SDKs, and request examples by hand and keeping them in sync, teams maintain one definition and let the tools produce the rest.
In 2015 the Swagger specification was donated to a new vendor-neutral body, the OpenAPI Initiative under the Linux Foundation, and the format was renamed the OpenAPI Specification. As the Swagger documentation explains, the OpenAPI Specification is the API description format, while Swagger remains the set of open-source tools built around it.
That split is why the two names are often used interchangeably in practice. The description format people now call OpenAPI grew directly out of Swagger, and the Swagger-branded tools, hosted under the swagger-api organization on GitHub and commercialized by SmartBear, continue to be among the most common ways teams author and visualize OpenAPI definitions.