Amazon Service Catalog Products API

Product management operations

GitHub OpenAPI

Operations 7

POST /#AssociateProductWithPortfolio Associate Product With Portfolio #
POST /#CreateProduct Create Product #
POST /#DeleteProduct Delete Product #
POST /#DescribeProduct Describe Product #
POST /#DisassociateProductFromPortfolio Disassociate Product From Portfolio #
POST /#SearchProducts Search Products #
POST /#UpdateProduct Update Product #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-service-catalog:amazon-service-catalog-products-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

amazon-service-catalog-products-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AWS Service Catalog Products API
  version: '2015-12-10'
  description: Generated from AWS's published Smithy model for AWS Service Catalog. 7 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://servicecatalog.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /#AssociateProductWithPortfolio:
    post:
      operationId: AssociateProductWithPortfolio
      summary: Associate Product With Portfolio
      description: Associates the specified product with the specified portfolio. A delegated admin is authorized to invoke
        this command.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AssociateProductWithPortfolioOutput'
        '400':
          description: InvalidParametersException; LimitExceededException; ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParametersException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWS242ServiceCatalogService.AssociateProductWithPortfolio
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/AssociateProductWithPortfolioInput'
      tags:
      - Products
  /#CreateProduct:
    post:
      operationId: CreateProduct
      summary: Create Product
      description: Creates a product. A delegated admin is authorized to invoke this command. The user or role that performs
        this operation must have the cloudformation:GetTemplate IAM policy permission. This policy permission is required
        when using the ImportFromPhysicalId template source in the information data section.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/CreateProductOutput'
        '400':
          description: InvalidParametersException; LimitExceededException; TagOptionNotMigratedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParametersException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWS242ServiceCatalogService.CreateProduct
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/CreateProductInput'
      tags:
      - Products
  /#DeleteProduct:
    post:
      operationId: DeleteProduct
      summary: Delete Product
      description: Deletes the specified product. You cannot delete a product if it was shared with you or is associated with
        a portfolio. A delegated admin is authorized to invoke this command.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DeleteProductOutput'
        '400':
          description: InvalidParametersException; ResourceInUseException; ResourceNotFoundException; TagOptionNotMigratedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParametersException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWS242ServiceCatalogService.DeleteProduct
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DeleteProductInput'
      tags:
      - Products
  /#DescribeProduct:
    post:
      operationId: DescribeProduct
      summary: Describe Product
      description: Gets information about the specified product. Running this operation with administrator access results
        in a failure. DescribeProductAsAdmin should be used instead.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DescribeProductOutput'
        '400':
          description: InvalidParametersException; ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParametersException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWS242ServiceCatalogService.DescribeProduct
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DescribeProductInput'
      tags:
      - Products
  /#DisassociateProductFromPortfolio:
    post:
      operationId: DisassociateProductFromPortfolio
      summary: Disassociate Product From Portfolio
      description: Disassociates the specified product from the specified portfolio. A delegated admin is authorized to invoke
        this command.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DisassociateProductFromPortfolioOutput'
        '400':
          description: InvalidParametersException; ResourceInUseException; ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParametersException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWS242ServiceCatalogService.DisassociateProductFromPortfolio
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DisassociateProductFromPortfolioInput'
      tags:
      - Products
  /#SearchProducts:
    post:
      operationId: SearchProducts
      summary: Search Products
      description: Gets information about the products to which the caller has access.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/SearchProductsOutput'
        '400':
          description: InvalidParametersException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParametersException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWS242ServiceCatalogService.SearchProducts
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/SearchProductsInput'
      tags:
      - Products
  /#UpdateProduct:
    post:
      operationId: UpdateProduct
      summary: Update Product
      description: Updates the specified product.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/UpdateProductOutput'
        '400':
          description: InvalidParametersException; ResourceNotFoundException; TagOptionNotMigratedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidParametersException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWS242ServiceCatalogService.UpdateProduct
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/UpdateProductInput'
      tags:
      - Products
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
        request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: servicecatalog
  schemas:
    AssociateProductWithPortfolioInput:
      type: object
      properties:
        AcceptLanguage:
          type: string
          description: The language code. jp - Japanese zh - Chinese
        ProductId:
          type: string
          description: The product identifier.
        PortfolioId:
          type: string
          description: The portfolio identifier.
        SourcePortfolioId:
          type: string
          description: The identifier of the source portfolio.
      required:
      - ProductId
      - PortfolioId
    AssociateProductWithPortfolioOutput:
      type: object
      properties: {}
    BudgetDetail:
      type: object
      properties:
        BudgetName:
          type: string
          description: Name of the associated budget.
    CodeStarParameters:
      type: object
      properties:
        ConnectionArn:
          type: string
          description: The CodeStar ARN, which is the connection between Service Catalog and the external repository.
        Repository:
          type: string
          description: The specific repository where the product’s artifact-to-be-synced resides, formatted as "Account/Repo."
        Branch:
          type: string
          description: The specific branch where the artifact resides.
        ArtifactPath:
          type: string
          description: The absolute path wehre the artifact resides within the repo and branch, formatted as "folder/file.json."
      required:
      - ConnectionArn
      - Repository
      - Branch
      - ArtifactPath
    CreateProductInput:
      type: object
      properties:
        AcceptLanguage:
          type: string
          description: The language code. jp - Japanese zh - Chinese
        Name:
          type: string
          description: The name of the product.
        Owner:
          type: string
          description: The owner of the product.
        Description:
          type: string
          description: The description of the product.
        Distributor:
          type: string
          description: The distributor of the product.
        SupportDescription:
          type: string
          description: The support information about the product.
        SupportEmail:
          type: string
          description: The contact email for product support.
        SupportUrl:
          type: string
          description: The contact URL for product support. ^https?:\/\// / is the pattern used to validate SupportUrl.
        ProductType:
          type: string
          enum:
          - CLOUD_FORMATION_TEMPLATE
          - MARKETPLACE
          - TERRAFORM_OPEN_SOURCE
          - TERRAFORM_CLOUD
          - EXTERNAL
          description: The type of product.
        Tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: One or more tags.
        ProvisioningArtifactParameters:
          $ref: '#/components/schemas/ProvisioningArtifactProperties'
        IdempotencyToken:
          type: string
          description: A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the
            idempotency token, the same response is returned for each repeated request.
        SourceConnection:
          $ref: '#/components/schemas/SourceConnection'
      required:
      - Name
      - Owner
      - ProductType
      - IdempotencyToken
    CreateProductOutput:
      type: object
      properties:
        ProductViewDetail:
          $ref: '#/components/schemas/ProductViewDetail'
        ProvisioningArtifactDetail:
          $ref: '#/components/schemas/ProvisioningArtifactDetail'
        Tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: Information about the tags associated with the product.
    DeleteProductInput:
      type: object
      properties:
        AcceptLanguage:
          type: string
          description: The language code. jp - Japanese zh - Chinese
        Id:
          type: string
          description: The product identifier.
      required:
      - Id
    DeleteProductOutput:
      type: object
      properties: {}
    DescribeProductInput:
      type: object
      properties:
        AcceptLanguage:
          type: string
          description: The language code. jp - Japanese zh - Chinese
        Id:
          type: string
          description: The product identifier.
        Name:
          type: string
          description: The product name.
    DescribeProductOutput:
      type: object
      properties:
        ProductViewSummary:
          $ref: '#/components/schemas/ProductViewSummary'
        ProvisioningArtifacts:
          type: array
          items:
            $ref: '#/components/schemas/ProvisioningArtifact'
          description: Information about the provisioning artifacts for the specified product.
        Budgets:
          type: array
          items:
            $ref: '#/components/schemas/BudgetDetail'
          description: Information about the associated budgets.
        LaunchPaths:
          type: array
          items:
            $ref: '#/components/schemas/LaunchPath'
          description: Information about the associated launch paths.
    DisassociateProductFromPortfolioInput:
      type: object
      properties:
        AcceptLanguage:
          type: string
          description: The language code. jp - Japanese zh - Chinese
        ProductId:
          type: string
          description: The product identifier.
        PortfolioId:
          type: string
          description: The portfolio identifier.
      required:
      - ProductId
      - PortfolioId
    DisassociateProductFromPortfolioOutput:
      type: object
      properties: {}
    InvalidParametersException:
      type: object
      properties:
        Message:
          type: string
    LastSync:
      type: object
      properties:
        LastSyncTime:
          type: string
          format: date-time
          description: The time of the last attempted sync from the repository to the Service Catalog product.
        LastSyncStatus:
          type: string
          enum:
          - SUCCEEDED
          - FAILED
          description: The current status of the sync. Responses include SUCCEEDED or FAILED.
        LastSyncStatusMessage:
          type: string
          description: The sync's status message.
        LastSuccessfulSyncTime:
          type: string
          format: date-time
          description: The time of the latest successful sync from the source repo artifact to the Service Catalog product.
        LastSuccessfulSyncProvisioningArtifactId:
          type: string
          description: The ProvisioningArtifactID of the ProvisioningArtifact created from the latest successful sync.
    LaunchPath:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the launch path.
        Name:
          type: string
          description: The name of the launch path.
    ProductViewAggregationValue:
      type: object
      properties:
        Value:
          type: string
          description: The value of the product view aggregation.
        ApproximateCount:
          type: integer
          description: An approximate count of the products that match the value.
    ProductViewDetail:
      type: object
      properties:
        ProductViewSummary:
          $ref: '#/components/schemas/ProductViewSummary'
        Status:
          type: string
          enum:
          - AVAILABLE
          - CREATING
          - FAILED
          description: The status of the product. AVAILABLE - The product is ready for use. CREATING - Product creation has
            started; the product is not ready for use. FAILED - An action failed.
        ProductARN:
          type: string
          description: The ARN of the product.
        CreatedTime:
          type: string
          format: date-time
          description: The UTC time stamp of the creation time.
        SourceConnection:
          $ref: '#/components/schemas/SourceConnectionDetail'
    ProductViewSummary:
      type: object
      properties:
        Id:
          type: string
          description: The product view identifier.
        ProductId:
          type: string
          description: The product identifier.
        Name:
          type: string
          description: The name of the product.
        Owner:
          type: string
          description: The owner of the product. Contact the product administrator for the significance of this value.
        ShortDescription:
          type: string
          description: Short description of the product.
        Type:
          type: string
          enum:
          - CLOUD_FORMATION_TEMPLATE
          - MARKETPLACE
          - TERRAFORM_OPEN_SOURCE
          - TERRAFORM_CLOUD
          - EXTERNAL
          description: The product type. Contact the product administrator for the significance of this value. If this value
            is MARKETPLACE, the product was created by Amazon Web Services Marketplace.
        Distributor:
          type: string
          description: The distributor of the product. Contact the product administrator for the significance of this value.
        HasDefaultPath:
          type: boolean
          description: Indicates whether the product has a default path. If the product does not have a default path, call
            ListLaunchPaths to disambiguate between paths. Otherwise, ListLaunchPaths is not required, and the output of ProductViewSummary
            can be used directly with DescribeProvisioningParameters.
        SupportEmail:
          type: string
          description: The email contact information to obtain support for this Product.
        SupportDescription:
          type: string
          description: The description of the support for this Product.
        SupportUrl:
          type: string
          description: The URL information to obtain support for this Product.
    ProvisioningArtifact:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the provisioning artifact.
        Name:
          type: string
          description: The name of the provisioning artifact.
        Description:
          type: string
          description: The description of the provisioning artifact.
        CreatedTime:
          type: string
          format: date-time
          description: The UTC time stamp of the creation time.
        Guidance:
          type: string
          enum:
          - DEFAULT
          - DEPRECATED
          description: Information set by the administrator to provide guidance to end users about which provisioning artifacts
            to use.
    ProvisioningArtifactDetail:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the provisioning artifact.
        Name:
          type: string
          description: The name of the provisioning artifact.
        Description:
          type: string
          description: The description of the provisioning artifact.
        Type:
          type: string
          enum:
          - CLOUD_FORMATION_TEMPLATE
          - MARKETPLACE_AMI
          - MARKETPLACE_CAR
          - TERRAFORM_OPEN_SOURCE
          - TERRAFORM_CLOUD
          - EXTERNAL
          description: The type of provisioning artifact. CLOUD_FORMATION_TEMPLATE - CloudFormation template TERRAFORM_OPEN_SOURCE
            - Terraform Open Source configuration file TERRAFORM_CLOUD - Terraform Cloud configuration file EXTERNAL - External
            configuration file
        CreatedTime:
          type: string
          format: date-time
          description: The UTC time stamp of the creation time.
        Active:
          type: boolean
          description: Indicates whether the product version is active.
        Guidance:
          type: string
          enum:
          - DEFAULT
          - DEPRECATED
          description: Information set by the administrator to provide guidance to end users about which provisioning artifacts
            to use.
        SourceRevision:
          type: string
          description: Specifies the revision of the external artifact that was used to automatically sync the Service Catalog
            product and create the provisioning artifact. Service Catalog includes this response parameter as a high level
            field to the existing ProvisioningArtifactDetail type, which is returned as part of the response for CreateProduct,
            UpdateProduct, DescribeProductAsAdmin, DescribeProvisioningArtifact, ListProvisioningArtifact, and UpdateProvisioningArticat
            APIs. This field only exists for Repo-Synced products.
    ProvisioningArtifactProperties:
      type: object
      properties:
        Name:
          type: string
          description: The name of the provisioning artifact (for example, v1 v2beta). No spaces are allowed.
        Description:
          type: string
          description: The description of the provisioning artifact, including how it differs from the previous provisioning
            artifact.
        Info:
          type: object
          additionalProperties:
            type: string
          description: 'Specify the template source with one of the following options, but not both. Keys accepted: [ LoadTemplateFromURL,
            ImportFromPhysicalId ] The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format. Specify the
            URL in JSON format as follows: "LoadTemplateFromURL": "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."
            ImportFromPhysicalId: The physical id of the resource that contains the template. Currently only supports CloudFormation
            stack arn. Specify the physical id in JSON format as follows: ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId'
        Type:
          type: string
          enum:
          - CLOUD_FORMATION_TEMPLATE
          - MARKETPLACE_AMI
          - MARKETPLACE_CAR
          - TERRAFORM_OPEN_SOURCE
          - TERRAFORM_CLOUD
          - EXTERNAL
          description: The type of provisioning artifact. CLOUD_FORMATION_TEMPLATE - CloudFormation template TERRAFORM_OPEN_SOURCE
            - Terraform Open Source configuration file TERRAFORM_CLOUD - Terraform Cloud configuration file EXTERNAL - External
            configuration file
        DisableTemplateValidation:
          type: boolean
          description: If set to true, Service Catalog stops validating the specified provisioning artifact even if it is
            invalid. Service Catalog does not support template validation for the TERRAFORM_OS product type.
    SearchProductsInput:
      type: object
      properties:
        AcceptLanguage:
          type: string
          description: The language code. jp - Japanese zh - Chinese
        Filters:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: The search filters. If no search filters are specified, the output includes all products to which the
            caller has access.
        PageSize:
          type: integer
          description: The maximum number of items to return with this call.
        SortBy:
          type: string
          enum:
          - Title
          - VersionCount
          - CreationDate
          description: The sort field. If no value is specified, the results are not sorted.
        SortOrder:
          type: string
          enum:
          - ASCENDING
          - DESCENDING
          description: The sort order. If no value is specified, the results are not sorted.
        PageToken:
          type: string
          description: The page token for the next set of results. To retrieve the first set of results, use null.
    SearchProductsOutput:
      type: object
      properties:
        ProductViewSummaries:
          type: array
          items:
            $ref: '#/components/schemas/ProductViewSummary'
          description: Information about the product views.
        ProductViewAggregations:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ProductViewAggregationValue'
          description: The product view aggregations.
        NextPageToken:
          type: string
          description: The page token to use to retrieve the next set of results. If there are no additional results, this
            value is null.
    SourceConnection:
      type: object
      properties:
        Type:
          type: string
          enum:
          - CODESTAR
          description: The only supported SourceConnection type is Codestar.
        ConnectionParameters:
          $ref: '#/components/schemas/SourceConnectionParameters'
      required:
      - ConnectionParameters
    SourceConnectionDetail:
      type: object
      properties:
        Type:
          type: string
          enum:
          - CODESTAR
          description: The only supported SourceConnection type is Codestar.
        ConnectionParameters:
          $ref: '#/components/schemas/SourceConnectionParameters'
        LastSync:
          $ref: '#/components/schemas/LastSync'
    SourceConnectionParameters:
      type: object
      properties:
        CodeStar:
          $ref: '#/components/schemas/CodeStarParameters'
    Tag:
      type: object
      properties:
        Key:
          type: string
          description: The tag key.
        Value:
          type: string
          description: The value for this key.
      required:
      - Key
      - Value
    UpdateProductInput:
      type: object
      properties:
        AcceptLanguage:
          type: string
          description: The language code. jp - Japanese zh - Chinese
        Id:
          type: string
          description: The product identifier.
        Name:
          type: string
          description: The updated product name.
        Owner:
          type: string
          description: The updated owner of the product.
        Description:
          type: string
          description: The updated description of the product.
        Distributor:
          type: string
          description: The updated distributor of the product.
        SupportDescription:
          type: string
          description: The updated support description for the product.
        SupportEmail:
          type: string
          description: The updated support email for the product.
        SupportUrl:
          type: string
          description: The updated support URL for the product.
        AddTags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: The tags to add to the product.
        RemoveTags:
          type: array
          items:
            type: string
          description: The tags to remove from the product.
        SourceConnection:
          $ref: '#/components/schemas/SourceConnection'
      required:
      - Id
    UpdateProductOutput:
      type: object
      properties:
        ProductViewDetail:
          $ref: '#/components/schemas/ProductViewDetail'
        Tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: Information about the tags associated with the product.
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/service-catalog/service/2015-12-10/service-catalog-2015-12-10.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)