OpenRouter batch has no results download; Sume has a URL per job

OpenRouter batch results come inline on GET /batches/:id with no download endpoint. Sume returns a result_url per job and a batch result read over MCP.

4 min readSume
All posts

OpenRouter's Batch API has no separate download step: when a batch completes, results is returned inline on GET /api/v1/batches/:id. Sume works per job instead. Each submit returns a result_url, and once the job is completed you read GET /v1/jobs/:id/result.

Sources: OpenRouter's Batch API quickstart and Sume's Jobs and results, read 2026-10-01.

Where does OpenRouter put the output?

The quickstart says that while a batch is in progress, or has failed, expired or been cancelled, results is null. On completion the array comes back in the same response, each entry mapped to its input by custom_id, with exactly one of response or error. The page states plainly: there is no separate results-download endpoint. List calls return metadata only, with results set to null.

Where does Sume put the output?

The submit response envelope carries status_url, result_url, events_url and cancel_url. GET /v1/jobs/:id/result is only for completed jobs and answers 409 job_not_completed otherwise. The result payload includes public artifact URLs, which are Sume-hosted media, not raw provider URLs.

Reading results, read 2026-10-01: https://docs.sume.com/workflows/jobs-and-results
QuestionOpenRouter Batch APISume jobs
Unit of workOne batch with many requestsOne job per request
Where results areInline in GET /batches/:idGET /v1/jobs/:id/result
Download endpointNoneresult_url from the submit envelope
Not ready yetresults is null409 job_not_completed

How do I read many Sume jobs at once?

Over MCP, jobs_result with several ids returns a job_result_batch: results[] in request order, one entry per id, each with ok plus either value or a typed error. Partial success is normal. For waiting, the docs prefer one batch wait after parallel fan-outs instead of N single waits. See MCP jobs wait for long video jobs.

What should I do over plain HTTP?

Keep the job ids you submitted, poll each status_url until terminal is true, then read each result_url once result_ready is true. If you lost the ids, GET /v1/jobs lists workspace jobs filterable by status and type.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume