List an app's lifecycle events and their delivery
get/v1/teams/{team_id}/apps/{app_id}/deliveries
Requires an API key
Oldest first after the after cursor (an event sequence). Events go to the app's webhook_url as signed POSTs (Ivora-Signature: t=<unix>,v1=<hex HMAC-SHA256 of '<t>.<body>'> with the webhook secret), retried with backoff for about a day, at least once: deduplicate by event id. For a project-limited developer only their projects' events, and only when the app is active in none outside them.
Path parameters
- team_idstringRequiredPattern
^team_[0-9a-f]{32}$ - app_idstringRequiredPattern
^app_[0-9a-f]{32}$
Query parameters
- afterintegerDefault
0· Minimum 0 - limitintegerDefault
50· Minimum 1 · Maximum 100
Returns · 200
- dataarray of AppDeliveryRequired
Child attributes
- sequenceintegerRequiredUse the last one as the cursor (after) of the next page.
- idstringRequiredThe event id the receiver deduplicates by (Ivora-Event-Id).
- typeenumRequiredOne of
app.installed,app.uninstalled,app.scopes_changed - app_idstringRequired
- install_idstringRequired
- tenant_idintegerRequired
- created_atstringRequired
- dataobjectRequired
- statusenumRequiredOne of
pending,delivered,failed - attemptsintegerRequired
- last_statusinteger | nullRequiredThe receiver's last HTTP status, when it answered.
- last_errorstring | nullRequired
- next_attempt_atstring | nullRequiredWhen the next attempt is due, while pending.
GET /v1/teams/{team_id}/apps/{app_id}/deliveries
curl --fail-with-body "https://api.ivoracharge.com/v1/teams/team_0123456789abcdef0123456789abcdef/apps/app_0123456789abcdef0123456789abcdef/deliveries" \
-H "Authorization: Bearer $IVORA_API_KEY"Response · 200JSON
{
"data": [
{
"sequence": 1,
"id": "id_0123456789abcdef",
"type": "app.installed",
"app_id": "app_0123456789abcdef",
"install_id": "install_0123456789abcdef",
"tenant_id": 1042,
"created_at": "2026-09-30T17:00:00Z",
"data": {},
"status": "pending",
"attempts": 1,
"last_status": 1,
"last_error": "string",
"next_attempt_at": "2026-09-30T17:00:00Z"
}
]
}Requires an approved production API keyProduction access starts with a request, a short meeting with Ivora and a card on file, after which Ivora staff grant your account access. How to request access
Try itproduction · api.ivoracharge.com
Paste a production api key (iv_live_…). Create keys in Developer tools. The key stays in this page's memory, is sent only to https://api.ivoracharge.com and clears when you reload. Test keys are refused.



