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

# Integrations

> Third-party integrations configuration

**Integrations** connect Qonversion to external marketing, analytics, attribution, and messaging platforms (Amplitude, Mixpanel, AppsFlyer, Adjust, Branch, Facebook, webhooks, etc.). An integration in v4 is the *pipeline record* — created with a display title and a target platform, then activated or paused. Per-provider credentials (API keys, webhook secrets) are configured out-of-band after creation; v4 does not expose credential fields.

## Key concepts

* **Catalog** — `GET /v4/integrations/meta` returns the list of supported provider slugs grouped by category, with the store platforms each slug supports.
* **Status** — Integrations are paused (`active=0`) or active (`active=1`). `active=2` (error) is set by the delivery worker when upstream rejects events — callers cannot set it.
* **Lifecycle** — Delete is soft: the record is flagged and stops forwarding events. The ID cannot be reused.

## Supported integration slugs

Pass one of the following values as `integration` when calling `POST /v4/integrations`. The canonical list is whatever `/v4/integrations/meta` returns; this table is a point-in-time snapshot.

| Category              | Slugs                                                                                                    |
| --------------------- | -------------------------------------------------------------------------------------------------------- |
| Analytics & marketing | `amplitude`, `appmetrica`, `facebook`, `firebase`, `mixpanel`, `posthog`, `segment`                      |
| Attribution           | `searchads`, `adjust`, `appsflyer`, `branch`, `kochava`, `singular`, `split_metrics`, `asapty`, `tenjin` |
| Server                | `amazon_s3`, `google_cloud_storage`, `slack`, `webhooks`                                                 |
| Email & push          | `braze`, `clevertap`, `mailchimp`, `onesignal`, `pushwoosh`                                              |

Not every slug is available for every `target_platform`. `/v4/integrations/meta` reports `allowedStores` per slug.

## `target_platform` values

The target platform is **case-sensitive**:

| Value     | Store           |
| --------- | --------------- |
| `iOS`     | Apple App Store |
| `Android` | Google Play     |
| `Stripe`  | Stripe          |

## `active` status

| Value | Meaning                                                                          | Who sets it                                                          |
| ----- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `0`   | Paused / draft — no events forwarded.                                            | Callers (create default, `POST /status`)                             |
| `1`   | Active — events forwarded.                                                       | Callers (`POST /status`)                                             |
| `2`   | Error — delivery worker suspended the pipeline after repeated upstream failures. | Qonversion worker. Inspect `last_error_message` and `last_error_at`. |

To recover from `active=2`, fix the upstream credentials and `POST /status` with `{"status": 1}`.

## Available endpoints

| Method | Endpoint                                   | Description                                                      |
| ------ | ------------------------------------------ | ---------------------------------------------------------------- |
| GET    | `/v4/integrations`                         | List integrations (no pagination — returns the full project set) |
| POST   | `/v4/integrations`                         | Create integration                                               |
| GET    | `/v4/integrations/meta`                    | Get supported-provider catalog                                   |
| POST   | `/v4/integrations/{integration_id}/status` | Pause (0) or activate (1) an integration                         |
| DELETE | `/v4/integrations/{integration_id}`        | Delete integration (soft; ID cannot be reused)                   |

## Example: create an Amplitude pipeline for iOS

```bash theme={null}
curl -X POST https://api.qonversion.io/v4/integrations \
  -H "Authorization: Bearer $QONVERSION_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Amplitude — Production iOS",
    "integration": "amplitude",
    "target_platform": "iOS"
  }'
```

Response (`201 Created`):

```json theme={null}
{
  "object": "integration",
  "id": "gNl6hyM6",
  "url": "/v4/integrations/gNl6hyM6",
  "title": "Amplitude — Production iOS",
  "integration": "Amplitude",
  "target_platform": "iOS",
  "active": 0,
  "created_at": "2026-02-26T16:03:09Z",
  "updated_at": "2026-02-26T16:03:09Z",
  "last_delivery_at": null,
  "last_error_at": null,
  "last_error_message": null,
  "delivery_error_count": 0
}
```

The `integration` field in responses carries the **display title** (e.g. `Amplitude`), not the lowercase slug you sent on create. Treat slugs as write-only identifiers; use `id` for references in other requests.

## Example: activate then pause

```bash theme={null}
# Activate
curl -X POST "https://api.qonversion.io/v4/integrations/gNl6hyM6/status" \
  -H "Authorization: Bearer $QONVERSION_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"status": 1}'

# Pause
curl -X POST "https://api.qonversion.io/v4/integrations/gNl6hyM6/status" \
  -H "Authorization: Bearer $QONVERSION_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"status": 0}'
```

## Authentication

All v4 endpoints require a **Secret Key**. See [Authentication](/reference/v4/authentication).
