Webhooks & APIOutbound
post.deleted
Emitted when an Instagram post is removed - with two different payload completenesses
type: post.deleted
Fired when a post is removed. It fires on a real transition only - a repeat delete against an already-deleted post emits nothing.
data shape
type Data = { post: PostPayload };How complete the payload is depends on how the post was removed. Two different paths emit this event:
| Path | What you get |
|---|---|
| The post disappeared from Instagram and Wexio marks it deleted during a sync | Minimal. id is populated; integrationId comes back as an empty string; channel, externalPostId, caption, username and the timestamps are absent. |
| The post is permanently removed in Wexio, after it was already gone from Instagram | Complete. The full record is in hand, so every field is present. |
Match on data.post.id and treat every other field as optional, whichever path you are handling.
Example envelope - minimal (sync path)
{
"id": "evt_01JV4QPS5DCJ8N1TS7E6Z9H2MX",
"type": "post.deleted",
"timestamp": "2026-04-24T15:00:00.000Z",
"data": {
"post": {
"id": "6805a0f1a6f9f35f6e66f2c0",
"integrationId": ""
}
},
"meta": {
"eventId": "evt_01JV4QPS5DCJ8N1TS7E6Z9H2MX",
"event": "post.deleted",
"occurredAt": "2026-04-24T15:00:00.000Z",
"organisationId": "6640f3d5c8a0d7e8b7f20222",
"connectionId": "6640f45ac8a0d7e8b7f2014a",
"apiVersion": "2026-04-01",
"attempt": 1
}
}Notes
- Comments cascade. The post's comments are deleted with it, and you do not receive a
comment.deletedper comment. Clean up your own copies from this single event. - A post can only be permanently removed in Wexio once it is already gone from Instagram, so the complete-payload path always follows a removal upstream.
Related
post.createdcomment.deleted- does not fire per comment on a post delete- Shared Types -
PostPayload