Skip to main content

Overview

Two families of endpoints are available:
  • Dashboard analytics (/api/v1/analytics/*) — the aggregated KPI, timeseries, funnel, retention, and activity data that backs the console dashboard. These use Customer JWT authentication (Authorization: Bearer <token>) and are scoped to the authenticated user’s tenant_id and app_id. They power the console UI, so response shapes track the dashboard.
  • Event export (/api/v1/sdk/events/export*) — raw SDK event access for your own pipelines. These authenticate with an API key that has the export_data permission (x-api-key header), the stable programmatic surface.
All endpoints are scoped to a single tenant_id + app_id. There is no way to query across tenants or applications.

Dashboard Analytics

Analytics data has a processing delay of up to ~5 minutes from event ingestion.

KPI Dashboard

Authentication: Customer JWT Returns the KPI tiles configured for the dashboard, each with current/previous values and a sparkline. Query parameters (all optional): Response:
metric is one of the supported metric identifiers (see Metric identifiers). trend is up, down, or flat.

KPI Timeseries

Authentication: Customer JWT Returns one series per requested metric at the requested granularity. Query parameters: Response:
When compare is set, each metric object also carries a compare_data array (same shape as data) and a compare_label. When segment is not overall, each point additionally carries a breakdown_value.

Funnel Analysis

Authentication: Customer JWT Returns the step-by-step conversion for a named funnel, for the latest available date. Path parameter: Response:

Retention Cohorts

Authentication: Customer JWT Returns retention curves per acquisition cohort. Query parameters (all optional): Response:
retention values are the percentage of the cohort still active on day N.

Activity Feed

Authentication: Customer JWT Returns the 20 most recent workspace activity entries (configuration changes, publishes, key rotations, and similar) — the feed shown on the dashboard. This endpoint takes no query parameters. Response:

Metric identifiers

kpis and kpis/timeseries accept these metric identifiers:

Event Export

Export raw SDK events for your own warehouse or analysis. All export endpoints authenticate with an API key that has the export_data permission, sent in the x-api-key header. Grant the permission when you create the key in the dashboard.
Export request dates use full ISO 8601 timestamps (e.g. 2026-02-01T00:00:00Z), not date-only strings.

Paginated export (synchronous)

Query parameters: Response:
Page through the result set with limit + offset until meta.hasMore is false.

Direct download

Streams the matching events as a single file. Same date/event filters as the paginated endpoint, plus a format parameter (json — default — or csv).

Async bulk export

For large windows, start an asynchronous export and be notified when it is ready. 1. Start the export
Request body:
event_names and callback_url are optional. The response is 202 Accepted with the export record:
2. Poll for status
Returns the same record; when status becomes completed, download_url and the summary fields below are populated. Export record fields: 3. Download the export Once status is completed, fetch the file from the download_url:
Streams the exported events as a JSON attachment (Content-Disposition: attachment; filename="export-{id}.json"). Returns 409 if the export is not yet completed or has passed its expires_at, and 404 for an unknown id. Uses the same x-api-key + export_data auth. 4. Optional callback If you supplied a callback_url, AppDNA sends a POST to it when the export completes or fails:
Download URLs are time-limited. Fetch the file before expires_at; after it expires, start a new export.

Event schema

Returns the event schema (event names and their known properties) for the app, so you can build a stable ingestion mapping before exporting.