Enviar mensaje directo de Instagram

POST
/api/meta/instagram/send

Envía texto o un adjunto por URL (nunca ambos) a un contacto de una cuenta profesional de Instagram conectada. El body es el mismo que el de Messenger.

pageId es el IG user id de la cuenta profesional (page.metaPageId del webhook) y recipientId el IGSID del contacto (conversation.contactId). También acepta conversationId solo.

Instagram aplica su ventana de 24 horas y un máximo de 1000 bytes UTF-8 al texto (no aplica a los adjuntos).

Adjuntos que acepta Instagram (los valida Meta al descargar la URL, no Resender):

typeFormatosMáximo
imagepng, jpeg8 MB
audioaac, m4a, wav, mp425 MB
videomp4, ogg, avi, mov, webm25 MB
filepdf25 MB

Si Meta rechaza un adjunto en Instagram la respuesta no trae code estable (Meta no documenta subcodes de adjunto para este canal): el motivo va en error y la respuesta original de Graph en meta.

AuthorizationBearer <token>

API key opaca del tenant, creada en Settings → API Tokens. Una key revocada, inexistente o malformada responde 401 {"error":"unauthorized"}.

In: header

Header Parameters

Idempotency-Key?string

Clave elegida por el cliente (1–200 caracteres). Repetirla devuelve 200 con el resultado original y resender.idempotentReplay: true, sin volver a llamar a Meta. Una cabecera vacía o de más de 200 caracteres responde 400.

Length1 <= length <= 200
x-request-id?string

Identificador de correlación opcional que se copia a los logs del servidor.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Destino del envío. O conversationId solo, o pageId + recipientId (opcionalmente con conversationId, que debe coincidir con el par).

Exactamente uno de reply o attachment.

Exactamente uno de reply o attachment.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/meta/instagram/send" \  -H "Idempotency-Key: order-8841-confirmation" \  -H "Content-Type: application/json" \  -d '{    "pageId": "17841400000000000",    "recipientId": "1234567890123456",    "reply": "¡Hola! Tenemos ese modelo en talle 38 y 40."  }'
{  "meta": {    "message_id": "aWdfZG1faXRlbToxOklHTWVzc2FnZUlEOjE3ODQxNDAwMDAwMDAwMDAw"  },  "resender": {    "conversationId": "9a8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",    "messageId": "1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e",    "status": "sent"  }}