---
title: "Link Choices"
method: GET
path: "/api/v1/integrations/{provider}/link-choices"
tags: ["integrations"]
---

# Link Choices

`GET /api/v1/integrations/{provider}/link-choices`

## Request

- Base URL: `https://api.aws.cognee.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.aws.cognee.ai/api/v1/integrations/{provider}/link-choices`
- Auth: API key in header `X-Api-Key`

Display data for a ``choose_installation`` outcome's set of ids.

An ordinary authenticated action route, not part of ``/complete``'s
always-200 outcome-slug contract: this is never a browser-redirect
target, so a malformed or expired ``choice_token`` is a plain 400,
and a token that checks out but names someone else, or an owner who
no longer owns the tenant, is a plain 403 - the same shape every other
owner-gated route on this router already answers with.

Every installation the linking account can reach, not only the ones
this tenant lacks. ``already_connected`` marks the ones already
active here so the UI can offer picking the previous org again as a
real, visible choice rather than this route silently filtering it out
(CLO-627).

Bounded by however many installations of one app a single GitHub
account can realistically reach, not by anything caller-controlled:
one authoritative-record fetch per id in the token, each skipped
rather than failing the whole response when an installation no
longer resolves (removed between minting the token and this call).

## Path parameters

- `provider` string, required

## Query parameters

- `choice_token` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/cognee/apis/cognee-api.md) - [All operations](https://skmtc.dev/cognee/apis/cognee-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cognee/apis/cognee-api/revisions/a7b6c6cb8212?raw)
