---
description: A language-agnostic specification for describing REST APIs
---

# OpenAPI

OpenAPI allows both computers and humans to understand the capabilities of a REST API without direct access to the source code.&#x20;

Its main goals are to:

* Minimize the amount of work needed to connect decoupled services.
* Reduce the amount of time needed to accurately document a service.

The two main OpenAPI implementations for .NET are [Swashbuckle](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) and [NSwag](https://github.com/RicoSuter/NSwag).

Swagger is tooling released by SmartBear that uses the OpenAPI specification. For example, OpenAPIGenerator and SwaggerUI.
