AutoRest logo

AutoRest

AutoRest is an open source tool from Microsoft (MIT License) that generates client libraries for accessing RESTful APIs from OpenAPI specifications. It powers generation of Azure SDKs across C#, Python, Java, TypeScript, Go, PowerShell, and Swift with an extensible plugin architecture. Note: AutoRest is deprecated as of 2026 with retirement on July 1, 2026. The recommended successor is TypeSpec, a modern API description language and code generation platform from Microsoft.

6 APIs 5 Features
Code GenerationMicrosoftOpenAPISDK GenerationAzure SDKDeprecated

APIs

AutoRest Core

The AutoRest Core package (@autorest/core) is the central engine that orchestrates code generation from OpenAPI specifications. It handles input processing, configuration resolu...

AutoRest C# Generator

The AutoRest C# generator (@autorest/csharp) produces .NET client libraries from OpenAPI specifications. It generates strongly-typed C# code with HttpClient-based REST clients, ...

AutoRest Python Generator

The AutoRest Python generator (@autorest/python) produces Python client libraries from OpenAPI specifications, generating typed Python code compatible with the Azure SDK for Pyt...

AutoRest Java Generator

The AutoRest Java generator (@autorest/java) produces Java client libraries from OpenAPI specifications, generating Java code compatible with azure-core and the Azure SDK for Ja...

AutoRest TypeScript Generator

The AutoRest TypeScript generator (@autorest/typescript) produces TypeScript and JavaScript client libraries from OpenAPI specifications, generating type-safe clients for Node.j...

AutoRest Go Generator

The AutoRest Go generator (@autorest/go) produces Go client libraries from OpenAPI specifications, generating idiomatic Go code compatible with the Azure SDK for Go and azure-sd...

Features

Multi-Language Code Generation

Generate client SDKs from OpenAPI specifications in C#, Python, Java, TypeScript, JavaScript, Go, PowerShell, and Swift using language-specific generator plugins.

Extensible Plugin Architecture

AutoRest uses a pipeline-based plugin architecture where language generators, transformers, and validators are loaded as npm packages. Custom plugins can be developed to extend the generation pipeline.

OpenAPI Processing

Supports OpenAPI 2.0 (Swagger) and OpenAPI 3.0 specification formats. The modelerfour plugin normalizes OpenAPI schemas into a consistent code model shared across all language generators.

Azure SDK Integration

Tightly integrated with Microsoft Azure SDK generation for all Azure services, producing SDK packages published to npm, PyPI, Maven, NuGet, and Go Modules.

Configuration File Support

Supports literate configuration using Markdown code blocks for per-client customization of generated output including namespace, output folder, and generator-specific options.

Use Cases

Azure Service SDK Generation

Primary use case for generating Azure SDK client libraries for all Azure services from the azure-rest-api-specs OpenAPI repository.

REST API Client Generation

Generate strongly-typed client SDKs for any REST API described in OpenAPI format across multiple programming languages simultaneously.

SDK Customization

Use AutoRest configuration files and directives to customize generated code including renames, suppressions, and additional properties.

Integrations

Azure REST API Specs

AutoRest is the primary tool consuming the Azure/azure-rest-api-specs repository to generate official Azure SDK client libraries.

TypeSpec

TypeSpec is the recommended successor to AutoRest for new API definitions, with AutoRest generators serving as code generation backends.

npm

AutoRest and all language generator plugins are distributed as npm packages under the @autorest scope.

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
🚀
GettingStarted
GettingStarted
📄
ReleaseNotes
ReleaseNotes