Skip to main content

Overview

The Event Ingestion API accepts structured events from the AppDNA SDKs. Events are batched on the client, sent to the ingestion endpoint, and processed through the analytics pipeline for querying and dashboards.

Endpoints

Ingest Events

Authentication: SDK Key (x-api-key header) Accepts a batch of events from the SDK. Each event follows the envelope schema defined below. Request body: A batch of 1 to 500 events under the batch key:
Response: HTTP 202 Accepted
An errors array is included when one or more events are rejected.

Identify User

Authentication: SDK Key (x-api-key header) Links an anonymous device to a known user ID. Call this when the user logs in or creates an account. Request body:
anon_id, user_id, and ts_ms (Unix timestamp in milliseconds) are required. traits is an optional object of user attributes.

Health Check

Authentication: None (public) Returns the health status of the ingestion service.

Event Envelope Schema

Every event sent to the ingestion API must conform to the EventSchema envelope:

Field Reference

Events where privacy.consent.analytics is false are accepted but not processed into analytics pipelines. They are retained only for audit purposes.

Auto-Tracked Events

The AppDNA SDKs automatically track the following events without any additional code. These events are fired across all four SDKs (iOS, Android, Flutter, React Native):

Session Events

Push Notification Events

Purchase Events

Onboarding Events

Paywall and Experiment Events

Other Events


Batching Behavior

The SDK batches events on the client to minimize network overhead:
Events are also flushed immediately when the app enters the background, ensuring no data loss during session transitions.

Webhook Triggers

Certain ingestion events automatically trigger webhooks if configured on your account:
Webhook delivery is asynchronous and does not affect ingestion latency. See the Webhooks documentation for payload format and retry policy.