TypeSpec logo

TypeSpec

TypeSpec is an API description language developed by Microsoft for defining API shapes that compile to OpenAPI, JSON Schema, Protobuf, and other output formats. It provides a language and toolchain for describing REST APIs, gRPC services, and data schemas in a type-safe, composable way with built-in support for versioning, metadata, and extensibility via decorators and libraries.

6 APIs 0 Features
API DesignCode GenerationOpenAPIProtocol BuffersSpecification Language

APIs

TypeSpec Compiler

The TypeSpec compiler processes `.tsp` TypeSpec files and emits output for configured emitters (OpenAPI, JSON Schema, Protobuf, etc.). It provides a programmatic Node.js/TypeScr...

TypeSpec OpenAPI Emitter

The TypeSpec OpenAPI emitter converts TypeSpec definitions to OpenAPI 3.0 specifications. It supports HTTP operations, request/response bodies, security schemes, and API version...

TypeSpec JSON Schema Emitter

Emits JSON Schema documents from TypeSpec model definitions, enabling data validation and type documentation workflows.

TypeSpec Protobuf Emitter

Emits Protocol Buffer `.proto` files from TypeSpec service definitions, enabling gRPC service generation from a single TypeSpec source.

TypeSpec HTTP Library

The TypeSpec HTTP library provides decorators and types for describing HTTP REST APIs including routes, operations, request bodies, query parameters, headers, and response codes.

TypeSpec REST Library

The TypeSpec REST library provides decorators for REST API patterns including resource operations (CRUD), collection operations, and standardized error response shapes.

Semantic Vocabularies

Typespec Context

15 classes · 11 properties

JSON-LD

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHub Organization
GitHub Organization
🔗
npm
npm
🔗
Playground
Playground
📰
Blog
Blog
🔗
Community
Community
📄
Release Notes
Release Notes
🔗
JSON-LD
JSON-LD
🔗
Vocabulary
Vocabulary
🔗
JSONSchema
JSONSchema

Sources

apis.yml Raw ↑
aid: typespec
name: TypeSpec
description: >-
  TypeSpec is an API description language developed by Microsoft for defining
  API shapes that compile to OpenAPI, JSON Schema, Protobuf, and other output
  formats. It provides a language and toolchain for describing REST APIs,
  gRPC services, and data schemas in a type-safe, composable way with
  built-in support for versioning, metadata, and extensibility via decorators
  and libraries.
type: Index
image: https://typespec.io/img/favicon.svg
tags:
  - API Design
  - Code Generation
  - OpenAPI
  - Protocol Buffers
  - Specification Language
url: >-
  https://raw.githubusercontent.com/api-evangelist/typespec/refs/heads/main/apis.yml
created: '2026-03-25'
modified: '2026-05-03'
specificationVersion: '0.19'
apis:
  - aid: typespec:typespec-compiler
    name: TypeSpec Compiler
    description: >-
      The TypeSpec compiler processes `.tsp` TypeSpec files and emits output
      for configured emitters (OpenAPI, JSON Schema, Protobuf, etc.). It
      provides a programmatic Node.js/TypeScript API for building TypeSpec
      tooling, custom emitters, and compilers.
    humanURL: https://typespec.io/docs
    tags:
      - API Design
      - Code Generation
      - Compiler
      - Specification Language
    properties:
      - type: Documentation
        url: https://typespec.io/docs
      - type: GitHub Repository
        url: https://github.com/microsoft/typespec
      - type: npm Package
        url: https://www.npmjs.com/package/@typespec/compiler
      - type: Getting Started
        url: https://typespec.io/docs/getting-started/getting-started-rest
      - type: Language Reference
        url: https://typespec.io/docs/language-basics/overview

  - aid: typespec:typespec-openapi-emitter
    name: TypeSpec OpenAPI Emitter
    description: >-
      The TypeSpec OpenAPI emitter converts TypeSpec definitions to OpenAPI 3.0
      specifications. It supports HTTP operations, request/response bodies,
      security schemes, and API versioning decorators.
    humanURL: https://typespec.io/docs/emitters/openapi3/reference
    tags:
      - Code Generation
      - OpenAPI
      - REST API
    properties:
      - type: Documentation
        url: https://typespec.io/docs/emitters/openapi3/reference
      - type: npm Package
        url: https://www.npmjs.com/package/@typespec/openapi3
      - type: GitHub Repository
        url: https://github.com/microsoft/typespec/tree/main/packages/openapi3

  - aid: typespec:typespec-json-schema-emitter
    name: TypeSpec JSON Schema Emitter
    description: >-
      Emits JSON Schema documents from TypeSpec model definitions, enabling
      data validation and type documentation workflows.
    humanURL: https://typespec.io/docs/emitters/json-schema/reference
    tags:
      - Code Generation
      - JSON Schema
      - Validation
    properties:
      - type: Documentation
        url: https://typespec.io/docs/emitters/json-schema/reference
      - type: npm Package
        url: https://www.npmjs.com/package/@typespec/json-schema

  - aid: typespec:typespec-protobuf-emitter
    name: TypeSpec Protobuf Emitter
    description: >-
      Emits Protocol Buffer `.proto` files from TypeSpec service definitions,
      enabling gRPC service generation from a single TypeSpec source.
    humanURL: https://typespec.io/docs/emitters/protobuf/reference
    tags:
      - Code Generation
      - gRPC
      - Protocol Buffers
    properties:
      - type: Documentation
        url: https://typespec.io/docs/emitters/protobuf/reference
      - type: npm Package
        url: https://www.npmjs.com/package/@typespec/protobuf

  - aid: typespec:typespec-http-library
    name: TypeSpec HTTP Library
    description: >-
      The TypeSpec HTTP library provides decorators and types for describing
      HTTP REST APIs including routes, operations, request bodies, query
      parameters, headers, and response codes.
    humanURL: https://typespec.io/docs/libraries/http/reference
    tags:
      - Decorators
      - HTTP
      - REST API
    properties:
      - type: Documentation
        url: https://typespec.io/docs/libraries/http/reference
      - type: npm Package
        url: https://www.npmjs.com/package/@typespec/http

  - aid: typespec:typespec-rest-library
    name: TypeSpec REST Library
    description: >-
      The TypeSpec REST library provides decorators for REST API patterns
      including resource operations (CRUD), collection operations, and
      standardized error response shapes.
    humanURL: https://typespec.io/docs/libraries/rest/reference
    tags:
      - Decorators
      - Resource Pattern
      - REST API
    properties:
      - type: Documentation
        url: https://typespec.io/docs/libraries/rest/reference
      - type: npm Package
        url: https://www.npmjs.com/package/@typespec/rest

maintainers:
  - FN: Kin Lane
    email: [email protected]
common:
  - type: Website
    url: https://typespec.io
  - type: Documentation
    url: https://typespec.io/docs
  - type: GitHub Organization
    url: https://github.com/microsoft/typespec
  - type: npm
    url: https://www.npmjs.com/package/@typespec/compiler
  - type: Playground
    url: https://typespec.io/playground
  - type: Blog
    url: https://typespec.io/blog
  - type: Community
    url: https://github.com/microsoft/typespec/discussions
  - type: Release Notes
    url: https://github.com/microsoft/typespec/releases
  - type: JSON-LD
    url: json-ld/typespec-context.jsonld
  - type: Vocabulary
    url: vocabulary/typespec-vocabulary.yml
  - type: JSONSchema
    url: json-schema/typespec-program-schema.json