---
title: "List Catalog Service API Specs"
url: "https://us-prod.jeffyongtaotang.com/apis/konnect-service-catalog-1/versions/cdbef9b7-686c-4189-bbc8-55c727a972e8/operations/list-catalog-service-api-specs"
---

> Full API specification: https://us-prod.jeffyongtaotang.com/apis/konnect-service-catalog-1/versions/cdbef9b7-686c-4189-bbc8-55c727a972e8.md

# List Catalog Service API Specs

`GET` `/catalog-services/{id}/api-specs`

Operation ID: `list-catalog-service-api-specs`

Returns a paginated collection of API Specs for the given service.

## Path parameters

- `id` (string, required) - The `id` of the service.

## 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 API specs belonging to a service.
- `sort` (string, optional) - Sorts a collection of API specs belonging to a service. Supported sort attributes are: - `name` - `provider.type` Default sort is `name` in ascending order.

## Responses

- `200` - A paginated list response for a collection of API specs.
- `401` - Unauthorized
- `403` - Forbidden
- `404` - Not Found

## OpenAPI definition

```yaml
openapi: 3.0.3
info:
  title: Konnect Service Catalog
  version: 1.3.0
servers:
  - url: https://us.api.konghq.com/v1
    description: United-States Production region
  - url: https://eu.api.konghq.com/v1
    description: Europe Production region
  - url: https://au.api.konghq.com/v1
    description: Australia Production region
  - url: https://me.api.konghq.com/v1
    description: Middle-East Production region
  - url: https://in.api.konghq.com/v1
    description: India Production region
  - url: https://sg.api.konghq.com/v1
    description: Singapore Production region
paths:
  /catalog-services/{id}/api-specs:
    parameters:
      - schema:
          type: string
          example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7
        name: id
        in: path
        required: true
        description: The `id` of the service.
    get:
      x-unstable: true
      x-internal: true
      summary: List Catalog Service API Specs
      operationId: list-catalog-service-api-specs
      description: Returns a paginated collection of API Specs for the given service.
      parameters:
        - $ref: "#/components/parameters/PageSize"
        - $ref: "#/components/parameters/PageNumber"
        - $ref: "#/components/parameters/CatalogServiceApiSpecFilter"
        - $ref: "#/components/parameters/CatalogServiceApiSpecSort"
      responses:
        "200":
          $ref: "#/components/responses/ListCatalogServiceApiSpecsResponse"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
      tags:
        - Catalog Service API Specs
security:
  - konnectAccessToken: []
  - 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
    CatalogServiceApiSpecFilter:
      name: filter
      description: Filters a collection of API specs belonging to a service.
      required: false
      in: query
      style: deepObject
      schema:
        $ref: "#/components/schemas/CatalogServiceApiSpecFilterParameters"
    CatalogServiceApiSpecSort:
      name: sort
      description: >
        Sorts a collection of API specs belonging to a service. Supported sort
        attributes are:
          - `name`
          - `provider.type`

        Default sort is `name` in ascending order.
      required: false
      in: query
      schema:
        $ref: "#/components/schemas/SortQuery"
  responses:
    ListCatalogServiceApiSpecsResponse:
      description: A paginated list response for a collection of API specs.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              meta:
                $ref: "#/components/schemas/PaginatedMeta"
              data:
                type: array
                items:
                  $ref: "#/components/schemas/CatalogServiceApiSpec"
            required:
              - meta
              - data
          examples:
            Service APIs:
              $ref: "#/components/examples/ListServiceApiResponse"
    Unauthorized:
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/UnauthorizedError"
          examples:
            UnauthorizedExample:
              $ref: "#/components/examples/UnauthorizedExample"
    Forbidden:
      description: Forbidden
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/ForbiddenError"
          examples:
            UnauthorizedExample:
              $ref: "#/components/examples/ForbiddenExample"
    NotFound:
      description: Not Found
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/NotFoundError"
          examples:
            NotFoundExample:
              $ref: "#/components/examples/NotFoundExample"
  schemas:
    CatalogServiceApiSpecFilterParameters:
      type: object
      properties:
        name:
          $ref: "#/components/schemas/StringFieldFilter"
    SortQuery:
      title: SortQuery
      type: string
      example: created_at desc
      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').
    PaginatedMeta:
      type: object
      title: PaginatedMeta
      x-speakeasy-terraform-ignore: true
      description: returns the pagination information
      properties:
        page:
          $ref: "#/components/schemas/PageMeta"
      required:
        - page
    CatalogServiceApiSpec:
      type: object
      required:
        - id
        - service_id
        - name
        - description
        - resource_id
        - provider
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
          example: eadb88fe-e8eb-45c2-9591-dc783f93f29b
          description: The API spec ID
        service_id:
          type: string
          format: uuid
          example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7
          description: The ID of the service the API spec is associated to.
        name:
          type: string
          description: The name of the API
          minLength: 1
          maxLength: 120
          example: Pet Store
        description:
          type: string
          description: The description of the API.
          nullable: true
          maxLength: 2048
          example: >
            A sample API that uses a pet store as an example to demonstrate
            features in the OpenAPI specification.
        resource_id:
          type: string
          nullable: true
          description: >
            The ID of the Resource that is bound to the API spec.

            Only set when the given `provider.type` requires a 1-to-1 mapping
            between Resource

            and API Spec.
          example: IqkHvMdyHukxcwAs
        provider:
          title: ApiSpecProvider
          description: Represents the provider, or source, of API spec contents.
          x-convert-oneOf: true
          anyOf:
            - $ref: "#/components/schemas/UrlApiSpecProvider"
            - $ref: "#/components/schemas/RawApiSpecProvider"
            - $ref: "#/components/schemas/IntegrationApiSpecProvider"
            - $ref: "#/components/schemas/ResourceBoundIntegrationApiSpecProvider"
        created_at:
          $ref: "#/components/schemas/CreatedAt"
        updated_at:
          $ref: "#/components/schemas/UpdatedAt"
    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
    NotFoundError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          properties:
            status:
              example: 404
            title:
              example: Not Found
            type:
              example: https://httpstatuses.com/404
            instance:
              example: kong:trace:1234567890
            detail:
              example: Not found
    StringFieldFilter:
      oneOf:
        - title: Filter by operator
          description: "Filter using **one** of the following operators: `eq`, `oeq`,
            `neq`, `contains`, `ocontains`"
          x-examples:
            example-1:
              contains: some-value
              ocontains: this-value,or-that-value
              oeq: some-value,some-other-value
              neq: not-this-value
            example-2:
              eq: some-value
          properties:
            eq:
              type: string
              description: The field exactly matches the provided value.
              example: ?filter[field_name_here][eq]=foo
            contains:
              type: string
              description: The field contains the provided value.
              example: ?filter[field_name_here][contains]=foo
            ocontains:
              type: string
              description: The field contains any of the provided values.
              example: ?filter[field_name_here][ocontains]=foo,bar
            oeq:
              type: string
              description: The field matches any of the provided values.
              example: ?filter[field_name_here][oeq]=foo,bar
            neq:
              type: string
              description: The field does not match the provided value.
              example: ?filter[field_name_here][neq]=bar
          type: object
          additionalProperties: false
        - title: Filter by exact string match
          type: string
          description: The field exactly matches the provided value.
          example: ?filter[title]=foo
    PageMeta:
      type: object
      description: Contains pagination query parameters and the total number of
        objects returned.
      required:
        - number
        - size
        - total
      properties:
        number:
          type: number
          example: 1
          x-speakeasy-terraform-ignore: true
        size:
          type: number
          example: 10
          x-speakeasy-terraform-ignore: true
        total:
          type: number
          example: 100
          x-speakeasy-terraform-ignore: true
    UrlApiSpecProvider:
      type: object
      required:
        - type
        - config
      properties:
        type:
          type: string
          enum:
            - url
        config:
          type: object
          required:
            - url
          properties:
            url:
              type: string
              format: uri
              description: |
                Public URL that resolves to the raw API spec contents.
                Supported formats are JSON and YAML.
              example: https://api.petstore.com/v3/openapi.json
    RawApiSpecProvider:
      type: object
      required:
        - type
        - config
      properties:
        type:
          type: string
          enum:
            - raw
        config:
          type: object
          additionalProperties: false
          minProperties: 0
          maxProperties: 0
    IntegrationApiSpecProvider:
      description: >
        API spec provider registered by a catalog integration.


        Integrations can function as API spec providers where they register a
        globally unique

        `type` and config schema which defines the shape of `config`.


        Consult integration documentation to learn more about available API spec
        providers.
      type: object
      required:
        - type
        - config
        - integration
      properties:
        type:
          type: string
          description: The globally unique API spec provider type that is registered by a
            given catalog integration.
          minLength: 1
          maxLength: 120
          example: swaggerhub_api_version
        config:
          type: object
          additionalProperties: true
          minProperties: 1
          description: JSON object containing values as defined by integration provider's
            config schema.
          example:
            owner: petco
            api: pet_store
            version: v3
        integration:
          $ref: "#/components/schemas/IntegrationRef"
    ResourceBoundIntegrationApiSpecProvider:
      description: >
        API spec provider registered by a catalog integration.


        These providers differ from `IntegrationApiSpecProvider` in that they

        denote a binding relationship between a resource type and the API spec.

        This means that the API Spec will automatically be created/deleted
        for/from a service

        as resources of the given type are mapped/unmapped.


        Consult integration documentation to learn more about available API spec
        providers.
      type: object
      required:
        - type
        - config
        - integration
      properties:
        type:
          type: string
          description: >
            The globally unique API spec provider type that is registered by a
            given catalog integration.

            Resource-bound providers create a 1-to-1 mapping between a resource
            type and the API Spec.
          minLength: 1
          maxLength: 120
        config:
          type: object
          required:
            - resource_id
          properties:
            resource_id:
              type: string
              description: ID of the associated Resource the API spec is bound to.
              example: IqkHvMdyHukxcwAs
        integration:
          $ref: "#/components/schemas/IntegrationRef"
    CreatedAt:
      type: string
      format: date-time
      example: 2022-11-04T20:10:06.927Z
      description: An ISO-8601 timestamp representation of entity creation date.
      readOnly: true
      x-speakeasy-param-suppress-computed-diff: true
    UpdatedAt:
      type: string
      format: date-time
      example: 2022-11-04T20:10:06.927Z
      description: An ISO-8601 timestamp representation of entity update date.
      readOnly: true
      x-speakeasy-param-suppress-computed-diff: true
    BaseError:
      type: object
      title: Error
      description: standard error
      required:
        - status
        - title
        - instance
        - detail
      properties:
        status:
          type: integer
          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.
          readOnly: true
        title:
          type: string
          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.
          readOnly: true
        type:
          type: string
          description: The error type.
          readOnly: true
        instance:
          type: string
          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.
          readOnly: true
        detail:
          type: string
          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.
          readOnly: true
    IntegrationRef:
      type: object
      description: Short-hand descriptor of an integration installed within the catalog.
      required:
        - name
        - display_name
        - instance
      properties:
        name:
          type: string
          example: gateway-manager
        display_name:
          type: string
          example: gateway-manager
        instance:
          $ref: "#/components/schemas/IntegrationInstanceRef"
    IntegrationInstanceRef:
      type: object
      description: Short-hand descriptor of an integration instance.
      required:
        - id
        - name
        - display_name
      properties:
        id:
          type: string
          format: uuid
          example: 772b9caf-ddbc-4f4f-8aa4-8dfbbe420351
          description: The integration instance ID.
        name:
          type: string
          description: >
            The machine name of the integration instance that uniquely
            identifies it within the catalog.
          pattern: ^[0-9a-z.-]+$
          example: aws-lambda-prod
        display_name:
          type: string
          description: The display name of the integration instance.
          example: AWS (prod)
  examples:
    ListServiceApiResponse:
      value:
        data:
          - id: 8e3882ff-ad0f-4690-a5a7-c69323084109
            service_id: 204d85d2-1bb9-4864-842f-6d97a7cbca2c
            resource_id: null
            name: spec-from-url
            description: API Spec from URL
            created_at: 2025-05-01T00:00:00.000000Z
            updated_at: 2025-05-01T00:00:00.000000Z
            provider:
              type: url
              config:
                url: https://my-company.com/api-specs/openapi.yaml
          - id: a237f806-e9ea-4c56-89f5-ab92b5e19913
            service_id: 204d85d2-1bb9-4864-842f-6d97a7cbca2c
            resource_id: null
            name: spec-from-raw
            description: API Spec from Raw
            created_at: 2025-05-01T00:00:00.000000Z
            updated_at: 2025-05-01T00:00:00.000000Z
            provider:
              type: raw
              config: {}
          - id: 3a276c30-f209-44dc-9814-df291bc94950
            service_id: 204d85d2-1bb9-4864-842f-6d97a7cbca2c
            name: spec-from-integration
            description: API Spec from Integration
            resource_id: null
            created_at: 2025-05-01T00:00:00.000000Z
            updated_at: 2025-05-01T00:00:00.000000Z
            provider:
              type: github_repo
              config:
                repo: MyOrganization
                owner: MyService
                spec_path: openapi.yaml
              integration:
                name: github
                display_name: GitHub
                instance:
                  id: bd24cfdd-619e-4696-b58d-a9ea49e5ea39
                  name: github
                  display_name: GitHub
          - id: e0928050-20d0-448f-947d-624d9901947e
            service_id: 204d85d2-1bb9-4864-842f-6d97a7cbca2c
            resource_id: ok-qTDpuiQp7DWK0
            name: spec-from-resource
            description: API Spec from Resource
            created_at: 2025-05-01T00:00:00.000000Z
            updated_at: 2025-05-01T00:00:00.000000Z
            provider:
              type: swaggerhub_api_version
              config:
                resource_id: ok-qTDpuiQp7DWK0
              integration:
                name: swaggerhub
                display_name: SwaggerHub
                instance:
                  id: e0f2388b-2efe-42a3-a9e4-86f12d3e8c77
                  name: swaggerhub-internal
                  display_name: SwaggerHub (Internal)
        meta:
          page:
            total: 4
            size: 100
            number: 1
    UnauthorizedExample:
      value:
        status: 401
        title: Unauthorized
        instance: kong:trace:8347343766220159418
        detail: Unauthorized
    ForbiddenExample:
      value:
        status: 403
        title: Forbidden
        instance: kong:trace:2723154947768991354
        detail: You do not have permission to perform this action
    NotFoundExample:
      value:
        status: 404
        title: Not Found
        instance: kong:trace:6816496025408232265
        detail: Not Found
  securitySchemes:
    konnectAccessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        The Konnect access token is meant to be used by the Konnect dashboard
        and the decK CLI authenticate with.
    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/account/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...'`
```
