---
title: "Read an OAuth integration connection by name."
method: GET
path: "/v1/integrations/{name}"
tags: ["integrations"]
---

# Read an OAuth integration connection by name.

`GET /v1/integrations/{name}`

## Request

- Base URL: `https://api.kody.codes`
- URL: `https://api.kody.codes/v1/integrations/{name}`
- Auth: HTTP bearer

Read an OAuth integration connection by name. Tokens live on the connection — call createAuthenticatedFetch(name) or integrationTokenRefresh. Do not persist tokens with secretSet.

Org permission: `integration:read`.

## Path parameters

- `name` string, required: Integration name to read.

## Response `200`

Success.

- object
  - `integration` object, nullable, required
    - `name` string, required
    - `tokenUrl` string, uri, required
    - `apiBaseUrl` string, uri, nullable
    - `flow` 'pkce' | 'confidential' | 'device', required
    - `usePkce` boolean, nullable
    - `clientId` string, required
    - `requiredHosts` string[]
    - `tokenExchangeStyle` 'form' | 'basic-json' | 'basic-form', nullable
    - `deviceAuthorizationUrl` string, uri, nullable
    - `authorization` object, nullable
      - `authorizeUrl` string, uri, required
      - `scopes` string[], required
      - `scopeSeparator` string, nullable
      - `extraAuthorizeParams` object
    - `platform` boolean
    - `usageMode` 'any' | 'packages'
    - `allowedPackageIds` string[]
    - `credentialId` string
    - `lastAuthFailure` object
      - `reason` 'missing_refresh_token' | 'provider_rejected' | 'missing_secret' | 'host_not_approved' | 'invalid_config' | 'provider_unavailable', required
      - `occurredAt` string, required
      - `reconnectable` boolean, required
      - `providerError` string, nullable, required
      - `providerErrorDescription` string, nullable, required
      - `httpStatus` integer, nullable, required
      - `title` string, required
      - `why` string, required
      - `who` 'you' | 'kody' | 'the-service', required
      - `doLabel` string, required
      - `reconnectHref` string, required
      - `accountHref` string, required

## Other responses

- `400`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `401`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `403`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `404`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `409`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `413`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `429`: Too many requests (edge IP/token limit) or an entitlement / plan-cap limit. Wait at least `Retry-After` seconds before retrying.
- `500`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `503`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `default`: Error envelope `{ "error": { "code", "message", "details"? } }`.

---

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