Events
Every meaningful change is recorded as an immutable event — the same events that are pushed to your webhooks are queryable here forever. Use the events API to backfill state after downtime, audit history, or drive polling-based integrations.
Querying history
# everything, newest first
curl https://api.example.com/v2/porting/events \
-H "Authorization: Bearer pk_live_YOUR_KEY"
# filter by type and/or order
curl "https://api.example.com/v2/porting/events?type=porting_order.status_changed&porting_order_id={id}" \
-H "Authorization: Bearer pk_live_YOUR_KEY"
Each event: {id, type, order_id, payload, created_at} — payload is exactly
what was (or would have been) sent to your webhooks.
Republish
Missed something? Push any event to your currently registered endpoints again:
curl -X POST https://api.example.com/v2/porting/events/{event_id}/republish \
-H "Authorization: Bearer pk_live_YOUR_KEY"
Republishing sends to your current endpoint configuration, and does not create a new event.
Deliveries per event
GET /v2/porting/events/{event_id}/deliveries shows every webhook delivery
this event produced. For the account-wide delivery audit (filters, per-attempt
history, manual retry), see the Webhooks guide.
Recommended recovery pattern
After your webhook receiver has been down:
- Note the timestamp of your last processed
Porting-Event-Id. GET /v2/porting/eventsand page forward from that point.- Process events in order, using their ids for deduplication.
This is simpler and more reliable than republishing one event at a time.