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:

PathWhat you get
The post disappeared from Instagram and Wexio marks it deleted during a syncMinimal. 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 InstagramComplete. 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.deleted per 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.

On this page