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

Sources

apis.yml Raw ↑
aid: autorest
name: AutoRest
description: >-
  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.
type: Index
image: https://kinlane-productions.s3.amazonaws.com/apis-json/apis-json-logo.jpg
tags:
  - Code Generation
  - Microsoft
  - OpenAPI
  - SDK Generation
  - Azure SDK
  - Deprecated
url: >-
  https://raw.githubusercontent.com/api-evangelist/autorest/refs/heads/main/apis.yml
created: '2026-03-25'
modified: '2026-04-19'
specificationVersion: '0.19'
apis:
  - aid: autorest:autorest-core
    name: AutoRest Core
    description: >-
      The AutoRest Core package (@autorest/core) is the central engine that
      orchestrates code generation from OpenAPI specifications. It handles input
      processing, configuration resolution, pipeline management, and plugin
      coordination. All language-specific generators are plugins that extend
      the core pipeline.
    humanURL: https://github.com/Azure/autorest
    tags:
      - Code Generation
      - OpenAPI
      - Plugin System
      - Pipeline
    properties:
      - type: Documentation
        url: https://github.com/Azure/autorest/blob/main/docs/readme.md
      - type: GettingStarted
        url: https://github.com/Azure/autorest/blob/main/docs/install/readme.md
      - type: GitHubRepository
        url: https://github.com/Azure/autorest
      - type: SDK
        url: https://www.npmjs.com/package/@autorest/core
        title: npm Package

  - aid: autorest:autorest-csharp
    name: AutoRest C# Generator
    description: >-
      The AutoRest C# generator (@autorest/csharp) produces .NET client
      libraries from OpenAPI specifications. It generates strongly-typed
      C# code with HttpClient-based REST clients, model classes, and
      async/await patterns compatible with .NET 6+.
    humanURL: https://github.com/Azure/autorest.csharp
    tags:
      - C#
      - .NET
      - Code Generation
      - Azure SDK
    properties:
      - type: Documentation
        url: https://github.com/Azure/autorest.csharp
      - type: GitHubRepository
        url: https://github.com/Azure/autorest.csharp

  - aid: autorest:autorest-python
    name: AutoRest Python Generator
    description: >-
      The AutoRest Python generator (@autorest/python) produces Python client
      libraries from OpenAPI specifications, generating typed Python code
      compatible with the Azure SDK for Python and azure-core library.
    humanURL: https://github.com/Azure/autorest.python
    tags:
      - Python
      - Code Generation
      - Azure SDK
    properties:
      - type: Documentation
        url: https://github.com/Azure/autorest.python
      - type: GitHubRepository
        url: https://github.com/Azure/autorest.python

  - aid: autorest:autorest-java
    name: AutoRest Java Generator
    description: >-
      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 Java ecosystem.
    humanURL: https://github.com/Azure/autorest.java
    tags:
      - Java
      - Code Generation
      - Azure SDK
    properties:
      - type: Documentation
        url: https://github.com/Azure/autorest.java
      - type: GitHubRepository
        url: https://github.com/Azure/autorest.java

  - aid: autorest:autorest-typescript
    name: AutoRest TypeScript Generator
    description: >-
      The AutoRest TypeScript generator (@autorest/typescript) produces
      TypeScript and JavaScript client libraries from OpenAPI specifications,
      generating type-safe clients for Node.js and browser environments
      compatible with the Azure SDK for JavaScript.
    humanURL: https://github.com/Azure/autorest.typescript
    tags:
      - TypeScript
      - JavaScript
      - Code Generation
      - Azure SDK
    properties:
      - type: Documentation
        url: https://github.com/Azure/autorest.typescript
      - type: GitHubRepository
        url: https://github.com/Azure/autorest.typescript

  - aid: autorest:autorest-go
    name: AutoRest Go Generator
    description: >-
      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-sdk-for-go ecosystem.
    humanURL: https://github.com/Azure/autorest.go
    tags:
      - Go
      - Code Generation
      - Azure SDK
    properties:
      - type: Documentation
        url: https://github.com/Azure/autorest.go
      - type: GitHubRepository
        url: https://github.com/Azure/autorest.go

common:
  - type: Website
    url: https://github.com/Azure/autorest
  - type: Documentation
    url: https://github.com/Azure/autorest/blob/main/docs/readme.md
  - type: GitHubOrganization
    url: https://github.com/Azure
  - type: GitHubRepository
    url: https://github.com/Azure/autorest
  - type: GettingStarted
    url: https://github.com/Azure/autorest/blob/main/docs/install/readme.md
  - type: ReleaseNotes
    url: https://github.com/Azure/autorest/releases
  - type: Features
    data:
      - name: Multi-Language Code Generation
        description: >-
          Generate client SDKs from OpenAPI specifications in C#, Python, Java,
          TypeScript, JavaScript, Go, PowerShell, and Swift using language-specific
          generator plugins.
      - name: Extensible Plugin Architecture
        description: >-
          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.
      - name: OpenAPI Processing
        description: >-
          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.
      - name: Azure SDK Integration
        description: >-
          Tightly integrated with Microsoft Azure SDK generation for all Azure
          services, producing SDK packages published to npm, PyPI, Maven,
          NuGet, and Go Modules.
      - name: Configuration File Support
        description: >-
          Supports literate configuration using Markdown code blocks for
          per-client customization of generated output including namespace,
          output folder, and generator-specific options.
  - type: UseCases
    data:
      - name: Azure Service SDK Generation
        description: >-
          Primary use case for generating Azure SDK client libraries for all
          Azure services from the azure-rest-api-specs OpenAPI repository.
      - name: REST API Client Generation
        description: >-
          Generate strongly-typed client SDKs for any REST API described in
          OpenAPI format across multiple programming languages simultaneously.
      - name: SDK Customization
        description: >-
          Use AutoRest configuration files and directives to customize generated
          code including renames, suppressions, and additional properties.
  - type: Integrations
    data:
      - name: Azure REST API Specs
        description: >-
          AutoRest is the primary tool consuming the Azure/azure-rest-api-specs
          repository to generate official Azure SDK client libraries.
      - name: TypeSpec
        description: >-
          TypeSpec is the recommended successor to AutoRest for new API
          definitions, with AutoRest generators serving as code generation backends.
      - name: npm
        description: >-
          AutoRest and all language generator plugins are distributed as npm
          packages under the @autorest scope.
maintainers:
  - FN: Kin Lane
    email: [email protected]