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 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.
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
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):
{
"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
# 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.