OpenAI Agents API vs a custom agent API for async runs
OpenAI's Agents API keeps durable sessions; Sume Agent Completions return a 202 receipt to poll or receive by webhook. Where each fits, and how they differ.

They solve different problems, so the choice is about what you need managed. OpenAI's Agents API manages sessions, orchestration, context compaction, and recovery for an agent you configure. Sume's Agent Completions run the Sume Agent, with its sandbox, tools and media generation, on a task you send each time and return a 202 receipt you poll.
What is each one, in the vendors' words?
OpenAI's overview describes an OpenAI-managed API where your application provides tools and chooses its execution environment. Its changelog lists the public beta on 2026-09-10.
Sume's docs describe an Agent Completion as running the Sume Agent on an ad-hoc prompt, the same runtime as the Agents chat UI, reachable from your backend with an API key.
How do the two differ on the points that decide it?
This table only restates each page; it does not rank them.
| Point | OpenAI Agents API | Sume Agent Completions |
|---|---|---|
| Status | Public beta | Documented as shipped, with a Not available yet list |
| Sessions | Durable | Each completion runs in a fresh thread |
| Learning the result | Stream or webhooks | Poll the receipt or an agent.run.terminal webhook; no streaming yet |
| Tools | Configured at session setup | Sume Agent tools, MCP bridge, media generation |
Is a Sume completion a chat completion?
No. The docs say it is not a synchronous chat completion, because a real agent turn opens a sandbox and may generate media. The create call returns 202 with a receipt. The request borrows OpenAI's messages[] shape, but the response is a run receipt, not choices[].
What must a Sume run set up front?
You must set a ceiling per run: generation_spend_cap_usd has no default, and omitting it fails the request with 400 invalid_request. Size it with the metered rates on the API pricing page. OpenAI's overview says its API bills at model rates plus tool and container fees.
Which one fits which job?
If you want OpenAI to manage the session and you bring your own tools, OpenAI's page describes that. If you want to hand a task to the Sume Agent and get back generated media with durable media.sume.com URLs, Sume's Agent Completions do that, and Formats fit when only the inputs change between runs.
Neither excludes the other. Read the Not available yet list on Sume's page and OpenAI's beta notes before you commit a workflow to either.
What does polling look like?
Poll GET /v1/agent-runs/{id} with your key. Statuses are queued, processing, completed, failed and canceled. A completed run fills output, by default the sume/action-run-output/v1 shape with the closing text in output.text, and POST /v1/agent-runs/{id}/cancel stops a run in flight.
Sources
Related posts
More in Developers
- 429 after a traffic spike: ramp up generation jobs in waves
Anthropic warns a sharp usage increase can trigger 429 acceleration limits. For Sume jobs, size each wave from generation_limits and the in-flight budget.
- Activepieces 10-minute flow timeout and long Sume video jobs
Activepieces Cloud caps a flow run at 10 active minutes. Submit the Sume job async, pause the flow, and resume on the result instead of polling in a loop.
- Activepieces subflow retried: keep Sume jobs from billing twice
A retried Activepieces subflow can re-run your Sume submit. Derive the Idempotency-Key from a stable input, not the attempt, so a retry returns the same job.
- Activepieces sync webhook 408 at 30 seconds: use Sume async
An Activepieces /sync webhook returns 408 when no response arrives in 30 seconds. Call Sume in async mode, which answers 202 with a job id at once.
Written by Sume