SpyBara
Go Premium

go/resources/batches/methods/create/index.md 2026-07-10 23:02 UTC to 2026-07-12 06:58 UTC

44 added, 5 removed.

2026
Fri 17 17:00 Thu 16 20:57 Wed 15 02:58 Tue 14 06:58 Mon 13 15:59 Sun 12 06:58 Fri 10 23:02 Thu 9 20:58 Tue 7 08:02

Create batch

client.Batches.New(ctx, body) (*Batch, error)

post /batches

Creates and executes a batch from an uploaded file of requests

Parameters

  • body BatchNewParams

    • CompletionWindow param.Field[BatchNewParamsCompletionWindow]

      The time frame within which the batch should be processed. Currently only 24h is supported.

      • const BatchNewParamsCompletionWindow24h BatchNewParamsCompletionWindow = "24h"
    • Endpoint param.Field[BatchNewParamsEndpoint]

      The 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/videos are supported. Note that /v1/embeddings batches are also restricted to a maximum of 50,000 embedding inputs across all requests in the batch.

      • const BatchNewParamsEndpointV1Responses BatchNewParamsEndpoint = "/v1/responses"

      • const BatchNewParamsEndpointV1ChatCompletions BatchNewParamsEndpoint = "/v1/chat/completions"

      • const BatchNewParamsEndpointV1Embeddings BatchNewParamsEndpoint = "/v1/embeddings"

      • const BatchNewParamsEndpointV1Completions BatchNewParamsEndpoint = "/v1/completions"

      • const BatchNewParamsEndpointV1Moderations BatchNewParamsEndpoint = "/v1/moderations"

      • const BatchNewParamsEndpointV1ImagesGenerations BatchNewParamsEndpoint = "/v1/images/generations"

      • const BatchNewParamsEndpointV1ImagesEdits BatchNewParamsEndpoint = "/v1/images/edits"

      • const BatchNewParamsEndpointV1Videos BatchNewParamsEndpoint = "/v1/videos"

    • InputFileID param.Field[string]

      The 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 param.Field[Metadata]

      Set 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.

    • OutputExpiresAfter param.Field[BatchNewParamsOutputExpiresAfter]

      The expiration policy for the output and/or error file that are generated for a batch.

      • Anchor CreatedAt

        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.

        • const CreatedAtCreatedAt CreatedAt = "created_at"
      • Seconds int64

        The number of seconds after the anchor time that the file will expire. Must be between 3600 (1 hour) and 2592000 (30 days).

Returns

  • type Batch struct{…}

    • ID string

    • CompletionWindow string

      The time frame within which the batch should be processed.

    • CreatedAt int64

      The Unix timestamp (in seconds) for when the batch was created.

    • Endpoint string

      The OpenAI API endpoint used by the batch.

    • InputFileID string

      The ID of the input file for the batch.

    • Object Batch

      The object type, which is always batch.

      • const BatchBatch Batch = "batch"
    • Status BatchStatus

      The 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 int64

      The Unix timestamp (in seconds) for when the batch was cancelled.

    • CancellingAt int64

      The Unix timestamp (in seconds) for when the batch started cancelling.

    • CompletedAt int64

      The Unix timestamp (in seconds) for when the batch was completed.

    • ErrorFileID string

      The ID of the file containing the outputs of requests with errors.

    • Errors BatchErrors

      • Data []BatchError

        • Code string

          An error code identifying the error type.

        • Line int64

          The line number of the input file where the error occurred, if applicable.

        • Message string

          A human-readable message providing more details about the error.

        • Param string

          The name of the parameter that caused the error, if applicable.

      • Object string

        The object type, which is always list.

    • ExpiredAt int64

      The Unix timestamp (in seconds) for when the batch expired.

    • ExpiresAt int64

      The Unix timestamp (in seconds) for when the batch will expire.

    • FailedAt int64

      The Unix timestamp (in seconds) for when the batch failed.

    • FinalizingAt int64

      The Unix timestamp (in seconds) for when the batch started finalizing.

    • InProgressAt int64

      The Unix timestamp (in seconds) for when the batch started processing.

    • Metadata Metadata

      Set 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 string

      Model 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 string

      The ID of the file containing the outputs of successfully executed requests.

    • RequestCounts BatchRequestCounts

      The request counts for different statuses within the batch.

      • Completed int64

        Number of requests that have been completed successfully.

      • Failed int64

        Number of requests that have failed.

      • Total int64

        Total number of requests in the batch.

    • Usage BatchUsage

      Represents 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 int64

        The number of input tokens.

      • InputTokensDetails BatchUsageInputTokensDetails

        A detailed breakdown of the input tokens.

      • OutputTokens int64

        The number of output tokens.

      • OutputTokensDetails BatchUsageOutputTokensDetails

        A detailed breakdown of the output tokens.

        • ReasoningTokens int64

          The number of reasoning tokens.

      • TotalTokens int64

        The 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.New(context.TODO(), openai.BatchNewParams{
    CompletionWindow: openai.BatchNewParamsCompletionWindow24h,
    Endpoint: openai.BatchNewParamsEndpointV1Responses,
    InputFileID: "input_file_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
  }
}