OpenAI API 参考(字段级)
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending
.mdto the page URL.
Create batch
post /batches
Creates and executes a batch from an uploaded file of requests
Body Parameters
completion_window: "24h"The time frame within which the batch should be processed. Currently only
24his supported."24h"
endpoint: "/v1/responses" or "/v1/chat/completions" or "/v1/embeddings" or 5 moreThe endpoint to be used for all requests in the batch. Currently
/v1/responses,/v1/chat/completions,/v1/embeddings,/v1/completions,/v1/moderations,/v1/images/generations,/v1/images/edits, and/v1/videosare supported. Note that/v1/embeddingsbatches are also restricted to a maximum of 50,000 embedding inputs across all requests in the batch."/v1/responses""/v1/chat/completions""/v1/embeddings""/v1/completions""/v1/moderations""/v1/images/generations""/v1/images/edits""/v1/videos"
input_file_id: stringThe ID of an uploaded file that contains requests for the new batch.
See upload file for how to upload a file.
Your input file must be formatted as a JSONL file, and must be uploaded with the purpose
batch. The file can contain up to 50,000 requests, and can be up to 200 MB in size.metadata: optional Metadata or nullSet of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
output_expires_after: optional object \{ anchor, seconds \}The expiration policy for the output and/or error file that are generated for a batch.
anchor: "created_at"Anchor timestamp after which the expiration policy applies. Supported anchors:
created_at. Note that the anchor is the file creation time, not the time the batch is created."created_at"
seconds: numberThe number of seconds after the anchor time that the file will expire. Must be between 3600 (1 hour) and 2592000 (30 days).
Returns
Batch object \{ id, completion_window, created_at, 19 more \}id: stringcompletion_window: stringThe time frame within which the batch should be processed.
created_at: numberThe Unix timestamp (in seconds) for when the batch was created.
endpoint: stringThe OpenAI API endpoint used by the batch.
input_file_id: stringThe ID of the input file for the batch.
object: "batch"The object type, which is always
batch."batch"
status: "validating" or "failed" or "in_progress" or 5 moreThe current status of the batch.
"validating""failed""in_progress""finalizing""completed""expired""cancelling""cancelled"
cancelled_at: optional numberThe Unix timestamp (in seconds) for when the batch was cancelled.
cancelling_at: optional numberThe Unix timestamp (in seconds) for when the batch started cancelling.
completed_at: optional numberThe Unix timestamp (in seconds) for when the batch was completed.
error_file_id: optional stringThe ID of the file containing the outputs of requests with errors.
errors: optional object \{ data, object \}data: optional array of BatchErrorcode: optional stringAn error code identifying the error type.
line: optional number or nullThe line number of the input file where the error occurred, if applicable.
message: optional stringA human-readable message providing more details about the error.
param: optional string or nullThe name of the parameter that caused the error, if applicable.
object: optional stringThe object type, which is always
list.
expired_at: optional numberThe Unix timestamp (in seconds) for when the batch expired.
expires_at: optional numberThe Unix timestamp (in seconds) for when the batch will expire.
failed_at: optional numberThe Unix timestamp (in seconds) for when the batch failed.
finalizing_at: optional numberThe Unix timestamp (in seconds) for when the batch started finalizing.
in_progress_at: optional numberThe Unix timestamp (in seconds) for when the batch started processing.
metadata: optional Metadata or nullSet of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
model: optional stringModel ID used to process the batch, like
gpt-6-astra. OpenAI offers a wide range of models with different capabilities, performance characteristics, and price points. Refer to the model guide to browse and compare available models.output_file_id: optional stringThe ID of the file containing the outputs of successfully executed requests.
request_counts: optional BatchRequestCountsThe request counts for different statuses within the batch.
completed: numberNumber of requests that have been completed successfully.
failed: numberNumber of requests that have failed.
total: numberTotal number of requests in the batch.
usage: optional BatchUsageRepresents token usage details including input tokens, output tokens, a breakdown of output tokens, and the total tokens used. Only populated on batches created after September 7, 2025.
input_tokens: numberThe number of input tokens.
input_tokens_details: object \{ cached_tokens \}A detailed breakdown of the input tokens.
cached_tokens: numberThe number of tokens that were retrieved from the cache. More on prompt caching.
output_tokens: numberThe number of output tokens.
output_tokens_details: object \{ reasoning_tokens \}A detailed breakdown of the output tokens.
reasoning_tokens: numberThe number of reasoning tokens.
total_tokens: numberThe total number of tokens used.
Example
curl https://api.openai.com/v1/batches \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"completion_window": "24h",
"endpoint": "/v1/responses",
"input_file_id": "input_file_id"
}'Response
{
"id": "id",
"completion_window": "completion_window",
"created_at": 0,
"endpoint": "endpoint",
"input_file_id": "input_file_id",
"object": "batch",
"status": "validating",
"cancelled_at": 0,
"cancelling_at": 0,
"completed_at": 0,
"error_file_id": "error_file_id",
"errors": {
"data": [
{
"code": "code",
"line": 0,
"message": "message",
"param": "param"
}
],
"object": "object"
},
"expired_at": 0,
"expires_at": 0,
"failed_at": 0,
"finalizing_at": 0,
"in_progress_at": 0,
"metadata": {
"foo": "string"
},
"model": "model",
"output_file_id": "output_file_id",
"request_counts": {
"completed": 0,
"failed": 0,
"total": 0
},
"usage": {
"input_tokens": 0,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 0,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 0
}
}Example
curl https://api.openai.com/v1/batches \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_file_id": "file-abc123",
"endpoint": "/v1/chat/completions",
"completion_window": "24h"
}'Response
{
"id": "batch_abc123",
"object": "batch",
"endpoint": "/v1/chat/completions",
"errors": null,
"input_file_id": "file-abc123",
"completion_window": "24h",
"status": "validating",
"output_file_id": null,
"error_file_id": null,
"created_at": 1711471533,
"in_progress_at": null,
"expires_at": null,
"finalizing_at": null,
"completed_at": null,
"failed_at": null,
"expired_at": null,
"cancelling_at": null,
"cancelled_at": null,
"request_counts": {
"total": 0,
"completed": 0,
"failed": 0
},
"metadata": {
"customer_id": "user_123456789",
"batch_description": "Nightly eval job",
}
}