Braze
Braze is a customer engagement platform used to orchestrate cross-channel messaging campaigns and analyze customer behavior.
ingestr supports Braze as a source.
URI format
braze://?api_key=<rest-api-key>&endpoint=<rest-endpoint>URI parameters:
api_keyis a Braze REST API key with access to the relevant export endpoints. You can create one in the Braze dashboard under Settings → APIs and Identifiers.endpointis your instance's REST endpoint host, e.g.rest.iad-01.braze.com. Braze is multi-instance, so the host depends on which cluster your account is on — find it in the dashboard or in the API overview. Thehttps://scheme is optional.
Here's a sample command that copies campaigns from Braze into a DuckDB database:
ingestr ingest \
--source-uri "braze://?api_key=YOUR_REST_API_KEY&endpoint=rest.iad-01.braze.com" \
--source-table "campaigns" \
--dest-uri duckdb:///braze.duckdb \
--dest-table "public.campaigns"Tables
Braze source allows ingesting the following resources into separate tables:
| Table | PK | Inc Key | Inc Strategy | Details |
|---|---|---|---|---|
| campaigns | id | last_edited | merge | Marketing campaigns (including archived) with their name, tags, and API flags. |
| canvases | id | last_edited | merge | Canvas (journey) definitions (including archived) with their name and tags. |
| segments | id | – | replace | Audience segments with their name and analytics-tracking flag. |
| events | event_name | – | replace | Names of the custom events tracked in the workspace. |
| products | product_id | – | replace | Product IDs seen in purchase events. |
| kpi_dau | time | time | merge | Daily active users by date. |
| kpi_mau | time | time | merge | Monthly active users (rolling 30-day) by date. |
| kpi_new_users | time | time | merge | New users by date. |
| kpi_uninstalls | time | time | merge | App uninstalls by date. |
Use these as the --source-table parameter in the ingestr ingest command.
Per-app KPIs
By default the kpi_* tables aggregate across all apps in the workspace. To break a KPI down by app, append a comma-separated list of app identifiers (found in the Braze dashboard under Settings → APIs and Identifiers) to the table name:
--source-table "kpi_dau:app-one-id,app-two-id"Each row is then tagged with an app_id column. This is only supported on kpi_* tables.
Incremental loading
campaigns, canvases, and the kpi_* tables load incrementally — use --interval-start and --interval-end to limit the data to a time range. When no interval is provided, the list tables fetch all records and the KPI tables fetch the most recent 100 days. The segments, events, and products tables are always fully refreshed.