Skip to main content

Real-time webhook for native Instagram post creation with caption + media (not just post.external.created polling)

post.external.created / post.external.updated are great for catching natively-published Instagram posts, but they're poll-driven on roughly an hourly cycle. For any use case where an AI agent needs to react to a new post (e.g. auto-replying to comments with context-aware answers), an hour of lag is the difference between a useful bot and a customer wondering why nobody responded.

Request

A true webhook event — fired the instant a new Instagram post goes live, native or via Zernio — that includes:

Post/media ID

Caption (full text)

Media URL(s) (image/video/carousel items)

Permalink

Timestamp

Media type (feed/reel/carousel)

Effectively post.external.created but event-driven instead of poll-driven, since Meta's own webhook infrastructure already supports near-real-time delivery for comments — the same pattern should be applicable to media publish events.

Why this matters for your other customers, not just me

Anyone building comment-reply bots, moderation tools, or AI customer-service layers on top of Instagram needs the post's caption/media as context the moment the post exists — otherwise the bot is blind to what's being discussed in the comments for up to an hour after launch. This seems like a natural extension of the comment-webhook infrastructure you already have, just triggered on media creation instead of comment creation.

My specific use case

I'm building AI-powered comment-reply automation for local electronics retailers on Instagram. The bot needs the post caption + media the moment it's published so the AI has the right context to answer comments accurately — currently I either build a workaround poller or wait up to an hour, both of which hurt response quality/speed.

1 comment

Log in to comment and vote

Comments1

  • Miquel Palet López

    Team•

    Aug 26

    A true push event on publish is not something we can build: Meta's Instagram webhook fields are limited to comments, live_comments, mentions, messages and messaging_*, message_reactions and story_insights, and none of them fires when the account itself publishes media. Polling is the only way Meta lets anyone detect a native post.

    For the comment-bot use case, though, you should not need it. comment.received is delivered in real time off Meta's comments webhook and already carries the post context in the same payload (post.platformPostId, post.content, post.imageUrl, post.permalink), and if the post was never synced you can call POST /v1/posts/sync-external with the account id to pull caption, media items, permalink and media type on demand within seconds. Posts published through Zernio fire post.published immediately.

    We are keeping this open to look at tightening the native-post sync cadence, which is ours to change, and we will revisit a push event if Meta ever ships a media publish webhook.