Amazon API Gateway V2 (HTTP and WebSocket)

The API Gateway V2 control plane API is used to create, deploy, and manage HTTP APIs and WebSocket APIs in Amazon API Gateway. It provides resources for Apis, Routes, Integrations, Stages, Deployments, and Authorizers for the newer HTTP and WebSocket API types.

OpenAPI Specification

aws-api-gateway-v2-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon API Gateway V2 (HTTP and WebSocket)
  description: >-
    The API Gateway V2 control plane API is used to create, deploy,
    and manage HTTP APIs and WebSocket APIs in Amazon API Gateway.
  version: '2018-11-29'
  contact:
    name: AWS Support
    url: https://aws.amazon.com/premiumsupport/
  termsOfService: https://aws.amazon.com/service-terms/
externalDocs:
  description: Amazon API Gateway V2 API Reference
  url: https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/Welcome.html
servers:
- url: https://apigateway.{region}.amazonaws.com
  description: Amazon API Gateway regional endpoint
  variables:
    region:
      default: us-east-1
      description: AWS region
tags:
- name: Authorizers
  description: Manage authorizers
- name: Deployments
  description: Manage deployments
- name: Integrations
  description: Manage backend integrations
- name: Routes
  description: Manage routes within an API
- name: Stages
  description: Manage deployment stages
security:
- sigv4: []
paths:
  /v2/apis:
    get:
      operationId: getApis
      summary: Amazon API Gateway List APIs
      description: Gets a collection of HTTP and WebSocket APIs.
      tags: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Apis'
              examples:
                getApis200Example:
                  summary: Default getApis 200 response
                  x-microcks-default: true
                  value:
                    Items:
                    - example-value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createApi
      summary: Amazon API Gateway Create an API
      description: Creates an HTTP or WebSocket API.
      tags: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiRequest'
            examples:
              createApiRequestExample:
                summary: Default createApi request
                x-microcks-default: true
                value:
                  Name: my-resource
                  ProtocolType: HTTP
                  RouteSelectionExpression: example-value
                  Description: A description of this resource.
                  Target: example-value
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Api'
              examples:
                createApi201Example:
                  summary: Default createApi 201 response
                  x-microcks-default: true
                  value:
                    ApiId: abc123
                    Name: my-resource
                    ProtocolType: HTTP
                    ApiEndpoint: example-value
                    RouteSelectionExpression: example-value
                    CreatedDate: '2025-03-15T14:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2/apis/{api_id}:
    parameters:
    - $ref: '#/components/parameters/ApiId'
    get:
      operationId: getApi
      summary: Amazon API Gateway Get an API
      description: Retrieves a single HTTP or WebSocket API.
      tags: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Api'
              examples:
                getApi200Example:
                  summary: Default getApi 200 response
                  x-microcks-default: true
                  value:
                    ApiId: abc123
                    Name: my-resource
                    ProtocolType: HTTP
                    ApiEndpoint: example-value
                    RouteSelectionExpression: example-value
                    CreatedDate: '2025-03-15T14:30:00Z'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteApi
      summary: Amazon API Gateway Delete an API
      description: Deletes the specified API.
      tags: []
      responses:
        '204':
          description: No Content
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2/apis/{api_id}/routes:
    parameters:
    - $ref: '#/components/parameters/ApiId'
    get:
      operationId: getRoutes
      summary: Amazon API Gateway List Routes
      description: Gets a collection of routes for an API.
      tags:
      - Routes
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Routes'
              examples:
                getRoutes200Example:
                  summary: Default getRoutes 200 response
                  x-microcks-default: true
                  value:
                    Items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createRoute
      summary: Amazon API Gateway Create a Route
      description: Creates a route for an API.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRouteRequest'
            examples:
              createRouteRequestExample:
                summary: Default createRoute request
                x-microcks-default: true
                value:
                  RouteKey: example-value
                  Target: example-value
                  AuthorizationType: example-value
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Route'
              examples:
                createRoute201Example:
                  summary: Default createRoute 201 response
                  x-microcks-default: true
                  value:
                    RouteId: abc123
                    RouteKey: example-value
                    Target: example-value
                    AuthorizationType: example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2/apis/{api_id}/integrations:
    parameters:
    - $ref: '#/components/parameters/ApiId'
    get:
      operationId: getIntegrations
      summary: Amazon API Gateway List Integrations
      description: Gets a collection of integrations for an API.
      tags:
      - Integrations
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integrations'
              examples:
                getIntegrations200Example:
                  summary: Default getIntegrations 200 response
                  x-microcks-default: true
                  value:
                    Items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createIntegration
      summary: Amazon API Gateway Create an Integration
      description: Creates an integration for an API.
      tags:
      - Integrations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIntegrationRequest'
            examples:
              createIntegrationRequestExample:
                summary: Default createIntegration request
                x-microcks-default: true
                value:
                  IntegrationType: AWS
                  IntegrationUri: https://example.com/resource/123
                  PayloadFormatVersion: '1.0'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integration'
              examples:
                createIntegration201Example:
                  summary: Default createIntegration 201 response
                  x-microcks-default: true
                  value:
                    IntegrationId: abc123
                    IntegrationType: example-value
                    IntegrationUri: https://example.com/resource/123
                    PayloadFormatVersion: '1.0'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2/apis/{api_id}/stages:
    parameters:
    - $ref: '#/components/parameters/ApiId'
    get:
      operationId: getStages
      summary: Amazon API Gateway List Stages
      description: Gets a collection of stages for an API.
      tags:
      - Stages
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stages'
              examples:
                getStages200Example:
                  summary: Default getStages 200 response
                  x-microcks-default: true
                  value:
                    Items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createStage
      summary: Amazon API Gateway Create a Stage
      description: Creates a deployment stage for an API.
      tags:
      - Stages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateStageRequest'
            examples:
              createStageRequestExample:
                summary: Default createStage request
                x-microcks-default: true
                value:
                  StageName: my-resource
                  DeploymentId: abc123
                  AutoDeploy: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stage'
              examples:
                createStage201Example:
                  summary: Default createStage 201 response
                  x-microcks-default: true
                  value:
                    StageName: my-resource
                    DeploymentId: abc123
                    Description: A description of this resource.
                    AutoDeploy: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2/apis/{api_id}/deployments:
    parameters:
    - $ref: '#/components/parameters/ApiId'
    get:
      operationId: getDeployments
      summary: Amazon API Gateway List Deployments
      description: Gets a collection of deployments for an API.
      tags:
      - Deployments
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployments'
              examples:
                getDeployments200Example:
                  summary: Default getDeployments 200 response
                  x-microcks-default: true
                  value:
                    Items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createDeployment
      summary: Amazon API Gateway Create a Deployment
      description: Creates a deployment for an API.
      tags:
      - Deployments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDeploymentRequest'
            examples:
              createDeploymentRequestExample:
                summary: Default createDeployment request
                x-microcks-default: true
                value:
                  StageName: my-resource
                  Description: A description of this resource.
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
              examples:
                createDeployment201Example:
                  summary: Default createDeployment 201 response
                  x-microcks-default: true
                  value:
                    DeploymentId: abc123
                    Description: A description of this resource.
                    DeploymentStatus: ACTIVE
                    CreatedDate: '2025-03-15T14:30:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v2/apis/{api_id}/authorizers:
    parameters:
    - $ref: '#/components/parameters/ApiId'
    get:
      operationId: getAuthorizers
      summary: Amazon API Gateway List Authorizers
      description: Gets a collection of authorizers for an API.
      tags:
      - Authorizers
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Authorizers'
              examples:
                getAuthorizers200Example:
                  summary: Default getAuthorizers 200 response
                  x-microcks-default: true
                  value:
                    Items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createAuthorizer
      summary: Amazon API Gateway Create an Authorizer
      description: Creates an authorizer for an API.
      tags:
      - Authorizers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAuthorizerRequest'
            examples:
              createAuthorizerRequestExample:
                summary: Default createAuthorizer request
                x-microcks-default: true
                value:
                  Name: my-resource
                  AuthorizerType: REQUEST
                  IdentitySource:
                  - example-value
                  AuthorizerUri: https://example.com/resource/123
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Authorizer'
              examples:
                createAuthorizer201Example:
                  summary: Default createAuthorizer 201 response
                  x-microcks-default: true
                  value:
                    AuthorizerId: abc123
                    Name: my-resource
                    AuthorizerType: example-value
                    IdentitySource:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4 signed request.
  parameters:
    ApiId:
      name: api_id
      in: path
      required: true
      description: API identifier.
      schema:
        type: string
  responses:
    BadRequest:
      description: The request was malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The request was not authenticated.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Api:
      type: object
      properties:
        ApiId:
          type: string
          description: Identifier of the API.
          example: abc123
        Name:
          type: string
          description: Name of the API.
          example: my-resource
        ProtocolType:
          type: string
          description: API protocol (HTTP or WEBSOCKET).
          enum: [HTTP, WEBSOCKET]
          example: HTTP
        ApiEndpoint:
          type: string
          description: Default endpoint for the API.
          example: example-value
        RouteSelectionExpression:
          type: string
          description: Route selection expression for the API.
          example: example-value
        CreatedDate:
          type: string
          format: date-time
          description: Timestamp when the API was created.
          example: '2025-03-15T14:30:00Z'
    Apis:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/Api'
          example:
          - example-value
    CreateApiRequest:
      type: object
      required: [Name, ProtocolType]
      properties:
        Name:
          type: string
          description: Name of the API.
          example: my-resource
        ProtocolType:
          type: string
          description: Protocol type for the API.
          enum: [HTTP, WEBSOCKET]
          example: HTTP
        RouteSelectionExpression:
          type: string
          description: Route selection expression (required for WebSocket APIs).
          example: example-value
        Description:
          type: string
          description: Description of the API.
          example: A description of this resource.
        Target:
          type: string
          description: Quick-create target Lambda or HTTP endpoint URI.
          example: example-value
    Route:
      type: object
      properties:
        RouteId:
          type: string
          description: Route identifier.
          example: abc123
        RouteKey:
          type: string
          description: Route key (e.g. "GET /items" or "$connect").
          example: example-value
        Target:
          type: string
          description: Integration target reference.
          example: example-value
        AuthorizationType:
          type: string
          description: Authorization type for the route.
          example: example-value
    Routes:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/Route'
          example:
          - example-value
    CreateRouteRequest:
      type: object
      required: [RouteKey]
      properties:
        RouteKey:
          type: string
          description: Route key for the new route.
          example: example-value
        Target:
          type: string
          description: Integration target reference.
          example: example-value
        AuthorizationType:
          type: string
          description: Authorization type for the route.
          example: example-value
    Integration:
      type: object
      properties:
        IntegrationId:
          type: string
          description: Integration identifier.
          example: abc123
        IntegrationType:
          type: string
          description: Type of integration (AWS_PROXY, HTTP_PROXY, etc.).
          example: example-value
        IntegrationUri:
          type: string
          description: Integration target URI.
          example: https://example.com/resource/123
        PayloadFormatVersion:
          type: string
          description: Payload format version.
          example: '1.0'
    Integrations:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/Integration'
          example:
          - example-value
    CreateIntegrationRequest:
      type: object
      required: [IntegrationType]
      properties:
        IntegrationType:
          type: string
          description: Type of integration.
          enum: [AWS, AWS_PROXY, HTTP, HTTP_PROXY, MOCK]
          example: AWS
        IntegrationUri:
          type: string
          description: Integration target URI.
          example: https://example.com/resource/123
        PayloadFormatVersion:
          type: string
          description: Payload format version.
          example: '1.0'
    Stage:
      type: object
      properties:
        StageName:
          type: string
          description: Name of the stage.
          example: my-resource
        DeploymentId:
          type: string
          description: Deployment identifier.
          example: abc123
        Description:
          type: string
          description: Description of the stage.
          example: A description of this resource.
        AutoDeploy:
          type: boolean
          description: Whether updates auto-deploy to this stage.
          example: true
    Stages:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/Stage'
          example:
          - example-value
    CreateStageRequest:
      type: object
      required: [StageName]
      properties:
        StageName:
          type: string
          description: Name of the stage.
          example: my-resource
        DeploymentId:
          type: string
          description: Deployment identifier.
          example: abc123
        AutoDeploy:
          type: boolean
          description: Whether to enable auto-deploy.
          example: true
    Deployment:
      type: object
      properties:
        DeploymentId:
          type: string
          description: Deployment identifier.
          example: abc123
        Description:
          type: string
          description: Description of the deployment.
          example: A description of this resource.
        DeploymentStatus:
          type: string
          description: Status of the deployment (PENDING, FAILED, DEPLOYED).
          example: ACTIVE
        CreatedDate:
          type: string
          format: date-time
          description: Timestamp when the deployment was created.
          example: '2025-03-15T14:30:00Z'
    Deployments:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/Deployment'
          example:
          - example-value
    CreateDeploymentRequest:
      type: object
      properties:
        StageName:
          type: string
          description: Stage to deploy to.
          example: my-resource
        Description:
          type: string
          description: Description of the deployment.
          example: A description of this resource.
    Authorizer:
      type: object
      properties:
        AuthorizerId:
          type: string
          description: Authorizer identifier.
          example: abc123
        Name:
          type: string
          description: Authorizer name.
          example: my-resource
        AuthorizerType:
          type: string
          description: Type of authorizer (REQUEST or JWT).
          example: example-value
        IdentitySource:
          type: array
          description: Identity sources for the authorizer.
          items:
            type: string
          example:
          - example-value
    Authorizers:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/Authorizer'
          example:
          - example-value
    CreateAuthorizerRequest:
      type: object
      required: [Name, AuthorizerType, IdentitySource]
      properties:
        Name:
          type: string
          description: Name of the authorizer.
          example: my-resource
        AuthorizerType:
          type: string
          description: Type of authorizer.
          enum: [REQUEST, JWT]
          example: REQUEST
        IdentitySource:
          type: array
          description: Identity sources to use.
          items:
            type: string
          example:
          - example-value
        AuthorizerUri:
          type: string
          description: URI of the Lambda authorizer (REQUEST type).
          example: https://example.com/resource/123
    Error:
      type: object
      properties:
        Message:
          type: string
          description: Human-readable error message.
          example: example-value