AWS Serverless Application Repository API

The AWS Serverless Application Repository API provides programmatic access to create and manage serverless applications, application versions, and deployment configurations for publishing and sharing SAM applications.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

amazon-serverless-application-repository-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon Serverless Application Repository API
  description: >-
    The AWS Serverless Application Repository enables teams, organizations, and
    individual developers to find, deploy, and publish serverless applications.
    It provides programmatic access to create, manage, and deploy SAM-based
    serverless applications and manage their versions and policies.
  version: 2017-09-08
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/serverless/serverlessrepo/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  x-generated-from: documentation

servers:
  - url: https://serverlessrepo.{region}.amazonaws.com
    variables:
      region:
        default: us-east-1
        description: The AWS region.

tags:
  - name: Applications
    description: Serverless application management
  - name: Versions
    description: Application version management
  - name: Policies
    description: Application policy management
  - name: Changesets
    description: CloudFormation changeset management

paths:

  /applications:
    get:
      operationId: ListApplications
      summary: Amazon Serverless Application Repository List Applications
      description: >-
        Lists applications owned by the requester.
      tags:
        - Applications
      parameters:
        - name: maxItems
          in: query
          description: The total number of items to return.
          schema:
            type: integer
        - name: nextToken
          in: query
          description: A token to specify where to start paginating.
          schema:
            type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  applications:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApplicationSummary'
                  nextToken:
                    type: string
              examples:
                ListApplications200Example:
                  summary: Default ListApplications 200 response
                  x-microcks-default: true
                  value:
                    applications:
                      - applicationId: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
                        name: "MyApp"
                        author: "[email protected]"
                        description: "A sample serverless application"
                    nextToken: null
        '400':
          description: Bad request.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

    post:
      operationId: CreateApplication
      summary: Amazon Serverless Application Repository Create Application
      description: >-
        Creates an application, optionally including an AWS SAM file to create the first application version in the same call.
      tags:
        - Applications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
      responses:
        '201':
          description: Application created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
              examples:
                CreateApplication201Example:
                  summary: Default CreateApplication 201 response
                  x-microcks-default: true
                  value:
                    applicationId: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
                    name: "MyApp"
                    author: "[email protected]"
                    description: "A sample serverless application"
        '400':
          description: Bad request.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /applications/{applicationId}:
    get:
      operationId: GetApplication
      summary: Amazon Serverless Application Repository Get Application
      description: >-
        Gets the specified application.
      tags:
        - Applications
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
        - name: semanticVersion
          in: query
          description: The semantic version of the application to get.
          schema:
            type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
              examples:
                GetApplication200Example:
                  summary: Default GetApplication 200 response
                  x-microcks-default: true
                  value:
                    applicationId: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
                    name: "MyApp"
                    author: "[email protected]"
                    description: "A sample serverless application"
        '404':
          description: Application not found.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

    patch:
      operationId: UpdateApplication
      summary: Amazon Serverless Application Repository Update Application
      description: >-
        Updates the specified application.
      tags:
        - Applications
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                author:
                  type: string
                  description: The name of the author publishing the app.
                description:
                  type: string
                  description: The description of the application.
                homePageUrl:
                  type: string
                  description: A URL with more information about the application.
                labels:
                  type: array
                  items:
                    type: string
                  description: Labels to improve discovery of apps in search results.
                readmeBody:
                  type: string
                  description: A text readme file that contains a more detailed description of the application.
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
              examples:
                UpdateApplication200Example:
                  summary: Default UpdateApplication 200 response
                  x-microcks-default: true
                  value:
                    applicationId: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
                    name: "MyApp"
                    description: "Updated description"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

    delete:
      operationId: DeleteApplication
      summary: Amazon Serverless Application Repository Delete Application
      description: >-
        Deletes the specified application.
      tags:
        - Applications
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
      responses:
        '204':
          description: Application deleted successfully.
        '404':
          description: Application not found.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /applications/{applicationId}/versions:
    get:
      operationId: ListApplicationVersions
      summary: Amazon Serverless Application Repository List Application Versions
      description: >-
        Lists versions for the specified application.
      tags:
        - Versions
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
        - name: maxItems
          in: query
          description: The total number of items to return.
          schema:
            type: integer
        - name: nextToken
          in: query
          description: A token to specify where to start paginating.
          schema:
            type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  versions:
                    type: array
                    items:
                      $ref: '#/components/schemas/VersionSummary'
                  nextToken:
                    type: string
              examples:
                ListApplicationVersions200Example:
                  summary: Default ListApplicationVersions 200 response
                  x-microcks-default: true
                  value:
                    versions:
                      - applicationId: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
                        semanticVersion: "1.0.0"
                        creationTime: "2025-03-15T14:30:00Z"
                    nextToken: null
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

    post:
      operationId: CreateApplicationVersion
      summary: Amazon Serverless Application Repository Create Application Version
      description: >-
        Creates an application version.
      tags:
        - Versions
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - semanticVersion
              properties:
                semanticVersion:
                  type: string
                  description: The semantic version of the new version.
                sourceCodeArchiveUrl:
                  type: string
                  description: A link to the S3 object that contains the ZIP archive of the source code for this version.
                sourceCodeUrl:
                  type: string
                  description: A link to a public repository for the source code of your application.
                templateBody:
                  type: string
                  description: The raw packaged AWS SAM template of your application.
      responses:
        '201':
          description: Application version created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionSummary'
              examples:
                CreateApplicationVersion201Example:
                  summary: Default CreateApplicationVersion 201 response
                  x-microcks-default: true
                  value:
                    applicationId: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
                    semanticVersion: "1.1.0"
                    creationTime: "2025-03-15T14:30:00Z"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /applications/{applicationId}/changesets:
    post:
      operationId: CreateCloudFormationChangeSet
      summary: Amazon Serverless Application Repository Create CloudFormation Change Set
      description: >-
        Creates an AWS CloudFormation change set for the given application.
      tags:
        - Changesets
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - stackName
              properties:
                capabilities:
                  type: array
                  items:
                    type: string
                  description: A list of values that you must specify before you can deploy certain applications.
                changeSetName:
                  type: string
                  description: The name of the change set.
                semanticVersion:
                  type: string
                  description: The semantic version of the application.
                stackName:
                  type: string
                  description: The name or the unique ID of the stack for which you are creating a change set.
      responses:
        '201':
          description: CloudFormation change set created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  applicationId:
                    type: string
                  changeSetId:
                    type: string
                  semanticVersion:
                    type: string
                  stackId:
                    type: string
              examples:
                CreateCloudFormationChangeSet201Example:
                  summary: Default CreateCloudFormationChangeSet 201 response
                  x-microcks-default: true
                  value:
                    applicationId: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
                    changeSetId: "arn:aws:cloudformation:us-east-1:123456789012:changeSet/my-change-set/abc123"
                    semanticVersion: "1.0.0"
                    stackId: "arn:aws:cloudformation:us-east-1:123456789012:stack/my-stack/abc123"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /applications/{applicationId}/policy:
    get:
      operationId: GetApplicationPolicy
      summary: Amazon Serverless Application Repository Get Application Policy
      description: >-
        Retrieves the policy for the application.
      tags:
        - Policies
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statements:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApplicationPolicyStatement'
              examples:
                GetApplicationPolicy200Example:
                  summary: Default GetApplicationPolicy 200 response
                  x-microcks-default: true
                  value:
                    statements:
                      - statementId: "policy-stmt-001"
                        principals: ["*"]
                        actions: ["serverlessrepo:Deploy"]
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

    put:
      operationId: PutApplicationPolicy
      summary: Amazon Serverless Application Repository Put Application Policy
      description: >-
        Sets the permission policy for an application.
      tags:
        - Policies
      parameters:
        - name: applicationId
          in: path
          required: true
          description: The Amazon Resource Name (ARN) of the application.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - statements
              properties:
                statements:
                  type: array
                  items:
                    $ref: '#/components/schemas/ApplicationPolicyStatement'
      responses:
        '200':
          description: Policy updated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statements:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApplicationPolicyStatement'
              examples:
                PutApplicationPolicy200Example:
                  summary: Default PutApplicationPolicy 200 response
                  x-microcks-default: true
                  value:
                    statements:
                      - statementId: "policy-stmt-001"
                        principals: ["*"]
                        actions: ["serverlessrepo:Deploy"]
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

components:
  schemas:
    Application:
      type: object
      description: Information about the application.
      properties:
        applicationId:
          type: string
          description: The application Amazon Resource Name (ARN).
          example: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
        name:
          type: string
          description: The name of the application.
          example: "MyApp"
        author:
          type: string
          description: The name of the author publishing the app.
          example: "[email protected]"
        description:
          type: string
          description: The description of the application.
          example: "A sample serverless application"
        creationTime:
          type: string
          format: date-time
          description: The date and time this resource was created.
        homePageUrl:
          type: string
          description: A URL with more information about the application.
        labels:
          type: array
          items:
            type: string
          description: Labels to improve discovery of apps in search results.
        licenseUrl:
          type: string
          description: A link to a license file of the app.
        readmeUrl:
          type: string
          description: A link to the readme file in Markdown language.
        spdxLicenseId:
          type: string
          description: A valid identifier from https://spdx.org/licenses/.
        version:
          $ref: '#/components/schemas/VersionSummary'

    ApplicationSummary:
      type: object
      description: Summary of details about the application.
      properties:
        applicationId:
          type: string
          description: The application ARN.
          example: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
        name:
          type: string
          description: The name of the application.
          example: "MyApp"
        author:
          type: string
          description: The name of the author.
          example: "[email protected]"
        description:
          type: string
          description: The description of the application.
        creationTime:
          type: string
          format: date-time
          description: The date and time when created.
        labels:
          type: array
          items:
            type: string
          description: Labels for discovery.

    VersionSummary:
      type: object
      description: Summary of details about an application version.
      properties:
        applicationId:
          type: string
          description: The application ARN.
          example: "arn:aws:serverlessrepo:us-east-1:123456789012:applications/MyApp"
        semanticVersion:
          type: string
          description: The semantic version of the application.
          example: "1.0.0"
        creationTime:
          type: string
          format: date-time
          description: The date and time when this version was created.
        sourceCodeUrl:
          type: string
          description: A link to a public repository for the source code.

    ApplicationPolicyStatement:
      type: object
      description: Policy statement for an application.
      properties:
        statementId:
          type: string
          description: A unique ID for the statement.
          example: "policy-stmt-001"
        principals:
          type: array
          items:
            type: string
          description: An array of AWS account IDs or * for public access.
        actions:
          type: array
          items:
            type: string
          description: For each action, specify the permission to be granted.

    CreateApplicationRequest:
      type: object
      required:
        - author
        - description
        - name
      properties:
        author:
          type: string
          description: The name of the author publishing the app.
        description:
          type: string
          description: The description of the application.
        homePageUrl:
          type: string
          description: A URL with more information about the application.
        labels:
          type: array
          items:
            type: string
          description: Labels to improve discovery.
        licenseBody:
          type: string
          description: A text file that contains the license of the app.
        name:
          type: string
          description: The name of the application.
        readmeBody:
          type: string
          description: A text readme file for the application.
        spdxLicenseId:
          type: string
          description: A valid identifier from https://spdx.org/licenses/.
        templateBody:
          type: string
          description: The local packaged AWS SAM template file of your application.

  securitySchemes:
    AWSSignatureV4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4 authentication

security:
  - AWSSignatureV4: []