OpenAPI · AsyncAPI · Protobuf · GraphQL

One toolkit for every API contract

API Genie lints and formats your API descriptions, catches breaking changes before they ship, mocks and contract-tests live APIs, generates clients, servers and documentation for the stack you already use, and edits the files in forms without losing a byte. From the command line, your browser, the desktop or VS Code.

brew install mykulyak/apigenie/apigenie
A terminal running apigenie diff: every change between two versions of the Petstore API, rated breaking or non-breaking

apigenie diff rates every change between two versions of an API and fails the build on the breaking ones.

Generates code for

  • TypeScript
  • Python
  • C#
  • Java
  • Go
  • Elixir

Everything you need to build a modern Web API

Stop stitching together a linter, a diff tool and a handful of code generators. API Genie covers the whole workflow.

  • Keep your schemas in good shape

    The CLI lints and formats OpenAPI, AsyncAPI, Protobuf and GraphQL files, so every API in the repository follows the same rules.

  • Detect breaking changes

    Compare two versions of an API description, see what changed, and fail the build when a change would break your clients.

  • Generate clients, servers and docs

    Generate client libraries and servers from OpenAPI and AsyncAPI documents, and one documentation site for all your APIs.

  • Test against the contract

    Mock any API, put a validating proxy in front of a real one, and run contract tests in CI over HTTP, WebSocket, MQTT, gRPC and GraphQL.

  • Works with your API standards

    OpenAPI 3.0 to 3.2, Swagger 2.0, AsyncAPI, Protobuf and GraphQL: the same commands work across all of them.

  • Keep a catalog of your APIs

    List every API specification in a repository, record its name and owner, and keep the catalog in git next to the code.

Build better Web APIs

Start with a single file and a single command. Add generators, mocks and contract tests as you go.

The API Genie mascot holding OpenAPI, AsyncAPI, Protobuf and GraphQL tiles