Amazon API Gateway V1 (REST)

The API Gateway V1 control plane API is used to create, deploy, and manage REST APIs in Amazon API Gateway. It exposes resources for RestApis, Resources, Methods, Stages, Deployments, Authorizers, API keys, usage plans, and related configuration.

OpenAPI Specification

aws-api-gateway-v1-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon API Gateway V1 (REST)
  description: >-
    The API Gateway V1 control plane API is used to create, deploy,
    and manage REST APIs in Amazon API Gateway.
  version: '2015-07-09'
  contact:
    name: AWS Support
    url: https://aws.amazon.com/premiumsupport/
  termsOfService: https://aws.amazon.com/service-terms/
externalDocs:
  description: Amazon API Gateway V1 API Reference
  url: https://docs.aws.amazon.com/apigateway/latest/api/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: ApiKeys
  description: Manage API keys
- name: Deployments
  description: Manage API deployments
- name: Methods
  description: Manage HTTP methods on resources
- name: Resources
  description: Manage resources within a REST API
- name: RestApis
  description: Manage REST API definitions
- name: Stages
  description: Manage deployment stages
- name: UsagePlans
  description: Manage usage plans
security:
- sigv4: []
paths:
  /restapis:
    get:
      operationId: getRestApis
      summary: Amazon API Gateway List REST APIs
      description: >-
        Lists the RestApi resources for the caller's account.
      tags:
      - RestApis
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApis'
              examples:
                getRestApis200Example:
                  summary: Default getRestApis 200 response
                  x-microcks-default: true
                  value:
                    items:
                    - example-value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createRestApi
      summary: Amazon API Gateway Create a REST API
      description: >-
        Creates a new RestApi resource.
      tags:
      - RestApis
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRestApiRequest'
            examples:
              createRestApiRequestExample:
                summary: Default createRestApi request
                x-microcks-default: true
                value:
                  name: my-resource
                  description: A description of this resource.
                  version: '1.0'
                  endpointConfiguration:
                    types:
                    - EDGE
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApi'
              examples:
                createRestApi201Example:
                  summary: Default createRestApi 201 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    name: my-resource
                    description: A description of this resource.
                    createdDate: '2025-03-15T14:30:00Z'
                    version: '1.0'
                    endpointConfiguration:
                      types:
                      - EDGE
        '400':
          $ref: '#/components/responses/BadRequest'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /restapis/{restapi_id}:
    parameters:
    - $ref: '#/components/parameters/RestApiId'
    get:
      operationId: getRestApi
      summary: Amazon API Gateway Get a REST API
      description: Retrieves a single RestApi resource.
      tags:
      - RestApis
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApi'
              examples:
                getRestApi200Example:
                  summary: Default getRestApi 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    name: my-resource
                    description: A description of this resource.
                    createdDate: '2025-03-15T14:30:00Z'
                    version: '1.0'
                    endpointConfiguration:
                      types:
                      - EDGE
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteRestApi
      summary: Amazon API Gateway Delete a REST API
      description: Deletes the specified RestApi resource.
      tags:
      - RestApis
      responses:
        '202':
          description: Accepted
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /restapis/{restapi_id}/resources:
    parameters:
    - $ref: '#/components/parameters/RestApiId'
    get:
      operationId: getResources
      summary: Amazon API Gateway List Resources
      description: Lists the Resource resources for a RestApi.
      tags:
      - Resources
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resources'
              examples:
                getResources200Example:
                  summary: Default getResources 200 response
                  x-microcks-default: true
                  value:
                    items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}:
    parameters:
    - $ref: '#/components/parameters/RestApiId'
    - $ref: '#/components/parameters/ResourceId'
    - $ref: '#/components/parameters/HttpMethod'
    get:
      operationId: getMethod
      summary: Amazon API Gateway Get a Method
      description: Retrieves the Method resource for a given HTTP verb on a Resource.
      tags:
      - Methods
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Method'
              examples:
                getMethod200Example:
                  summary: Default getMethod 200 response
                  x-microcks-default: true
                  value:
                    httpMethod: example-value
                    authorizationType: example-value
                    apiKeyRequired: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: putMethod
      summary: Amazon API Gateway Put a Method
      description: Adds an HTTP method to a Resource.
      tags:
      - Methods
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutMethodRequest'
            examples:
              putMethodRequestExample:
                summary: Default putMethod request
                x-microcks-default: true
                value:
                  authorizationType: example-value
                  apiKeyRequired: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Method'
              examples:
                putMethod201Example:
                  summary: Default putMethod 201 response
                  x-microcks-default: true
                  value:
                    httpMethod: example-value
                    authorizationType: example-value
                    apiKeyRequired: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteMethod
      summary: Amazon API Gateway Delete a Method
      description: Deletes a Method resource.
      tags:
      - Methods
      responses:
        '202':
          description: Accepted
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /restapis/{restapi_id}/deployments:
    parameters:
    - $ref: '#/components/parameters/RestApiId'
    get:
      operationId: getDeployments
      summary: Amazon API Gateway List Deployments
      description: Lists deployments for a RestApi.
      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 a RestApi.
      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:
                    id: abc123
                    description: A description of this resource.
                    createdDate: '2025-03-15T14:30:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /restapis/{restapi_id}/stages:
    parameters:
    - $ref: '#/components/parameters/RestApiId'
    get:
      operationId: getStages
      summary: Amazon API Gateway List Stages
      description: Lists deployment stages for a RestApi.
      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:
                    item:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /apikeys:
    get:
      operationId: getApiKeys
      summary: Amazon API Gateway List API Keys
      description: Lists the ApiKeys for the caller's account.
      tags:
      - ApiKeys
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeys'
              examples:
                getApiKeys200Example:
                  summary: Default getApiKeys 200 response
                  x-microcks-default: true
                  value:
                    items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createApiKey
      summary: Amazon API Gateway Create an API Key
      description: Creates a new ApiKey resource.
      tags:
      - ApiKeys
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiKeyRequest'
            examples:
              createApiKeyRequestExample:
                summary: Default createApiKey request
                x-microcks-default: true
                value:
                  name: my-resource
                  description: A description of this resource.
                  enabled: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKey'
              examples:
                createApiKey201Example:
                  summary: Default createApiKey 201 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    value: example-value
                    name: my-resource
                    enabled: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /usageplans:
    get:
      operationId: getUsagePlans
      summary: Amazon API Gateway List Usage Plans
      description: Lists the usage plans for the caller's account.
      tags:
      - UsagePlans
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsagePlans'
              examples:
                getUsagePlans200Example:
                  summary: Default getUsagePlans 200 response
                  x-microcks-default: true
                  value:
                    items:
                    - example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createUsagePlan
      summary: Amazon API Gateway Create a Usage Plan
      description: Creates a usage plan with throttle and quota configuration.
      tags:
      - UsagePlans
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUsagePlanRequest'
            examples:
              createUsagePlanRequestExample:
                summary: Default createUsagePlan request
                x-microcks-default: true
                value:
                  name: my-resource
                  description: A description of this resource.
                  throttle:
                    burstLimit: 86
                    rateLimit: 27.41
                  quota:
                    limit: 68
                    period: DAY
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsagePlan'
              examples:
                createUsagePlan201Example:
                  summary: Default createUsagePlan 201 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    name: my-resource
                    throttle:
                      burstLimit: 7
                      rateLimit: 67.04
                    quota:
                      limit: 17
                      period: DAY
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4 signed request.
  parameters:
    RestApiId:
      name: restapi_id
      in: path
      required: true
      description: Identifier of the RestApi resource.
      schema:
        type: string
    ResourceId:
      name: resource_id
      in: path
      required: true
      description: Identifier of the Resource.
      schema:
        type: string
    HttpMethod:
      name: http_method
      in: path
      required: true
      description: HTTP verb of the Method.
      schema:
        type: string
        enum: [GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, ANY]
  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:
    RestApi:
      type: object
      properties:
        id:
          type: string
          description: Identifier of the RestApi.
          example: abc123
        name:
          type: string
          description: Name of the RestApi.
          example: my-resource
        description:
          type: string
          description: Description of the RestApi.
          example: A description of this resource.
        createdDate:
          type: string
          format: date-time
          description: Timestamp when the RestApi was created.
          example: '2025-03-15T14:30:00Z'
        version:
          type: string
          description: Version identifier of the API.
          example: '1.0'
        endpointConfiguration:
          $ref: '#/components/schemas/EndpointConfiguration'
    RestApis:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/RestApi'
          example:
          - example-value
    CreateRestApiRequest:
      type: object
      required: [name]
      properties:
        name:
          type: string
          description: Name of the new RestApi.
          example: my-resource
        description:
          type: string
          description: Optional description.
          example: A description of this resource.
        version:
          type: string
          description: Version identifier.
          example: '1.0'
        endpointConfiguration:
          $ref: '#/components/schemas/EndpointConfiguration'
    EndpointConfiguration:
      type: object
      properties:
        types:
          type: array
          description: List of endpoint types (EDGE, REGIONAL, PRIVATE).
          items:
            type: string
            enum: [EDGE, REGIONAL, PRIVATE]
          example:
          - EDGE
    Resource:
      type: object
      properties:
        id:
          type: string
          description: Resource identifier.
          example: abc123
        parentId:
          type: string
          description: Parent resource identifier.
          example: abc123
        pathPart:
          type: string
          description: Last path segment for this resource.
          example: example-value
        path:
          type: string
          description: Full path of the resource.
          example: example-value
    Resources:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Resource'
          example:
          - example-value
    Method:
      type: object
      properties:
        httpMethod:
          type: string
          description: HTTP method verb.
          example: example-value
        authorizationType:
          type: string
          description: Authorization type for invoking the method.
          example: example-value
        apiKeyRequired:
          type: boolean
          description: Whether the method requires an API key.
          example: true
    PutMethodRequest:
      type: object
      required: [authorizationType]
      properties:
        authorizationType:
          type: string
          description: Authorization type (NONE, AWS_IAM, CUSTOM, COGNITO_USER_POOLS).
          example: example-value
        apiKeyRequired:
          type: boolean
          description: Whether to require an API key.
          example: true
    Deployment:
      type: object
      properties:
        id:
          type: string
          description: Deployment identifier.
          example: abc123
        description:
          type: string
          description: Description of the deployment.
          example: A description of this resource.
        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
      required: [stageName]
      properties:
        stageName:
          type: string
          description: Name of the stage to deploy to.
          example: my-resource
        description:
          type: string
          description: Description of the deployment.
          example: A description of this resource.
    Stage:
      type: object
      properties:
        deploymentId:
          type: string
          description: Identifier of the deployment.
          example: abc123
        stageName:
          type: string
          description: Name of the stage.
          example: my-resource
        description:
          type: string
          description: Description of the stage.
          example: A description of this resource.
    Stages:
      type: object
      properties:
        item:
          type: array
          items:
            $ref: '#/components/schemas/Stage'
          example:
          - example-value
    ApiKey:
      type: object
      properties:
        id:
          type: string
          description: ApiKey identifier.
          example: abc123
        value:
          type: string
          description: Value of the ApiKey.
          example: example-value
        name:
          type: string
          description: Name of the ApiKey.
          example: my-resource
        enabled:
          type: boolean
          description: Whether the ApiKey is enabled.
          example: true
    ApiKeys:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApiKey'
          example:
          - example-value
    CreateApiKeyRequest:
      type: object
      properties:
        name:
          type: string
          description: Name of the ApiKey.
          example: my-resource
        description:
          type: string
          description: Description of the ApiKey.
          example: A description of this resource.
        enabled:
          type: boolean
          description: Whether the ApiKey should be enabled.
          example: true
    UsagePlan:
      type: object
      properties:
        id:
          type: string
          description: Usage plan identifier.
          example: abc123
        name:
          type: string
          description: Usage plan name.
          example: my-resource
        throttle:
          $ref: '#/components/schemas/ThrottleSettings'
        quota:
          $ref: '#/components/schemas/QuotaSettings'
    UsagePlans:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/UsagePlan'
          example:
          - example-value
    CreateUsagePlanRequest:
      type: object
      required: [name]
      properties:
        name:
          type: string
          description: Name of the usage plan.
          example: my-resource
        description:
          type: string
          description: Description of the usage plan.
          example: A description of this resource.
        throttle:
          $ref: '#/components/schemas/ThrottleSettings'
        quota:
          $ref: '#/components/schemas/QuotaSettings'
    ThrottleSettings:
      type: object
      properties:
        burstLimit:
          type: integer
          description: Burst limit for requests.
          example: 49
        rateLimit:
          type: number
          description: Steady-state rate limit (requests per second).
          example: 69.99
    QuotaSettings:
      type: object
      properties:
        limit:
          type: integer
          description: Maximum number of requests in the period.
          example: 24
        period:
          type: string
          description: Time period (DAY, WEEK, MONTH).
          enum: [DAY, WEEK, MONTH]
          example: DAY
    Error:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
          example: example-value
        code:
          type: string
          description: Error code.
          example: example-value