---
title: retrieve-an-integration-configuration
product: vercel
url: /docs/rest-api/integrations/retrieve-an-integration-configuration
canonical_url: "https://vercel.com/docs/rest-api/integrations/retrieve-an-integration-configuration"
last_updated: 2026-09-22
type: reference
prerequisites:
  []
related:
  - /docs/rest-api
summary: Learn about retrieve-an-integration-configuration on Vercel.
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

# Retrieve an integration configuration

```http
GET /v1/integrations/configuration/{id}
```

Allows to retrieve a the configuration with the provided id in case it exists. The authenticated user or team must be the owner of the config in order to access it.

## Authentication

**bearerToken**: HTTP bearer

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `id` | string | Yes | ID of the configuration to check |


## Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `teamId` | string | No | The Team identifier to perform the request on behalf of. |
| `slug` | string | No | The Team slug to perform the request on behalf of. |


## Example request

### TypeScript

```typescript
const response = await fetch('https://api.vercel.com/v1/integrations/configuration/id?teamId=string&slug=string', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
```

### Next.js

```typescript
'use server';

export async function callEndpoint() {
  const response = await fetch('https://api.vercel.com/v1/integrations/configuration/id?teamId=string&slug=string', {
    method: 'GET',
    headers: {
      'Authorization': `Bearer ${process.env.VERCEL_ACCESS_TOKEN}`,
      'Content-Type': 'application/json',
    },
    next: { revalidate: 3600 }
  });

  if (!response.ok) {
    throw new Error('Request failed');
  }

  return response.json();
}
```

### cURL

```bash
curl -X GET 'https://api.vercel.com/v1/integrations/configuration/id?teamId=string&slug=string' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json'
```

## Example response

```json
{
  "acceptedPoliciesInheritedFromInstallationId": "example_id",
  "canConfigureOpenTelemetry": "false",
  "completedAt": "1558531915505",
  "createdAt": "1558531915505",
  "customerDeleteRequestedAt": "123",
  "deletedAt": "1558531915505",
  "deleteRequestedAt": "1558531915505",
  "disabledAt": "1558531915505",
  "disabledReason": "account-plan-downgrade",
  "externalId": "example_id",
  "id": "icfg_3bwCLgxL8qt5kjRLcv2Dit7F",
  "installationType": "external",
  "integrationId": "oac_xzpVzcUOgcB1nrVlirtKhbWV",
  "notification": {
    "href": "string",
    "level": "error",
    "message": "string",
    "title": "string"
  },
  "ownerId": "kr1PsOIzqEL5Xg6M4VZcZosf",
  "projects": [],
  "projectSelection": "all",
  "scopes": [],
  "slug": "slack",
  "source": "marketplace",
  "status": "error",
  "teamId": "team_nLlpyC6RE1qxydlFKbrxDlud",
  "transferRequest": {
    "approvedAt": "123",
    "approvedBy": "string",
    "authorizationId": "example_id",
    "billingPlan": {
      "description": "string",
      "id": "icfg_1234567890",
      "name": "Example Name",
      "paymentMethodRequired": "false",
      "preauthorizationAmount": "123",
      "scope": "installation",
      "type": "prepayment"
    },
    "createdAt": "123",
    "discardedAt": "123",
    "discardedBy": "string",
    "expiresAt": "123",
    "kind": "transfer-to-marketplace",
    "metadata": "value",
    "requester": {
      "email": "user@example.com",
      "name": "Example Name"
    },
    "requestId": "example_id",
    "transferId": "example_id"
  },
  "type": "integration-configuration",
  "updatedAt": "1558531915505",
  "userId": "kr1PsOIzqEL5Xg6M4VZcZosf"
}
```

## Responses

### 200: The configuration with the provided id

Content-Type: `application/json`

```json
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "createdAt",
        "id",
        "integrationId",
        "notification",
        "ownerId",
        "projectSelection",
        "scopes",
        "slug",
        "transferRequest",
        "type",
        "updatedAt",
        "userId"
      ],
      "properties": {
        "acceptedPoliciesInheritedFromInstallationId": {
          "type": "string",
          "description": "Historical parent installation from which acceptedPolicies were inherited. This is immutable provenance, not current authorization or relationship truth."
        },
        "canConfigureOpenTelemetry": {
          "type": "boolean",
          "enum": [
            false,
            true
          ]
        },
        "completedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was installed successfully"
        },
        "createdAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was created"
        },
        "customerDeleteRequestedAt": {
          "type": "number",
          "description": "Record when the customer initited deletion, independent of whether `deleteRequestedAt` gets set.",
          "nullable": true
        },
        "deletedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was deleted.",
          "nullable": true
        },
        "deleteRequestedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration deletion has been started for cases when the deletion needs to be settled/approved by partners, such as when marketplace invoices have been paid.",
          "nullable": true
        },
        "disabledAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is 'transferred', meaning the associated user is changed to one with access to the team."
        },
        "disabledReason": {
          "type": "string",
          "enum": [
            "account-plan-downgrade",
            "disabled-by-admin",
            "disabled-by-owner",
            "feature-not-available",
            "original-owner-left-the-team",
            "original-owner-role-downgraded"
          ]
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier defined by the integration vendor."
        },
        "id": {
          "type": "string",
          "description": "The unique identifier of the configuration"
        },
        "installationType": {
          "type": "string",
          "description": "Defines the installation type. - 'external' integrations are installed via the existing integrations flow - 'marketplace' integrations are natively installed: - when accepting the TOS of a partner during the store creation process - if undefined, assume 'external'",
          "enum": [
            "external",
            "marketplace"
          ]
        },
        "integrationId": {
          "type": "string",
          "description": "The unique identifier of the app the configuration was created for"
        },
        "notification": {
          "type": "object",
          "required": [
            "level",
            "title"
          ],
          "properties": {
            "href": {
              "type": "string"
            },
            "level": {
              "type": "string",
              "enum": [
                "error",
                "info",
                "warn"
              ]
            },
            "message": {
              "type": "string"
            },
            "title": {
              "type": "string"
            }
          }
        },
        "ownerId": {
          "type": "string",
          "description": "The user or team ID that owns the configuration"
        },
        "projects": {
          "type": "array",
          "description": "When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.",
          "items": {
            "type": "string"
          }
        },
        "projectSelection": {
          "type": "string",
          "description": "A string representing the permission for projects. Possible values are `all` or `selected`.",
          "enum": [
            "all",
            "selected"
          ]
        },
        "scopes": {
          "type": "array",
          "description": "The resources that are allowed to be accessed by the configuration.",
          "items": {
            "type": "string"
          }
        },
        "slug": {
          "type": "string",
          "description": "The slug of the integration the configuration is created for."
        },
        "source": {
          "type": "string",
          "description": "Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics.",
          "enum": [
            "backoffice",
            "cli",
            "deploy-button",
            "external",
            "import-recommended-integrations",
            "marketplace",
            "oauth",
            "organization",
            "resource-claims",
            "v0"
          ]
        },
        "status": {
          "type": "string",
          "description": "The configuration status. Optional. If not defined, assume 'ready'.",
          "enum": [
            "error",
            "onboarding",
            "pending",
            "ready",
            "resumed",
            "suspended",
            "uninstalled"
          ]
        },
        "teamId": {
          "type": "string",
          "description": "When the configuration was created for a team, this will show the ID of the team.",
          "nullable": true
        },
        "transferRequest": {
          "oneOf": [
            {
              "type": "object",
              "required": [
                "createdAt",
                "expiresAt",
                "kind",
                "requestId",
                "requester",
                "transferId"
              ]
            },
            {
              "type": "object",
              "required": [
                "createdAt",
                "expiresAt",
                "kind",
                "requestId",
                "requester",
                "transferId"
              ]
            }
          ]
        },
        "type": {
          "type": "string",
          "enum": [
            "integration-configuration"
          ]
        },
        "updatedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was updated."
        },
        "userId": {
          "type": "string",
          "description": "The ID of the user that created the configuration."
        }
      }
    },
    {
      "type": "object",
      "description": "The configuration with the provided id",
      "required": [
        "createdAt",
        "id",
        "integrationId",
        "ownerId",
        "scopes",
        "slug",
        "type",
        "updatedAt",
        "userId"
      ],
      "properties": {
        "acceptedPoliciesInheritedFromInstallationId": {
          "type": "string",
          "description": "Historical parent installation from which acceptedPolicies were inherited. This is immutable provenance, not current authorization or relationship truth."
        },
        "completedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was installed successfully"
        },
        "createdAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was created"
        },
        "customerDeleteRequestedAt": {
          "type": "number",
          "description": "Record when the customer initited deletion, independent of whether `deleteRequestedAt` gets set.",
          "nullable": true
        },
        "deletedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was deleted.",
          "nullable": true
        },
        "deleteRequestedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration deletion has been started for cases when the deletion needs to be settled/approved by partners, such as when marketplace invoices have been paid.",
          "nullable": true
        },
        "disabledAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is 'transferred', meaning the associated user is changed to one with access to the team."
        },
        "disabledReason": {
          "type": "string",
          "enum": [
            "account-plan-downgrade",
            "disabled-by-admin",
            "disabled-by-owner",
            "feature-not-available",
            "original-owner-left-the-team",
            "original-owner-role-downgraded"
          ]
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier defined by the integration vendor."
        },
        "id": {
          "type": "string",
          "description": "The unique identifier of the configuration"
        },
        "installationType": {
          "type": "string",
          "description": "Defines the installation type. - 'external' integrations are installed via the existing integrations flow - 'marketplace' integrations are natively installed: - when accepting the TOS of a partner during the store creation process - if undefined, assume 'external'",
          "enum": [
            "external",
            "marketplace"
          ]
        },
        "integrationId": {
          "type": "string",
          "description": "The unique identifier of the app the configuration was created for"
        },
        "ownerId": {
          "type": "string",
          "description": "The user or team ID that owns the configuration"
        },
        "projects": {
          "type": "array",
          "description": "When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.",
          "items": {
            "type": "string"
          }
        },
        "scopes": {
          "type": "array",
          "description": "The resources that are allowed to be accessed by the configuration.",
          "items": {
            "type": "string"
          }
        },
        "slug": {
          "type": "string",
          "description": "The slug of the integration the configuration is created for."
        },
        "source": {
          "type": "string",
          "description": "Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics.",
          "enum": [
            "backoffice",
            "cli",
            "deploy-button",
            "external",
            "import-recommended-integrations",
            "marketplace",
            "oauth",
            "organization",
            "resource-claims",
            "v0"
          ]
        },
        "status": {
          "type": "string",
          "description": "The configuration status. Optional. If not defined, assume 'ready'.",
          "enum": [
            "error",
            "onboarding",
            "pending",
            "ready",
            "resumed",
            "suspended",
            "uninstalled"
          ]
        },
        "teamId": {
          "type": "string",
          "description": "When the configuration was created for a team, this will show the ID of the team.",
          "nullable": true
        },
        "type": {
          "type": "string",
          "enum": [
            "integration-configuration"
          ]
        },
        "updatedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was updated."
        },
        "userId": {
          "type": "string",
          "description": "The ID of the user that created the configuration."
        }
      }
    },
    {
      "type": "object",
      "description": "A configuration represents information about a single installation of an integration within an individual or team account",
      "properties": {
        "acceptedPoliciesInheritedFromInstallationId": {
          "type": "string",
          "description": "Historical parent installation from which acceptedPolicies were inherited. This is immutable provenance, not current authorization or relationship truth."
        },
        "completedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was installed successfully"
        },
        "createdAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was created"
        },
        "customerDeleteRequestedAt": {
          "type": "number",
          "description": "Record when the customer initited deletion, independent of whether `deleteRequestedAt` gets set.",
          "nullable": true
        },
        "deletedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was deleted.",
          "nullable": true
        },
        "deleteRequestedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration deletion has been started for cases when the deletion needs to be settled/approved by partners, such as when marketplace invoices have been paid.",
          "nullable": true
        },
        "disabledAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is 'transferred', meaning the associated user is changed to one with access to the team."
        },
        "disabledReason": {
          "type": "string",
          "enum": [
            "account-plan-downgrade",
            "disabled-by-admin",
            "disabled-by-owner",
            "feature-not-available",
            "original-owner-left-the-team",
            "original-owner-role-downgraded"
          ]
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier defined by the integration vendor."
        },
        "id": {
          "type": "string",
          "description": "The unique identifier of the configuration"
        },
        "installationType": {
          "type": "string",
          "description": "Defines the installation type. - 'external' integrations are installed via the existing integrations flow - 'marketplace' integrations are natively installed: - when accepting the TOS of a partner during the store creation process - if undefined, assume 'external'",
          "enum": [
            "external",
            "marketplace"
          ]
        },
        "integrationId": {
          "type": "string",
          "description": "The unique identifier of the app the configuration was created for"
        },
        "ownerId": {
          "type": "string",
          "description": "The user or team ID that owns the configuration"
        },
        "projects": {
          "type": "array",
          "description": "When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.",
          "items": {
            "type": "string"
          }
        },
        "scopes": {
          "type": "array",
          "description": "The resources that are allowed to be accessed by the configuration.",
          "items": {
            "type": "string"
          }
        },
        "slug": {
          "type": "string",
          "description": "The slug of the integration the configuration is created for."
        },
        "source": {
          "type": "string",
          "description": "Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics.",
          "enum": [
            "backoffice",
            "cli",
            "deploy-button",
            "external",
            "import-recommended-integrations",
            "marketplace",
            "oauth",
            "organization",
            "resource-claims",
            "v0"
          ]
        },
        "status": {
          "type": "string",
          "description": "The configuration status. Optional. If not defined, assume 'ready'.",
          "enum": [
            "error",
            "onboarding",
            "pending",
            "ready",
            "resumed",
            "suspended",
            "uninstalled"
          ]
        },
        "teamId": {
          "type": "string",
          "description": "When the configuration was created for a team, this will show the ID of the team.",
          "nullable": true
        },
        "type": {
          "type": "string",
          "enum": [
            "integration-configuration"
          ]
        },
        "updatedAt": {
          "type": "number",
          "description": "A timestamp that tells you when the configuration was updated."
        },
        "userId": {
          "type": "string",
          "description": "The ID of the user that created the configuration."
        }
      }
    }
  ]
}
```

### 400: One of the provided values in the request query is invalid.

### 401: The request is not authorized.

### 403: You do not have permission to access this resource.

### 404: The configuration was not found

### 410: No description

---

## Related

- [integrations endpoints](/docs/rest-api#integrations)

- [REST API overview](/docs/rest-api)

- [OpenAPI spec](https://vercel.com/openapi.json) (machine-readable, all endpoints)

---

[View full sitemap](/docs/sitemap)
