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

# Validate Integration

Validate the stored credentials for an integration by making a test API call to the provider. This updates the integration's status to `active` if credentials are valid, or `invalid` if they fail validation.

### Headers

<ParamField header="X-API-Key" type="string" required>
  Your API key for authentication.
</ParamField>

<ParamField header="X-Organization-Id" type="string" required>
  The organization ID.
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Must be `application/json`.
</ParamField>

### Path Parameters

<ParamField path="integration_id" type="string" required>
  The unique identifier of the integration (format: `intg_[a-f0-9]{12}`).
</ParamField>

### Permissions

* `integrations:read` (all roles)

### Response

<ResponseField name="success" type="boolean">
  Indicates if the request was successful.
</ResponseField>

<ResponseField name="message" type="string">
  Human-readable message indicating validation result.
</ResponseField>

<ResponseField name="data" type="object">
  The integration object with updated status.

  <Expandable title="properties">
    <ResponseField name="integration_id" type="string">
      Unique integration identifier.
    </ResponseField>

    <ResponseField name="client_id" type="string">
      The organization/client ID this integration belongs to.
    </ResponseField>

    <ResponseField name="name" type="string">
      The name of the integration.
    </ResponseField>

    <ResponseField name="provider" type="string">
      The provider type (e.g., `twilio`).
    </ResponseField>

    <ResponseField name="category" type="string">
      The category (e.g., `telephony`).
    </ResponseField>

    <ResponseField name="status" type="string">
      Updated status (`active` if validation succeeded, `invalid` if failed).
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp of creation.
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO 8601 timestamp of last update.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "message": "Integration credentials are active",
    "data": {
      "integration_id": "intg_a1b2c3d4e5f6",
      "client_id": "org_abc123",
      "name": "Twilio Production",
      "provider": "twilio",
      "category": "telephony",
      "status": "active",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-15T11:00:00Z"
    }
  }
  ```
</ResponseExample>
