Skip to main content

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

  • CatalogGET /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.
CategorySlugs
Analytics & marketingamplitude, appmetrica, facebook, firebase, mixpanel, posthog, segment
Attributionsearchads, adjust, appsflyer, branch, kochava, singular, split_metrics, asapty, tenjin
Serveramazon_s3, google_cloud_storage, slack, webhooks
Email & pushbraze, 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:
ValueStore
iOSApple App Store
AndroidGoogle Play
StripeStripe

active status

ValueMeaningWho sets it
0Paused / draft — no events forwarded.Callers (create default, POST /status)
1Active — events forwarded.Callers (POST /status)
2Error — 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

MethodEndpointDescription
GET/v4/integrationsList integrations (no pagination — returns the full project set)
POST/v4/integrationsCreate integration
GET/v4/integrations/metaGet supported-provider catalog
POST/v4/integrations/{integration_id}/statusPause (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.