Apigee API Products API

Bundle APIs into products for consumption

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

apigee-api-products-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Apigee API Hub Analytics API Products API
  description: API for cataloging, organizing, and governing APIs across an organization. Enables API discovery, metadata management, dependency mapping, deployment tracking, and AI-powered specification boost.
  version: 1.0.0
  contact:
    name: Google Cloud Apigee
    url: https://cloud.google.com/apigee/docs/apihub/what-is-api-hub
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  termsOfService: https://cloud.google.com/terms
servers:
- url: https://apihub.googleapis.com/v1
  description: Apigee API Hub Production Server
security:
- oauth2: []
tags:
- name: API Products
  description: Bundle APIs into products for consumption
paths:
  /organizations/{organizationId}/apiproducts:
    get:
      operationId: listApiProducts
      summary: Apigee List API Products
      description: Lists all API product names for an organization. Filter the list using an attribute name and value query parameter.
      tags:
      - API Products
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - name: attributename
        in: query
        description: Name of the attribute used to filter the search.
        schema:
          type: string
      - name: attributevalue
        in: query
        description: Value of the attribute used to filter the search.
        schema:
          type: string
      - name: expand
        in: query
        description: Set to true to get expanded details about each API product.
        schema:
          type: boolean
      - name: count
        in: query
        description: Number of API products to return in the API call.
        schema:
          type: integer
          format: int64
      - name: startKey
        in: query
        description: Name of the API product from which to start displaying the list of API products.
        schema:
          type: string
      responses:
        '200':
          description: Successful response with list of API products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApiProductsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createApiProduct
      summary: Apigee Create an API Product
      description: Creates an API product in an organization. API products bundle API resources for consumption by developers. An API product can contain API proxies and quota settings.
      tags:
      - API Products
      parameters:
      - $ref: '#/components/parameters/organizationId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiProduct'
      responses:
        '200':
          description: Successful response with the created API product
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProduct'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
  /organizations/{organizationId}/apiproducts/{apiProductId}:
    get:
      operationId: getApiProduct
      summary: Apigee Get an API Product
      description: Gets the configuration for an API product. The API product name is required in the request URL.
      tags:
      - API Products
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/apiProductId'
      responses:
        '200':
          description: Successful response with API product details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProduct'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateApiProduct
      summary: Apigee Update an API Product
      description: Updates an existing API product. The full API product object must be included in the request body, even if only a subset of properties are being updated.
      tags:
      - API Products
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/apiProductId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiProduct'
      responses:
        '200':
          description: Successful response with updated API product
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProduct'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteApiProduct
      summary: Apigee Delete an API Product
      description: Deletes an API product from an organization. Deleting an API product causes apps that are associated with the product to be unable to access the API resources defined in that product.
      tags:
      - API Products
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/apiProductId'
      responses:
        '200':
          description: Successful response confirming deletion
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProduct'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Attribute:
      type: object
      description: A key-value pair used for custom attributes.
      properties:
        name:
          type: string
          description: Name of the attribute.
        value:
          type: string
          description: Value of the attribute.
    Error:
      type: object
      description: Error response from the Apigee API.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              format: int32
              description: HTTP error code.
            message:
              type: string
              description: Error message.
            status:
              type: string
              description: Error status string.
    OperationGroup:
      type: object
      description: Groups operations for access control on an API product.
      properties:
        operationConfigs:
          type: array
          description: List of operation configurations.
          items:
            $ref: '#/components/schemas/OperationConfig'
        operationConfigType:
          type: string
          description: Type of operation configuration.
    ListApiProductsResponse:
      type: object
      description: Response for listing API products.
      properties:
        apiProduct:
          type: array
          items:
            $ref: '#/components/schemas/ApiProduct'
    ApiProduct:
      type: object
      description: An API product bundles API resources for consumption.
      properties:
        name:
          type: string
          description: Internal name of the API product. Must be unique.
        displayName:
          type: string
          description: Name displayed in the developer portal.
        description:
          type: string
          description: Description of the API product.
        approvalType:
          type: string
          description: How API keys are approved for the product.
          enum:
          - manual
          - auto
        attributes:
          type: array
          description: Custom attributes for the API product (max 18).
          items:
            $ref: '#/components/schemas/Attribute'
        environments:
          type: array
          description: Environments where this product is available.
          items:
            type: string
        proxies:
          type: array
          description: API proxies included in this product.
          items:
            type: string
        scopes:
          type: array
          description: OAuth scopes associated with the product.
          items:
            type: string
        quota:
          type: string
          description: Number of requests permitted per quota interval.
        quotaInterval:
          type: string
          description: Time interval over which the quota is applied.
        quotaTimeUnit:
          type: string
          description: Time unit for the quota interval.
          enum:
          - minute
          - hour
          - day
          - month
        operationGroup:
          $ref: '#/components/schemas/OperationGroup'
        createdAt:
          type: string
          format: int64
          description: Output only. Unix time when the product was created.
          readOnly: true
        lastModifiedAt:
          type: string
          format: int64
          description: Output only. Unix time when the product was last modified.
          readOnly: true
    OperationConfig:
      type: object
      description: Configuration for a set of operations on an API proxy.
      properties:
        apiSource:
          type: string
          description: Name of the API proxy this config applies to.
        operations:
          type: array
          description: List of operations.
          items:
            type: object
            properties:
              resource:
                type: string
                description: REST resource path.
              methods:
                type: array
                description: HTTP methods allowed.
                items:
                  type: string
        quota:
          type: object
          description: Quota settings for this operation config.
          properties:
            limit:
              type: string
            interval:
              type: string
            timeUnit:
              type: string
        attributes:
          type: array
          description: Custom attributes for this config.
          items:
            $ref: '#/components/schemas/Attribute'
  parameters:
    organizationId:
      name: organizationId
      in: path
      description: Name of the Apigee organization.
      required: true
      schema:
        type: string
    apiProductId:
      name: apiProductId
      in: path
      description: Name of the API product.
      required: true
      schema:
        type: string
  responses:
    Conflict:
      description: Conflict. A resource with the same identifier already exists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized. Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request. The request body or parameters are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Not found. The specified resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden. The caller does not have permission to perform this operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      description: Google OAuth 2.0 authentication
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/cloud-platform: Full access to Google Cloud Platform resources
externalDocs:
  description: Apigee API Hub API Reference Documentation
  url: https://cloud.google.com/apigee/docs/reference/apis/apihub/rest