Guide

Webhook-Triggered LLM Requests

Webhook-triggered LLM requests use ReqRun inside your own handler; ReqRun does not receive or route the webhook itself.

Use the event id

Use the external webhook event id as idempotency_key. That makes repeated delivery safe.

TypeScript
await reqrun.chat.completions.create({
  model: "gpt-5-nano",
  messages: [{ role: "user", content: "Summarize webhook payload metadata." }],
  wait: false,
  idempotency_key: event.id,
});

Return quickly

Acknowledge the webhook after ReqRun accepts the request. Your application can inspect the result later by rr_ request id.