SDK-key ingest from your apps: sessions, delivery receipts, custom events and the batching /v1/ingest route, plus the two admin reads over what arrived — recent events and the event catalogue. Custom events are the only ingest path with a rate limit (500 per app per 5 seconds).
List recent custom events
The most recent custom events your apps sent, newest first, with their
properties parsed and the user's external id resolved. limit is capped at 1000, offset pages
back through them, and total is the count for the whole app, not for this page.
path Parameters
app_idquery Parameters
limitoffsetList recent custom events › Responses
Recent events and the app's total count
Record custom events
Accepts up to 50 custom events per request with per-item partial
acceptance: valid items are recorded and the rest come back counted in dropped_reasons
rather than failing the whole batch. There are no standard event names — every event is
whatever your app calls it.
Each event may carry idempotency_key; retrying the same event returns the stored event
with duplicate: true, while reusing the key for different content is reported as a
per-item idempotency-conflict drop. Authenticate with either an SDK key or a writable
REST key; send only one credential header.
Rate limit: 500 events per app per 5 seconds. Over that the whole request is refused
with 429 and a Retry-After: 5 header, and nothing in it is stored.
path Parameters
app_idRecord custom events › Responses
Counts of accepted and dropped events, with per-reason drops
List the custom event catalogue
The distinct event names seen in the last days (default 30, max 400) with a
count and a last-seen for each — the names a segment or a journey trigger can actually use, since
OpenPush has no standard event vocabulary.
path Parameters
app_idquery Parameters
daysList the custom event catalogue › Responses
Event names with counts and last-seen
Post SDK delivery receipts
The SDK receipt route. Each item in events carries type, app,
message_id and token; type is one of received, confirmed, clicked,
iam_impression, iam_click or iam_page_impression. The SDK key is checked against
every app named in the batch, so receipts can never cross tenants.
This is a counter, not a validator: it answers {accepted, dropped}. A malformed item, an
unknown message, an unknown token, or a receipt that was already recorded is counted in
dropped rather than failing the request — so a 200 here does not mean every item
landed.
iam_page_impression is accepted but no shipping SDK emits it; do not build a report
on those rows.
Post SDK delivery receipts › Request Body
SDK receipt items; invalid items are counted as dropped.
Post SDK delivery receipts › Responses
Counts of accepted and dropped receipts