Retrieve batch
client.Batches.Get(ctx, batchID) (*Batch, error)
get /batches/{batch_id}
Retrieves a batch.
Parameters
batchID string
Returns
-
type Batch struct{…}-
ID string -
CompletionWindow stringThe time frame within which the batch should be processed.
-
CreatedAt int64The Unix timestamp (in seconds) for when the batch was created.
-
Endpoint stringThe OpenAI API endpoint used by the batch.
-
InputFileID stringThe ID of the input file for the batch.
-
Object BatchThe object type, which is always
batch.const BatchBatch Batch = "batch"
-
Status BatchStatusThe current status of the batch.
-
const BatchStatusValidating BatchStatus = "validating" -
const BatchStatusFailed BatchStatus = "failed" -
const BatchStatusInProgress BatchStatus = "in_progress" -
const BatchStatusFinalizing BatchStatus = "finalizing" -
const BatchStatusCompleted BatchStatus = "completed" -
const BatchStatusExpired BatchStatus = "expired" -
const BatchStatusCancelling BatchStatus = "cancelling" -
const BatchStatusCancelled BatchStatus = "cancelled"
-
-
CancelledAt int64The Unix timestamp (in seconds) for when the batch was cancelled.
-
CancellingAt int64The Unix timestamp (in seconds) for when the batch started cancelling.
-
CompletedAt int64The Unix timestamp (in seconds) for when the batch was completed.
-
ErrorFileID stringThe ID of the file containing the outputs of requests with errors.
-
Errors BatchErrors-
Data []BatchError-
Code stringAn error code identifying the error type.
-
Line int64The line number of the input file where the error occurred, if applicable.
-
Message stringA human-readable message providing more details about the error.
-
Param stringThe name of the parameter that caused the error, if applicable.
-
-
Object stringThe object type, which is always
list.
-
-
ExpiredAt int64The Unix timestamp (in seconds) for when the batch expired.
-
ExpiresAt int64The Unix timestamp (in seconds) for when the batch will expire.
-
FailedAt int64The Unix timestamp (in seconds) for when the batch failed.
-
FinalizingAt int64The Unix timestamp (in seconds) for when the batch started finalizing.
-
InProgressAt int64The Unix timestamp (in seconds) for when the batch started processing.
-
Metadata MetadataSet 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 stringModel ID used to process the batch, like
gpt-5-2025-08-07. 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. -
OutputFileID stringThe ID of the file containing the outputs of successfully executed requests.
-
RequestCounts BatchRequestCountsThe request counts for different statuses within the batch.
-
Completed int64Number of requests that have been completed successfully.
-
Failed int64Number of requests that have failed.
-
Total int64Total number of requests in the batch.
-
-
Usage 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.
-
InputTokens int64The number of input tokens.
-
InputTokensDetails BatchUsageInputTokensDetailsA detailed breakdown of the input tokens.
-
CachedTokens int64The number of tokens that were retrieved from the cache. More on prompt caching.
-
-
OutputTokens int64The number of output tokens.
-
OutputTokensDetails BatchUsageOutputTokensDetailsA detailed breakdown of the output tokens.
-
ReasoningTokens int64The number of reasoning tokens.
-
-
TotalTokens int64The total number of tokens used.
-
-
Example
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("My API Key"),
)
batch, err := client.Batches.Get(context.TODO(), "batch_id")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", batch.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
}
}