autorest is a free, open source api development & testing project written in TypeSpec and released under MIT. It has 4,798 GitHub stars, 736 forks and 25 open issues, and was last pushed 4 days ago. On this registry it ranks #50 of 103 tracked projects in API Development & Testing, with 5 head-to-head comparisons available.

What is autorest?

AutoRest is an MIT-licensed, Node.js-based code generator that reads an OpenAPI (formerly Swagger) specification and emits client libraries for C#, PowerShell, Go, Java, Node.js, TypeScript, Python, and Swift, and it is built for API producers and platform teams that want generated, typed REST clients instead of hand-written ones.

What it is

AutoRest is a command-line tool distributed through the Node.js and npm ecosystem for generating client libraries that access RESTful web services. Its input is a specification that describes a REST API using the OpenAPI Specification format, and its output is source code in a target language: a client library a developer can call directly rather than hand-assemble from raw HTTP calls. The repository is organised as a set of npm packages rather than a single monolith, with autorest as the entry point, @autorest/core and @autorest/modelerfour handling the shared generation pipeline, and one generator package per output language.

The concrete problem it solves is the duplication that appears when one HTTP API needs client support in many languages. Without generation, each language's client is written and maintained separately, so schema changes have to be re-implemented by hand in C#, Python, Java, Go, TypeScript, and PowerShell. AutoRest replaces that hand-maintained, per-language client code with a single generated result derived from one OpenAPI document, keeping every language's client aligned with the same specification. The project is tagged with openapi, swagger, rest-client, code-generator, and azure, reflecting its origin in generating clients for large, multi-language API surfaces.

Key capabilities

  • Generates client libraries from a single OpenAPI Specification input, rather than requiring separately written clients per language.
  • Ships language generators as separate npm packages: @autorest/csharp, @autorest/go, @autorest/java, @autorest/powershell, @autorest/python, @autorest/typescript, and @autorest/swift.
  • Splits the pipeline into core components, with autorest as the CLI entry point and @autorest/core plus @autorest/modelerfour handling the shared processing.
  • Supports an extension model through @autorest/extension-base and @azure-tools/extension, which is the mechanism behind adding generators and plugins.
  • Provides shared code-model and configuration packages, including @autorest/codemodel, @autorest/configuration, and @autorest/common.
  • Handles OpenAPI document plumbing through @azure-tools/openapi, @azure-tools/datastore, and @azure-tools/deduplication.
  • Publishes alongside stable releases on next prerelease tags for the core, code-model, and tooling packages.

Who uses it and how

  • Teams maintaining an API with clients in several languages, where one OpenAPI document feeds C#, Java, Go, Python, TypeScript, and PowerShell generation runs.
  • Azure service and SDK work, consistent with the azure topic and the project's position as an Azure-originated generator.
  • PowerShell module authors, who use @autorest/powershell to produce command-line-friendly clients from an API description.
  • Projects where generated clients are regenerated as the API evolves, so the OpenAPI file stays the single source of truth across language repositories.
  • Contributors extending generation behaviour, who work through the extension packages rather than editing a generator for each language. The repository carries 4,798 stars and 736 forks with 25 open issues, indicating a broad set of downstream users and forks.

Getting started

AutoRest is installed and run from npm: the core tool is published as the autorest package, with @autorest/core and @autorest/modelerfour as supporting packages and each language generator (@autorest/csharp, @autorest/python, and the rest) installed separately.

How it compares

No list of paid products is provided for this entry, and the only comparable tool the facts name is TypeSpec, which the README designates as AutoRest's recommended successor and replacement. On that basis AutoRest stands alongside TypeSpec in this registry rather than against a set of commercial alternatives, with TypeSpec positioned as the actively developed option going forward.

When to use it — and when not to

AutoRest is deprecated and will be retired on July 1, 2026; it is no longer under active development, and no new features, language generators, or plugins will be added. New projects should start with TypeSpec, the recommended successor, while existing users with working generation pipelines for C#, Go, Java, PowerShell, Python, TypeScript, or Swift can continue until retirement. The licence is clear (MIT) and the deprecation is explicit, with a tracking issue at https://github.com/Azure/autorest/issues/5175 — the real limitation is not ambiguity but the fixed end date.

project readme (upstream, from github) — read inline

⚠️ Deprecation Notice

AutoRest is deprecated and will be retired on July 1, 2026.

AutoRest is no longer under active development. No new features, language generators, or plugins will be added.

✅ Recommended replacement: TypeSpec

The recommended successor to AutoRest is TypeSpec — a modern, actively developed API description language and code generation platform.

📌 Deprecation tracking issue for more details: https://github.com/Azure/autorest/issues/5175

AutoRest

The AutoRest tool generates client libraries for accessing RESTful web services. Input to AutoRest is a spec that describes the REST API using the OpenAPI Specification format.

Release notes

Packages

Getting Started using AutoRest image

View our [docs readme][docs_readme] as a starting point to find both general information and language-generator specific information

Contributing

Contributing guide

Check our internal developer docs to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Autorest.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

[docs_readme]:

readme truncated — read the full docs on github

Frequently asked questions

Is autorest free to use?

autorest is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does autorest do?

OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python

What is autorest written in?

autorest is primarily written in TypeSpec. Its source is publicly available at https://github.com/Azure/autorest, and it has 4,798 GitHub stars.