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

# Get Integration

> Inspect one integration: what it does, its events, and its wiring

Inspect a connected integration in depth: what the provider syncs, every event it can emit, the tags each event applies through your sync rules, which sequences trigger on those events, recent activity, and prioritized recommendations.

The most useful field is `unusedEvents` - the events this integration produces that no sequence acts on. That is the difference between "the integration is broken" and "the integration works but nothing is built on it yet".

<Note>
  Read-only. Credentials, access tokens, and webhook secrets are never returned.
</Note>

Requires an API key with the `account:read`, `subscribers:read`, and
`sequences:read` scopes.

## Request

<ParamField path="id" type="string" required>
  Integration ID, from [List Integrations](/api-reference/integrations/list).
</ParamField>

```bash theme={null}
curl "https://api.sequenzy.com/api/v1/integrations/int_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Response fields

<ResponseField name="integration" type="object">
  The connection itself, with the same fields as the list endpoint plus `name`
  (display name) and `category`.
</ResponseField>

<ResponseField name="capabilities" type="object">
  The provider's catalog entry - what it syncs, what it emits, what it writes.
  See [List Integration Capabilities](/api-reference/integrations/catalog).
  `null` for a provider with no catalog entry.
</ResponseField>

<ResponseField name="events" type="object[]">
  Each emitted event crossed with your account's configuration: aggregate
  `addsTags`/`removesTags`, every matching entry in `rules` with its own
  conditions, listening sequences, and account-wide observation fields.
</ResponseField>

<ResponseField name="unusedEvents" type="string[]">
  Events the provider emits that no sequence triggers on. These are the concrete
  automation gaps for this integration.
</ResponseField>

<ResponseField name="accountNeverReceivedEvents" type="string[]">
  Provider event names the account has never received from any source. Use the
  integration-specific 24-hour activity log to diagnose this connection.
</ResponseField>

<ResponseField name="activity" type="object">
  Webhook and sync activity over the last 24 hours: totals by status, a
  `stalled` count for events queued more than 15 minutes without completing,
  `lastActivityAt`, and up to five `recentFailures`.
</ResponseField>

<ResponseField name="recommendations" type="object[]">
  Prioritized problems and suggestions. Each has a `code`, a `severity` of
  `error`, `warning`, or `info`, a `message`, and a concrete `action`.
</ResponseField>

<ResponseField name="availableActions" type="string[]">
  Actions callable right now given the integration's current state. A
  disconnected integration returns an empty array.
</ResponseField>

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "integration": {
      "id": "int_abc123",
      "provider": "stripe",
      "name": "Stripe",
      "category": "payments",
      "providerAccountId": "acct_1ABC",
      "isActive": true,
      "syncEnabled": true,
      "syncStatus": "idle",
      "lastSyncAt": "2026-08-01T10:30:00Z",
      "lastSyncError": null,
      "totalCustomersSynced": 4821,
      "totalEventsSynced": 19422,
      "connectedAt": "2026-01-14T08:12:00Z",
      "disconnectedAt": null,
      "details": {},
      "lastSyncSkipped": null
    },
    "capabilities": {
      "provider": "stripe",
      "name": "Stripe",
      "category": "payments",
      "availability": "available",
      "connectMethod": "oauth",
      "syncs": ["customers", "subscriptions", "products", "revenue"],
      "emits": [],
      "writesAttributes": [],
      "actions": ["enable_sync", "disable_sync", "sync_now", "sync_products"]
    },
    "events": [
      {
        "event": "saas.payment_failed",
        "when": "a payment attempt fails (card declined, expired, insufficient funds)",
        "addsTags": ["past-due"],
        "removesTags": [],
        "rules": [{ "addsTags": ["past-due"], "removesTags": [], "conditions": { "requiresTags": ["customer"] } }],
        "observedByAccount": false,
        "accountLastSeenAt": null,
        "ruleSource": "default",
        "listeners": []
      },
      {
        "event": "saas.purchase",
        "when": "a customer completes a purchase or starts a paid subscription",
        "addsTags": ["customer"],
        "removesTags": ["lead", "past-due"],
        "rules": [{ "addsTags": ["customer"], "removesTags": ["lead", "past-due"], "conditions": null }],
        "observedByAccount": true,
        "accountLastSeenAt": "2026-08-01T10:25:00Z",
        "ruleSource": "default",
        "listeners": [
          {
            "sequenceId": "seq_123",
            "name": "New customer onboarding",
            "effectiveStatus": "live",
            "acceptsNewEnrollments": true,
            "effectiveStatusSummary": "Live. New subscribers enroll and existing recipients keep receiving steps."
          }
        ]
      }
    ],
    "unusedEvents": ["saas.payment_failed"],
    "activity": {
      "windowHours": 24,
      "total": 128,
      "processed": 127,
      "failed": 1,
      "skipped": 0,
      "stalled": 0,
      "lastActivityAt": "2026-08-01T11:02:00Z",
      "recentFailures": [
        {
          "action": "process_webhook",
          "eventType": "invoice.payment_failed",
          "email": "buyer@example.com",
          "error": "Subscriber not found",
          "createdAt": "2026-08-01T09:14:00Z"
        }
      ]
    },
    "recommendations": [
      {
        "code": "events_without_sequences",
        "severity": "info",
        "message": "Stripe can emit 1 event(s) that no sequence triggers on: saas.payment_failed.",
        "action": "Create a sequence with an event trigger for the ones worth acting on, for example a dunning sequence on saas.payment_failed."
      }
    ],
    "availableActions": ["disable_sync", "sync_now", "sync_products"]
  }
  ```

  ```json 401 theme={null}
  {
    "success": false,
    "error": "Unauthorized"
  }
  ```

  ```json 403 theme={null}
  {
    "success": false,
    "error": "API key is missing required scope: sequences:read"
  }
  ```

  ```json 404 theme={null}
  {
    "success": false,
    "error": "Integration not found"
  }
  ```
</ResponseExample>
