The body works fine in single responses.create() calls.
Problem:
When submitted via the Batch API, the job fails validation with the error that input is missing. My understanding is that input is not required when calling a saved prompt — but Batch seems to treat it as mandatory.
Question:
Can the Batch API actually be used with the Responses endpoint when the request body only references a saved prompt?
Or is this currently unsupported, meaning Batch requires the input parameter regardless?
Would be great to get confirmation on whether this is expected behavior or a bug.
The problem is, when using reusable prompts, it’s pointless to submit body.modelon each individual batch request because I already chose a model when I was defining my reusable prompt and, what’s more, models may differ per prompt version in my case which makes things even more complicated. So the question is: is there a way to skip the parameter body.model or assign it anything like a default value?
I can confirm that I’ve successfully used the batch API with a reusable prompt ID, using /v1/responses API.
You need an “input” (user input), and you can provide a reusable system prompt using the “prompt” object containing an “id” just like in the normal real-time API.
this is really confusing. the reusable Responses/prompts currently allow for templating in the prompt so we can pass in variables when we call these prompts via the standard responses.create api. But suddenly when it comes to the batch API, we can’t do that and should be providing user input?
this is an inconsistent paradigm in which the saved prompts are, in the batch api case, meant to be like “system prompts” but in the responses.create case, framed as encapsulating a prompt+user input together.