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

# Integrations

> Connect and manage source control integrations

export const ScarfPixel = () => <img referrerPolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=831669b6-b4bd-42cb-8832-2122c03e1d5f" alt="" width="1" height="1" style={{
  position: "absolute",
  width: 0,
  height: 0,
  opacity: 0,
  pointerEvents: "none"
}} />;

<ScarfPixel />

List connected integrations, and connect GitLab or Bitbucket with a personal access token. GitHub App and Slack installations use interactive approval flows. The API and CLI return an installation link for a person to approve; neither completes that approval automatically. Validate, connect, install, and disconnect operations require an organization admin.

## List integrations

```bash theme={null}
curl -X GET "https://app.strix.ai/api/v1/integrations" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>"
```

**Required scope:** `integrations:read`

## Validate a token

Validate a token before you connect (this operation does not store data):

```bash theme={null}
curl -X POST "https://app.strix.ai/api/v1/integrations/gitlab/validate" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"access_token": "<GITLAB_PAT>", "instance_url": "https://gitlab.example.com"}'
```

**Required scope:** `integrations:write`

Invalid or rejected provider credentials return HTTP `422 Unprocessable Entity`. A provider outage or other upstream validation failure returns `502 Bad Gateway`. HTTP `401 Unauthorized` means the Strix API token used for this request is invalid; it is not how an invalid GitLab or Bitbucket credential is reported.

## Create an installation link

GitHub and Slack require a person to approve an installation. Request the handoff URL like this:

```bash theme={null}
curl -X POST "https://app.strix.ai/api/v1/integrations/github/install-url" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>"
```

**Required scope:** `integrations:write`

The response contains `url`. Opening it is a separate human step; receiving the URL does not install or authorize the integration. The CLI equivalent is `strix cloud integrations install github` (or `slack`); add `--no-browser` to print the URL without opening it.

## Connect with a token

```bash theme={null}
curl -X POST "https://app.strix.ai/api/v1/integrations/gitlab/connect" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"access_token": "<GITLAB_PAT>", "instance_url": "https://gitlab.example.com"}'
```

For Bitbucket, use the `bitbucket` endpoints and pass the account email:

```bash theme={null}
curl -X POST "https://app.strix.ai/api/v1/integrations/bitbucket/connect" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"access_token": "<BITBUCKET_API_TOKEN>", "account_email": "dev@example.com"}'
```

**Required scope:** `integrations:write`

CLI equivalents keep the provider credential separate from the Strix API
token used for authentication:

```bash theme={null}
strix cloud integrations validate gitlab \
  --provider-token <GITLAB_PAT> --instance-url https://gitlab.example.com
strix cloud integrations connect bitbucket \
  --provider-token <BITBUCKET_API_TOKEN> --account-email dev@example.com
```

## Disconnect an integration

```bash theme={null}
curl -X DELETE "https://app.strix.ai/api/v1/integrations/<PROVIDER>" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>"
```

`<PROVIDER>` is one of `github`, `gitlab`, `bitbucket`, or `slack`.

GitHub, GitLab, and Bitbucket can have multiple installations, so pass the integer `installation_id` returned by the list endpoint:

```bash theme={null}
curl -X DELETE "https://app.strix.ai/api/v1/integrations/github?installation_id=<INSTALLATION_ID>" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>"
```

Omit `installation_id` for organization-wide providers such as Slack. Passing it for Slack, or omitting it for GitHub, GitLab, or Bitbucket, returns `400 Bad Request`.

**Required scope:** `integrations:write`

CLI equivalents:

```bash theme={null}
strix cloud integrations list --json
strix cloud integrations disconnect github --installation-id <INSTALLATION_ID>
strix cloud integrations disconnect slack
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.