---
title: "Instagram Webhook Receive"
method: POST
path: "/oauth/instagram/webhook"
tags: ["oauth"]
---

# Instagram Webhook Receive

`POST /oauth/instagram/webhook`

## Request

- Base URL: `https://api.reeldrop.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.reeldrop.io/oauth/instagram/webhook`
- Auth: none declared

Receive real-time webhook events from Meta (comments, DMs, story replies).

Meta requires HTTP 200 within 5 seconds, so the engine cannot run inline here —
but it must not run *after* the response either. On Vercel the process is frozen
the instant the response is written (same reason main.py flushes Sentry
per-request), so a FastAPI BackgroundTask can be killed mid-flight; because we
already returned 200, Meta never redelivers and the event is gone for good.

So: verify the signature, put the event on a durable queue *before* ACKing, and
let the automation-worker Lambda drive it back through /webhook/process. If the
enqueue fails we 5xx, which is what makes Meta retry.

## Headers

- `x-hub-signature-256` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/reeldrop/apis/reeldrop-api.md) · [All operations](https://skmtc.dev/reeldrop/apis/reeldrop-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reeldrop/apis/reeldrop-api/revisions/d3b2a338556c?raw)
