Crea una key, lista conversaciones, envía una respuesta, registra un webhook. Sin install de SDK. Los SDKs son endulzante.
Abre Ajustes → API Keys, haz clic en Nueva key, ponle label, elige scopes. Copia una vez. Las keys que empiezan con ir_live_ envían mensajes reales. Las que empiezan con ir_test_ nunca lo hacen.
# .env
IR_API_KEY=ir_live_3f2a...Cada endpoint de lista usa cursor pagination. Pasa ?cursor= para la siguiente página. Máximo 100 por llamada.
curl https://instantreply.up.railway.app/v1/conversations \
-H "Authorization: Bearer $IR_API_KEY"POST un mensaje a una conversación. Con una test key la llamada devuelve un 201 falso y nunca toca Meta. Con una live key la plataforma maneja entrega, reintentos y compliance.
curl -X POST https://instantreply.up.railway.app/v1/conversations/$ID/messages \
-H "Authorization: Bearer $IR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "content": "Thanks for reaching out." }'La respuesta incluye un signing secret (whsec_...). Verifica el header X-IR-Signature en cada payload. Las entregas fallidas reintentan con backoff exponencial por 30 días.
curl -X POST https://instantreply.up.railway.app/v1/webhooks \
-H "Authorization: Bearer $IR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/ir",
"events": ["message.received", "conversation.closed"]
}'