Apigee API Proxies API

Create, deploy, and manage API proxy definitions

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

apigee-api-proxies-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Apigee API Hub Analytics API Proxies 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 Proxies
  description: Create, deploy, and manage API proxy definitions
paths:
  /organizations/{organizationId}/apis:
    get:
      operationId: listApiProxies
      summary: Apigee List API Proxies
      description: Lists the names of all API proxies in an organization. The list includes information about the API proxy revisions available.
      tags:
      - API Proxies
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      responses:
        '200':
          description: Successful response with list of API proxies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApiProxiesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createApiProxy
      summary: Apigee Create an API Proxy
      description: Creates an API proxy. The API proxy created will not be accessible at runtime until it is deployed to an environment. Provide the proxy configuration as an API proxy bundle or as an inline configuration.
      tags:
      - API Proxies
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - name: name
        in: query
        description: Name of the API proxy. Must be unique within the organization.
        required: true
        schema:
          type: string
      - name: action
        in: query
        description: Action to perform when importing an API proxy configuration bundle. Set to "import" when uploading a ZIP bundle.
        schema:
          type: string
          enum:
          - import
      requestBody:
        description: API proxy bundle or configuration
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiProxy'
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Successful response with the created API proxy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProxyRevision'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
  /organizations/{organizationId}/apis/{apiId}:
    get:
      operationId: getApiProxy
      summary: Apigee Get an API Proxy
      description: Gets an API proxy including a list of existing revisions, the proxy metadata, and the last modified date.
      tags:
      - API Proxies
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/apiId'
      responses:
        '200':
          description: Successful response with API proxy details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProxy'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteApiProxy
      summary: Apigee Delete an API Proxy
      description: Deletes an API proxy and all associated endpoints, policies, resources, and revisions. The proxy must be undeployed from all environments before it can be deleted.
      tags:
      - API Proxies
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/apiId'
      responses:
        '200':
          description: Successful response confirming deletion
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProxy'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: patchApiProxy
      summary: Apigee Update an API Proxy
      description: Updates an existing API proxy metadata such as labels. Does not update the proxy bundle or revision content.
      tags:
      - API Proxies
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/apiId'
      - name: updateMask
        in: query
        description: 'Required. List of fields to update. Use comma-separated field names from the resource. Example: "labels".'
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiProxy'
      responses:
        '200':
          description: Successful response with updated API proxy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiProxy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    organizationId:
      name: organizationId
      in: path
      description: Name of the Apigee organization.
      required: true
      schema:
        type: string
    pageToken:
      name: pageToken
      in: query
      description: Page token returned from a previous list request.
      schema:
        type: string
    apiId:
      name: apiId
      in: path
      description: Name of the API proxy.
      required: true
      schema:
        type: string
    pageSize:
      name: pageSize
      in: query
      description: Maximum number of items to return per page.
      schema:
        type: integer
        format: int32
  schemas:
    ListApiProxiesResponse:
      type: object
      description: Response for listing API proxies.
      properties:
        proxies:
          type: array
          items:
            $ref: '#/components/schemas/ApiProxy'
    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.
    EntityMetadata:
      type: object
      description: Metadata common to Apigee entities.
      properties:
        createdAt:
          type: string
          format: int64
          description: Time the entity was created in milliseconds since epoch.
        lastModifiedAt:
          type: string
          format: int64
          description: Time the entity was last modified in milliseconds since epoch.
        subType:
          type: string
          description: Subtype of the entity.
    ApiProxyRevision:
      type: object
      description: API proxy revision metadata and configuration.
      properties:
        name:
          type: string
          description: Output only. Resource name of the API proxy revision.
          readOnly: true
        revision:
          type: string
          description: Output only. Revision number of the proxy.
          readOnly: true
        displayName:
          type: string
          description: Human-readable name of the API proxy.
        description:
          type: string
          description: Description of the API proxy revision.
        createdAt:
          type: string
          format: date-time
          description: Output only. Time the revision was created.
          readOnly: true
        lastModifiedAt:
          type: string
          format: date-time
          description: Output only. Time the revision was last modified.
          readOnly: true
        basepaths:
          type: array
          description: Base path(s) for the API proxy.
          items:
            type: string
        policies:
          type: array
          description: List of policy names included in this revision.
          items:
            type: string
        resources:
          type: array
          description: List of resource files included in this revision.
          items:
            type: string
        proxies:
          type: array
          description: List of proxy endpoint names in this revision.
          items:
            type: string
        targets:
          type: array
          description: List of target endpoint names in this revision.
          items:
            type: string
        sharedFlows:
          type: array
          description: List of shared flows referenced by this revision.
          items:
            type: string
        type:
          type: string
          description: The type of the revision (e.g., Application).
    ApiProxy:
      type: object
      description: Metadata about an API proxy.
      properties:
        name:
          type: string
          description: Output only. Name of the API proxy.
          readOnly: true
        revision:
          type: array
          description: Output only. List of revisions defined for the API proxy.
          readOnly: true
          items:
            type: string
        latestRevisionId:
          type: string
          description: Output only. The ID of the most recently created revision.
          readOnly: true
        metaData:
          $ref: '#/components/schemas/EntityMetadata'
        labels:
          type: object
          description: User-defined labels for organizing API proxies.
          additionalProperties:
            type: string
        readOnly:
          type: boolean
          description: Output only. Whether this proxy is read-only.
          readOnly: true
        apiProxyType:
          type: string
          description: Type of the API proxy.
          enum:
          - API_PROXY_TYPE_UNSPECIFIED
          - PROGRAMMABLE
          - CONFIGURABLE
  responses:
    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'
    Conflict:
      description: Conflict. A resource with the same identifier already exists.
      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