> ## Documentation Index
> Fetch the complete documentation index at: https://ona.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List Integration Definitions

> Lists available integration definitions.

`Unary` · [`Integrations`](/docs/api-reference/generated/integration/overview)

Lists available integration definitions.

Use this method to:

* View all available integrations
* Check integration capabilities
* Discover supported services

## Endpoint

```text theme={null}
POST /api/gitpod.v1.IntegrationService/ListIntegrationDefinitions
```

Send a Bearer token as described in [Authentication](/docs/api-reference#authenticate-requests). If your organization uses a custom management-plane domain, replace `https://app.ona.com` with that domain.

## Request example

<CodeGroup>
  ```bash cURL theme={null}
  export ONA_HOST=https://app.ona.com
  export ONA_API_KEY=<your-token>

  curl --request POST \
    --url "$ONA_HOST/api/gitpod.v1.IntegrationService/ListIntegrationDefinitions" \
    --header "Authorization: Bearer $ONA_API_KEY" \
    --header "Content-Type: application/json" \
    --data '{
    "pagination": {
      "pageSize": 1
    }
  }'
  ```

  ```python Python theme={null}
  import gitpod.v1.integration_pb2 as integration_pb2
  import gitpod.v1.pagination_pb2 as pagination_pb2
  from ona_sdk import create_client_from_env

  ona = create_client_from_env()
  request = integration_pb2.ListIntegrationDefinitionsRequest(
      pagination=pagination_pb2.PaginationRequest(
          page_size=1,
      ),
  )
  response = ona.services.integration.list_integration_definitions(request)
  print(response)
  ```

  ```typescript TypeScript theme={null}
  import { create } from "@bufbuild/protobuf";
  import { createClientFromEnv } from "@gitpod/sdk";
  import { ListIntegrationDefinitionsRequestSchema } from "@gitpod/sdk/gitpod/v1/integration_pb";

  async function main() {
    const ona = createClientFromEnv();
    const request = create(ListIntegrationDefinitionsRequestSchema, {
      pagination: {
        pageSize: 1,
      },
    });
    const response = await ona.services.integration.listIntegrationDefinitions(request);
    console.log(response);
  }

  main().catch(console.error);
  ```

  ```go Go theme={null}
  package main

  import (
  	"context"
  	"fmt"
  	"log"

  	"connectrpc.com/connect"
  	"github.com/gitpod-io/gitpod-sdk-go/sdk"
  	gitpodpb "github.com/gitpod-io/gitpod-sdk-go/v1"
  )

  func main() {
  	ona, err := sdk.NewFromEnv()
  	if err != nil {
  		log.Fatal(err)
  	}

  	request := connect.NewRequest(&gitpodpb.ListIntegrationDefinitionsRequest{
  		Pagination: &gitpodpb.PaginationRequest{
  			PageSize: 1,
  		},
  	})
  	response, err := ona.Services.Integration.ListIntegrationDefinitions(context.Background(), request)
  	if err != nil {
  		log.Fatal(err)
  	}
  	fmt.Println(response.Msg)
  }
  ```

  ```json Request body theme={null}
  {
    "pagination": {
      "pageSize": 1
    }
  }
  ```
</CodeGroup>

## Request

`gitpod.v1.ListIntegrationDefinitionsRequest`

| Field        | Type                                                    | Required | Description |
| ------------ | ------------------------------------------------------- | -------- | ----------- |
| `pagination` | [PaginationRequest](#type-gitpod-v1-pagination-request) | No       |             |

## Response

`gitpod.v1.ListIntegrationDefinitionsResponse`

| Field         | Type                                                                     | Required | Description                   |
| ------------- | ------------------------------------------------------------------------ | -------- | ----------------------------- |
| `pagination`  | [PaginationResponse](#type-gitpod-v1-pagination-response)                | Yes      | Constraints: `required=true`. |
| `definitions` | array of [IntegrationDefinition](#type-gitpod-v1-integration-definition) | No       |                               |

## Related types

<a id="type-gitpod-v1-integration-authentication" />

<Accordion title="IntegrationAuthentication">
  IntegrationAuthentication defines authentication requirements and options

  `gitpod.v1.IntegrationAuthentication`

  | Field            | Type                            | Required | Description                                                                 |
  | ---------------- | ------------------------------- | -------- | --------------------------------------------------------------------------- |
  | `requiresAuth`   | boolean                         | No       | requires\_auth indicates if authentication is required for this integration |
  | `apiKey`         | IntegrationAPIKeyConfig         | No       | api\_key configuration if API key authentication is supported               |
  | `oauth`          | IntegrationOAuthConfig          | No       | oauth configuration if OAuth authentication is supported                    |
  | `proprietaryApp` | IntegrationProprietaryAppConfig | No       | proprietary configuration if supported                                      |
</Accordion>

<a id="type-gitpod-v1-integration-capabilities" />

<Accordion title="IntegrationCapabilities">
  IntegrationCapabilities defines what an integration can do

  `gitpod.v1.IntegrationCapabilities`

  | Field              | Type                                  | Required | Description                                                                                                                                       |
  | ------------------ | ------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `mcp`              | IntegrationMCPCapability              | No       | mcp configuration for Model Context Protocol support                                                                                              |
  | `contextParsing`   | IntegrationContextParsingCapability   | No       | context\_parsing configuration for context parsing support                                                                                        |
  | `sourceCodeAccess` | IntegrationSourceCodeAccessCapability | No       | source\_code\_access configuration for source code access support                                                                                 |
  | `login`            | IntegrationLoginCapability            | No       | login configuration for login/authentication support                                                                                              |
  | `agentClient`      | IntegrationAgentClientCapability      | No       | agent\_client configuration for agent client functionality support                                                                                |
  | `scmPrEvents`      | IntegrationScmPrEventsCapability      | No       | scm\_pr\_events indicates the integration can act as a source of PR events for automation triggers (e.g., pull\_request opened/updated webhooks). |
</Accordion>

<a id="type-gitpod-v1-integration-definition" />

<Accordion title="IntegrationDefinition">
  IntegrationDefinition defines a service that can be integrated with
  (e.g. Linear, GitHub, etc.)

  `gitpod.v1.IntegrationDefinition`

  | Field          | Type                                                                    | Required | Description                                                                          |
  | -------------- | ----------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------ |
  | `id`           | string                                                                  | No       | id is the unique identifier for this integration definition                          |
  | `name`         | string                                                                  | No       | name is the human-readable name for this integration type                            |
  | `description`  | string                                                                  | No       | description provides a human-readable description of the integration                 |
  | `iconUrl`      | string                                                                  | No       | icon\_url is the URL for this integration's icon                                     |
  | `capabilities` | [IntegrationCapabilities](#type-gitpod-v1-integration-capabilities)     | No       | capabilities defines what this integration can do                                    |
  | `auth`         | [IntegrationAuthentication](#type-gitpod-v1-integration-authentication) | No       | auth defines the authentication requirements for this integration                    |
  | `host`         | string                                                                  | No       | host is the hostname for this integration (e.g., "linear.app")                       |
  | `experimental` | boolean                                                                 | No       | experimental indicates if this integration is experimental and requires feature flag |
  | `categories`   | array of [IntegrationCategory](#enum-gitpod-v1-integration-category)    | No       | categories classifies this integration for filtering and display                     |
</Accordion>

<a id="type-gitpod-v1-pagination-request" />

<Accordion title="PaginationRequest">
  `gitpod.v1.PaginationRequest`

  | Field      | Type    | Required | Description                                                                                                                              |
  | ---------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
  | `pageSize` | integer | No       | Page size is the maximum number of results to retrieve per page. Defaults to 25. Maximum 100. Constraints: `int32.gte=0, int32.lte=100`. |
  | `token`    | string  | No       | Token for the next set of results that was returned as next\_token of a PaginationResponse                                               |
</Accordion>

<a id="type-gitpod-v1-pagination-response" />

<Accordion title="PaginationResponse">
  `gitpod.v1.PaginationResponse`

  | Field       | Type   | Required | Description                                                                             |
  | ----------- | ------ | -------- | --------------------------------------------------------------------------------------- |
  | `nextToken` | string | No       | Token passed for retrieving the next set of results. Empty if there are no more results |
</Accordion>

<a id="enum-gitpod-v1-integration-category" />

<Accordion title="IntegrationCategory">
  IntegrationCategory classifies integrations for filtering and display.

  | Value                                      | Number | Description |
  | ------------------------------------------ | -----: | ----------- |
  | `INTEGRATION_CATEGORY_UNSPECIFIED`         |      0 |             |
  | `INTEGRATION_CATEGORY_SOURCE_CONTROL`      |      1 |             |
  | `INTEGRATION_CATEGORY_COMMUNICATION`       |      2 |             |
  | `INTEGRATION_CATEGORY_PROJECT_MANAGEMENT`  |      3 |             |
  | `INTEGRATION_CATEGORY_OBSERVABILITY`       |      4 |             |
  | `INTEGRATION_CATEGORY_DATA_ANALYTICS`      |      5 |             |
  | `INTEGRATION_CATEGORY_KNOWLEDGE`           |      6 |             |
  | `INTEGRATION_CATEGORY_MCP`                 |      7 |             |
  | `INTEGRATION_CATEGORY_AUTOMATION_TRIGGERS` |      8 |             |
  | `INTEGRATION_CATEGORY_AI`                  |      9 |             |
</Accordion>
