Concept

Request Execution

Request execution is the lifecycle of a durable request from accepted input to completed or failed result.

Why it matters

A direct API call can disappear when the process exits. A durable request keeps its id, status, attempts, and result.

How ReqRun approaches it

ReqRun stores request metadata and the processing payload required to run the request, claims work through a worker lock, and exposes status through GET /v1/requests/{id}.

TypeScript
const response = await reqrun.chat.completions.create({
  model: "gpt-5-nano",
  messages: [{ role: "user", content: "Run the agent task." }],
  wait: false,
  idempotency_key: "agent-task-991",
});

if (response.object === "chat.completion.async") {
  const request = await reqrun.requests.get(response.id);
  console.log(request.status, request.attempts);
}

Common mistakes

Do not treat async request ids as OpenAI chat completion ids. ReqRun request ids start with rr_.