---
title: "List Control Planes"
url: "https://seriousmonkeybusiness.shermett.me/apis/konnect-control-planes-2/versions/cdbfd644-3e35-4ab1-acfb-99cb9b2d34ed/operations/list-control-planes"
---

> Full API specification: https://seriousmonkeybusiness.shermett.me/apis/konnect-control-planes-2/versions/cdbfd644-3e35-4ab1-acfb-99cb9b2d34ed.md

# List Control Planes

`GET` `/control-planes`

Operation ID: `list-control-planes`

Returns an array of control plane objects containing information about the Konnect Control Planes.

## Query parameters

- `page[size]` (integer, optional) - The maximum number of items to include per page. The last page of a collection may include fewer items.
- `page[number]` (integer, optional) - Determines which page of the entities to retrieve.
- `filter` (object, optional) - Filters a collection of control-planes.
- `labels` (string, optional) - Filter control planes in the response by associated labels.
- `sort` (string, optional) - Sorts a collection of control-planes. Supported sort attributes are: - created_at

## Responses

- `200` - A paginated list response for a collection of control planes.
- `400` - Bad Request
- `401` - Unauthenticated
- `403` - Permission denied
- `503` - Service Unavailable

## OpenAPI definition

```yaml
openapi: 3.0.0
info:
  title: Konnect Control Planes
  version: 2.0.0
servers:
  - url: https://us.api.konghq.com/v2
    description: United-States Production region
  - url: https://eu.api.konghq.com/v2
    description: Europe Production region
  - url: https://au.api.konghq.com/v2
    description: Australia Production region
  - url: https://me.api.konghq.com/v2
    description: Middle-East Production region
paths:
  /control-planes:
    parameters: []
    get:
      operationId: list-control-planes
      summary: List Control Planes
      description: Returns an array of control plane objects containing information
        about the Konnect Control Planes.
      parameters:
        - $ref: "#/components/parameters/PageSize"
        - $ref: "#/components/parameters/PageNumber"
        - $ref: "#/components/parameters/ControlPlaneFilter"
        - $ref: "#/components/parameters/FilterByLabels"
        - $ref: "#/components/parameters/ControlPlaneSort"
      responses:
        "200":
          $ref: "#/components/responses/ListControlPlanesResponse"
        "400":
          $ref: "#/components/responses/ControlPlanesBadRequest"
        "401":
          $ref: "#/components/responses/ControlPlaneUnauthenticated"
        "403":
          $ref: "#/components/responses/ControlPlanePermissionDenied"
        "503":
          $ref: "#/components/responses/ServiceUnavailable"
      tags:
        - Control Planes
security:
  - personalAccessToken: []
  - systemAccountAccessToken: []
components:
  parameters:
    PageSize:
      name: page[size]
      description: The maximum number of items to include per page. The last page of a
        collection may include fewer items.
      required: false
      in: query
      allowEmptyValue: true
      schema:
        type: integer
        example: 10
    PageNumber:
      name: page[number]
      description: Determines which page of the entities to retrieve.
      required: false
      in: query
      allowEmptyValue: true
      schema:
        type: integer
        example: 1
    ControlPlaneFilter:
      name: filter
      description: Filters a collection of control-planes.
      required: false
      in: query
      schema:
        $ref: "#/components/schemas/ControlPlaneFilterParameters"
      style: deepObject
    FilterByLabels:
      name: labels
      description: Filter control planes in the response by associated labels.
      in: query
      required: false
      schema:
        type: string
        example: key:value,existCheck
    ControlPlaneSort:
      name: sort
      description: |
        Sorts a collection of control-planes. Supported sort attributes are:
          - created_at
      required: false
      in: query
      schema:
        $ref: "#/components/schemas/SortQuery"
  responses:
    ListControlPlanesResponse:
      description: A paginated list response for a collection of control planes.
      content:
        application/json:
          schema:
            type: object
            properties:
              meta:
                $ref: "#/components/schemas/PaginatedMeta"
              data:
                type: array
                items:
                  $ref: "#/components/schemas/ControlPlane"
            additionalProperties: false
            required:
              - meta
              - data
            title: ListControlPlanesResponse
    ControlPlanesBadRequest:
      description: Bad Request
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/BadRequestError"
          examples:
            Request Format Invalid:
              $ref: "#/components/examples/400RequestFormatInvalidExample"
            Cannot Be Blank:
              $ref: "#/components/examples/400CannotBeBlankExample"
            Invalid ID Format:
              $ref: "#/components/examples/400InvalidIDFormatExample"
            Usage Limits Reached:
              $ref: "#/components/examples/400UsageLimitsReachedExample"
            Unknown Property:
              $ref: "#/components/examples/400UnknownPropertyExample"
    ControlPlaneUnauthenticated:
      description: Unauthenticated
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/UnauthorizedError"
          examples:
            Unauthorized:
              $ref: "#/components/examples/401UnauthenticatedExample"
    ControlPlanePermissionDenied:
      description: Permission denied
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/ForbiddenError"
          examples:
            Permission Denied:
              $ref: "#/components/examples/403PermissionDeniedExample"
    ServiceUnavailable:
      description: Service Unavailable
      content:
        application/problem+json:
          schema:
            description: Error response for temporary service unavailability.
            type: object
            properties:
              status:
                description: The HTTP status code.
                type: integer
                example: 503
                enum:
                  - 503
              title:
                description: The error response code.
                type: string
                example: Service Unavailable
              instance:
                description: The Konnect traceback code
                type: string
                example: konnect:trace:2287285207635123011
              detail:
                description: Details about the error.
                type: string
                example: Could not retrieve permissions to check resource accessibility.
            required:
              - status
              - title
              - instance
            title: ServiceUnavailableError
          examples:
            Service Unavailable:
              $ref: "#/components/examples/503PermissionReadFailureExample"
  schemas:
    ControlPlaneFilterParameters:
      type: object
      properties:
        id:
          oneOf:
            - $ref: "#/components/schemas/StringFieldEqualsFilter"
            - $ref: "#/components/schemas/StringFieldOEQFilter"
        name:
          oneOf:
            - $ref: "#/components/schemas/StringFieldEqualsFilter"
            - $ref: "#/components/schemas/StringFieldContainsFilter"
            - $ref: "#/components/schemas/StringFieldNEQFilter"
        cluster_type:
          oneOf:
            - $ref: "#/components/schemas/StringFieldEqualsFilter"
            - $ref: "#/components/schemas/StringFieldNEQFilter"
        cloud_gateway:
          $ref: "#/components/schemas/BooleanFieldFilter"
      additionalProperties: false
      title: ControlPlaneFilterParameters
    SortQuery:
      description: >
        The `asc` suffix is optional as the default sort order is ascending.

        The `desc` suffix is used to specify a descending order.

        Multiple sort attributes may be provided via a comma separated list.

        JSONPath notation may be used to specify a sub-attribute (eg: 'foo.bar
        desc').
      type: string
      example: name,created_at desc
      title: SortQuery
    PaginatedMeta:
      description: returns the pagination information
      type: object
      properties:
        page:
          $ref: "#/components/schemas/PageMeta"
      required:
        - page
      title: PaginatedMeta
    ControlPlane:
      description: The control plane object contains information about a Kong control plane.
      type: object
      properties:
        id:
          description: The control plane ID.
          type: string
          format: uuid
          example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7
          readOnly: true
        name:
          description: The name of the control plane.
          type: string
          example: Test Control Plane
        description:
          description: The description of the control plane in Konnect.
          type: string
          example: A test control plane for exploration.
        labels:
          $ref: "#/components/schemas/Labels"
        config:
          description: CP configuration object for related access endpoints.
          type: object
          additionalProperties: false
          properties:
            control_plane_endpoint:
              description: Control Plane Endpoint.
              type: string
              format: url
              example: https://acfe5f253f.cp0.konghq.com
              readOnly: true
            telemetry_endpoint:
              description: Telemetry Endpoint.
              type: string
              format: url
              example: https://acfe5f253f.tp0.konghq.com
              readOnly: true
            cluster_type:
              description: The ClusterType value of the cluster associated with the Control
                Plane.
              type: string
              example: CLUSTER_TYPE_CONTROL_PLANE
              enum:
                - CLUSTER_TYPE_CONTROL_PLANE
                - CLUSTER_TYPE_K8S_INGRESS_CONTROLLER
                - CLUSTER_TYPE_CONTROL_PLANE_GROUP
                - CLUSTER_TYPE_SERVERLESS
              readOnly: true
            auth_type:
              description: The auth type value of the cluster associated with the Runtime
                Group.
              type: string
              example: pinned_client_certs
              enum:
                - pinned_client_certs
                - pki_client_certs
              readOnly: true
            cloud_gateway:
              description: Whether the Control Plane can be used for cloud-gateways.
              type: boolean
              readOnly: true
            proxy_urls:
              $ref: "#/components/schemas/ProxyURLs"
          required:
            - control_plane_endpoint
            - telemetry_endpoint
            - cluster_type
            - auth_type
            - cloud_gateway
        created_at:
          description: An ISO-8604 timestamp representation of control plane creation date.
          type: string
          format: date-time
          example: 2022-11-04T20:10:06.927Z
          readOnly: true
        updated_at:
          description: An ISO-8604 timestamp representation of control plane update date.
          type: string
          format: date-time
          example: 2022-11-04T20:10:06.927Z
          readOnly: true
      additionalProperties: false
      required:
        - id
        - name
        - config
        - created_at
        - updated_at
      x-examples:
        Example 1:
          id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7
          name: Test Control Plane
          description: A test control plane for exploration.
          labels:
            env: test
          config:
            control_plane_endpoint: https://acfe5f253f.cp0.konghq.com
            telemetry_endpoint: https://acfe5f253f.tp0.konghq.com
            cluster_type: CLUSTER_TYPE_CONTROL_PLANE
            auth_type: pinned_client_certs
            cloud_gateway: false
            proxy_urls:
              - host: example.com
                port: 443
                protocol: https
          created_at: 2022-11-04T20:10:06.927Z
          updated_at: 2022-11-04T20:10:06.927Z
    BadRequestError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          required:
            - invalid_parameters
          properties:
            invalid_parameters:
              $ref: "#/components/schemas/InvalidParameters"
    UnauthorizedError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          properties:
            status:
              example: 401
            title:
              example: Unauthorized
            type:
              example: https://httpstatuses.com/401
            instance:
              example: kong:trace:1234567890
            detail:
              example: Invalid credentials
    ForbiddenError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          properties:
            status:
              example: 403
            title:
              example: Forbidden
            type:
              example: https://httpstatuses.com/403
            instance:
              example: kong:trace:1234567890
            detail:
              example: Forbidden
    StringFieldEqualsFilter:
      description: Filters on the given string field value by exact match.
      oneOf:
        - type: string
        - type: object
          title: StringFieldEqualsComparison
          additionalProperties: false
          properties:
            eq:
              type: string
          required:
            - eq
      title: StringFieldEqualsFilter
      x-examples:
        example-1: equals-some-value
        example-2:
          eq: some-value
    StringFieldOEQFilter:
      description: Returns entities that exact match any of the comma-delimited
        phrases in the filter string.
      type: object
      properties:
        oeq:
          type: string
      additionalProperties: false
      required:
        - oeq
      title: StringFieldOEQFilter
      x-examples:
        example-1:
          oeq: some-value,some-other-value
    StringFieldContainsFilter:
      description: Filters on the given string field value by fuzzy match.
      type: object
      properties:
        contains:
          type: string
      additionalProperties: false
      required:
        - contains
      title: StringFieldContainsFilter
      x-examples:
        example-1:
          contains: some-value
    StringFieldNEQFilter:
      description: Filters on the given string field value by exact match inequality.
      type: object
      properties:
        neq:
          type: string
      additionalProperties: false
      required:
        - neq
      title: StringFieldNEQFilter
      x-examples:
        example-1:
          neq: not-this-value
    BooleanFieldFilter:
      description: Filter by a boolean value (true/false).
      type: boolean
      title: BooleanFieldFilter
      x-examples:
        example-1: true
    PageMeta:
      description: Contains pagination query parameters and the total number of
        objects returned.
      type: object
      properties:
        number:
          type: number
          example: 1
        size:
          type: number
          example: 10
        total:
          type: number
          example: 100
      required:
        - number
        - size
        - total
    Labels:
      description: Labels to facilitate tagged search on control planes. Keys must be
        of length 1-63 characters, and cannot start with 'kong', 'konnect',
        'mesh', 'kic', or '_'.
      type: object
      example:
        env: test
      additionalProperties:
        type: string
        pattern: ^[a-z0-9A-Z]{1}([a-z0-9A-Z\-\.\_]*[a-z0-9A-Z]+)?$
        minLength: 1
        maxLength: 63
      title: Labels
    ProxyURLs:
      description: Array of proxy URLs associated with reaching the data-planes
        connected to a control-plane.
      type: array
      items:
        $ref: "#/components/schemas/ProxyURL"
      format: set
      example:
        - host: example.com
          port: 443
          protocol: https
      title: ProxyURLs
    BaseError:
      description: standard error
      type: object
      properties:
        status:
          description: >
            The HTTP status code of the error. Useful when passing the response

            body to child properties in a frontend UI. Must be returned as an
            integer.
          type: integer
          readOnly: true
        title:
          description: |
            A short, human-readable summary of the problem. It should not
            change between occurences of a problem, except for localization.
            Should be provided as "Sentence case" for direct use in the UI.
          type: string
          readOnly: true
        type:
          description: The error type.
          type: string
          readOnly: true
        instance:
          description: |
            Used to return the correlation ID back to the user, in the format
            kong:trace:<correlation_id>. This helps us find the relevant logs
            when a customer reports an issue.
          type: string
          readOnly: true
        detail:
          description: >
            A human readable explanation specific to this occurence of the
            problem.

            This field may contain request/entity data to help the user
            understand

            what went wrong. Enclose variable values in square brackets. Should
            be

            provided as "Sentence case" for direct use in the UI.
          type: string
          readOnly: true
      required:
        - status
        - title
        - instance
        - detail
      title: Error
    InvalidParameters:
      description: invalid parameters
      type: array
      items:
        oneOf:
          - $ref: "#/components/schemas/InvalidParameterStandard"
          - $ref: "#/components/schemas/InvalidParameterMinimumLength"
          - $ref: "#/components/schemas/InvalidParameterMaximumLength"
          - $ref: "#/components/schemas/InvalidParameterChoiceItem"
          - $ref: "#/components/schemas/InvalidParameterDependentItem"
      minItems: 1
      nullable: false
      uniqueItems: true
    ProxyURL:
      description: Proxy URL associated with reaching the data-planes connected to a
        control-plane.
      type: object
      properties:
        host:
          description: Hostname of the proxy URL.
          type: string
        port:
          description: Port of the proxy URL.
          type: integer
        protocol:
          description: Protocol of the proxy URL.
          type: string
      example:
        host: example.com
        port: 443
        protocol: https
      additionalProperties: false
      required:
        - host
        - port
        - protocol
      title: ProxyURL
    InvalidParameterStandard:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          $ref: "#/components/schemas/InvalidRules"
        source:
          type: string
          example: body
        reason:
          type: string
          example: is a required field
          readOnly: true
      additionalProperties: false
      required:
        - field
        - reason
    InvalidParameterMinimumLength:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
            - min_length
            - min_digits
            - min_lowercase
            - min_uppercase
            - min_symbols
            - min_items
            - min
          nullable: false
          readOnly: true
        minimum:
          type: integer
          example: 8
        source:
          type: string
          example: body
        reason:
          type: string
          example: must have at least 8 characters
          readOnly: true
      additionalProperties: false
      required:
        - field
        - reason
        - rule
        - minimum
    InvalidParameterMaximumLength:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
            - max_length
            - max_items
            - max
          nullable: false
          readOnly: true
        maximum:
          type: integer
          example: 8
        source:
          type: string
          example: body
        reason:
          type: string
          example: must not have more than 8 characters
          readOnly: true
      additionalProperties: false
      required:
        - field
        - reason
        - rule
        - maximum
    InvalidParameterChoiceItem:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
            - enum
          nullable: false
          readOnly: true
        reason:
          type: string
          example: is a required field
          readOnly: true
        choices:
          type: array
          items: {}
          minItems: 1
          nullable: false
          readOnly: true
          uniqueItems: true
        source:
          type: string
          example: body
      additionalProperties: false
      required:
        - field
        - reason
        - rule
        - choices
    InvalidParameterDependentItem:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
            - dependent_fields
          nullable: true
          readOnly: true
        reason:
          type: string
          example: is a required field
          readOnly: true
        dependents:
          type: array
          items: {}
          nullable: true
          readOnly: true
          uniqueItems: true
        source:
          type: string
          example: body
      additionalProperties: false
      required:
        - field
        - rule
        - reason
        - dependents
    InvalidRules:
      description: invalid parameters rules
      type: string
      enum:
        - required
        - is_array
        - is_base64
        - is_boolean
        - is_date_time
        - is_integer
        - is_null
        - is_number
        - is_object
        - is_string
        - is_uuid
        - is_fqdn
        - is_arn
        - unknown_property
        - is_label
        - matches_regex
        - invalid
        - is_supported_network_availability_zone_list
        - is_supported_network_cidr_block
        - is_supported_provider_region
      nullable: true
      readOnly: true
  examples:
    400RequestFormatInvalidExample:
      value:
        status: 400
        title: Bad Request
        instance: konnect:trace:3674017986744198214
        invalid_parameters:
          - field: body
            reason: request format is invalid
    400CannotBeBlankExample:
      value:
        status: 400
        title: Bad Request
        instance: konnect:trace:6644808935508571943
        invalid_parameters:
          - field: name
            reason: cannot be blank
    400InvalidIDFormatExample:
      value:
        status: 400
        title: Bad Request
        instance: konnect:trace:8988732526256293040
        invalid_parameters:
          - field: id
            reason: invalid ID format
    400UsageLimitsReachedExample:
      value:
        status: 400
        title: Bad Request
        instance: konnect:trace:8988732526256293040
        detail: Cannot create an additional control plane because usage limits have been
          reached.
    400UnknownPropertyExample:
      value:
        status: 400
        title: Bad Request
        instance: konnect:trace:8988732526256293040
        invalid_parameters:
          - field: id
            rule: unknownProperty
            reason: property id should not exist
    401UnauthenticatedExample:
      value:
        status: 401
        title: Unauthenticated
        instance: konnect:trace:952172606039454040
        detail: A valid token is required
    403PermissionDeniedExample:
      value:
        status: 403
        title: Permission denied
        instance: konnect:trace:2822394689570210664
        detail: Insufficient role-set to create control planes.
    503PermissionReadFailureExample:
      value:
        status: 503
        title: Service Unavailable
        instance: konnect:trace:2287285207635123011
        detail: Could not retrieve permissions to check resource accessibility.
  securitySchemes:
    personalAccessToken:
      type: http
      scheme: bearer
      bearerFormat: Token
      description: >
        The personal access token is meant to be used as an alternative to
        basic-auth when accessing Konnect via APIs.

        You can generate a Personal Access Token (PAT) from the [personal access
        token page](https://cloud.konghq.com/global/tokens/) in the Konnect
        dashboard.

        The PAT token must be passed in the header of a request, for example:

        `curl -X GET 'https://global.api.konghq.com/v2/users/' --header
        'Authorization: Bearer kpat_xgfT...'`
    systemAccountAccessToken:
      type: http
      scheme: bearer
      bearerFormat: Token
      description: >
        The system account access token is meant for automations and
        integrations that are not directly associated with a human identity.

        You can generate a system account Access Token by creating a system
        account and then obtaining a system account access token for that
        account.

        The access token must be passed in the header of a request, for example:

        `curl -X GET 'https://global.api.konghq.com/v2/users/' --header
        'Authorization: Bearer spat_i2Ej...'`
```
