OpenAI Batch API

Create large batches of API requests to run asynchronously.

Operations 4

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /batches Submit a batch of requests from a file · Create batch #
Ask an LLM
“How do I run a large file of API requests asynchronously as a batch?”
“What completion window can I choose for a batch?”
Tell an agent
Run batch file {input_file_id} against {endpoint} within {completion_window}.
Submit {input_file_id} as a batch to {endpoint} with a {completion_window} window, tagged {metadata}.
GET /batches List my organization's batches · List batches #
Ask an LLM
“Which batch jobs has my organization submitted?”
“Can I page through older batches?”
Tell an agent
List our batches.
Show the next {limit} batches after {after}.
GET /batches/{batch_id} Check the status of a batch · Retrieve batch #
Ask an LLM
“Has my batch finished, and where is its output file?”
“How many requests in a batch have failed so far?”
Tell an agent
Show batch {batch_id}.
Check the progress of batch {batch_id}.
POST /batches/{batch_id}/cancel Cancel an in-progress batch · Cancel batch #
Ask an LLM
“How do I stop a batch that is still running?”
“Do I keep partial results if I cancel a batch?”
Tell an agent destructive · confirm first
Cancel batch {batch_id}.
Stop the running batch {batch_id} and keep whatever finished.

Documentation

📖
Documentation
https://platform.openai.com/docs/assistants/overview
📖
Documentation
https://platform.openai.com/docs/api-reference/assistants
📖
Documentation
https://platform.openai.com/docs/guides/text-to-speech
📖
Documentation
https://platform.openai.com/docs/api-reference/audio
📖
Documentation
https://platform.openai.com/docs/guides/speech-to-text
📖
Documentation
https://developers.openai.com/api/docs/guides/audio/
📖
Documentation
https://developers.openai.com/api/docs/guides/voice-agents/
📖
Documentation
https://platform.openai.com/docs/api-reference/chat
📖
Documentation
https://platform.openai.com/docs/guides/embeddings
📖
Documentation
https://platform.openai.com/docs/api-reference/embeddings
📖
Documentation
https://platform.openai.com/docs/api-reference/files
📖
Documentation
https://platform.openai.com/docs/guides/fine-tuning
📖
Documentation
https://platform.openai.com/docs/api-reference/fine-tuning
📖
Documentation
https://platform.openai.com/docs/guides/images
📖
Documentation
https://platform.openai.com/docs/api-reference/images
📖
Documentation
https://platform.openai.com/docs/guides/image-generation
📖
Documentation
https://platform.openai.com/docs/guides/images-vision
📖
Documentation
https://platform.openai.com/docs/models
📖
Documentation
https://platform.openai.com/docs/api-reference/models
📖
Documentation
https://platform.openai.com/docs/assistants/how-it-works/managing-threads-and-messages
📖
Documentation
https://platform.openai.com/docs/api-reference/threads
📖
Documentation
https://platform.openai.com/docs/api-reference/completions

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openai:openai-batch-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openai-batch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Openai Batch API
  version: 2.3.0
  contact:
    name: OpenAI Support
    url: https://help.openai.com/
  license:
    name: MIT
    identifier: MIT
  termsOfService: https://openai.com/policies/terms-of-use
  description: 'Operations tagged Batch across 2 of this provider''s published API definitions: openai-openapi-master-2026-09-23.yml, openai-openapi-master-2026-10-12.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.openai.com/v1
security:
- ApiKeyAuth: []
tags:
- name: Batch
  description: Create large batches of API requests to run asynchronously.
paths:
  /batches:
    post:
      summary: Create batch
      description: Creates and executes a batch from an uploaded file of requests
      operationId: createBatch
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBatchRequest'
      responses:
        '200':
          description: Batch created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
      x-oaiMeta:
        group: batch
        examples:
          request:
            curl: "curl https://api.openai.com/v1/batches \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"input_file_id\": \"file-abc123\",\n    \"endpoint\": \"/v1/chat/completions\",\n    \"completion_window\": \"24h\"\n  }'\n"
            python: "from openai import OpenAI\nclient = OpenAI()\n\nclient.batches.create(\n  input_file_id=\"file-abc123\",\n  endpoint=\"/v1/chat/completions\",\n  completion_window=\"24h\"\n)\n"
            javascript: "import OpenAI from \"openai\";\n\nconst openai = new OpenAI();\n\nasync function main() {\n  const batch = await openai.batches.create({\n    input_file_id: \"file-abc123\",\n    endpoint: \"/v1/chat/completions\",\n    completion_window: \"24h\"\n  });\n\n  console.log(batch);\n}\n\nmain();\n"
          response: "{\n  \"id\": \"batch_abc123\",\n  \"object\": \"batch\",\n  \"endpoint\": \"/v1/chat/completions\",\n  \"errors\": null,\n  \"input_file_id\": \"file-abc123\",\n  \"completion_window\": \"24h\",\n  \"status\": \"validating\",\n  \"output_file_id\": null,\n  \"error_file_id\": null,\n  \"created_at\": 1711471533,\n  \"in_progress_at\": null,\n  \"expires_at\": null,\n  \"finalizing_at\": null,\n  \"completed_at\": null,\n  \"failed_at\": null,\n  \"expired_at\": null,\n  \"cancelling_at\": null,\n  \"cancelled_at\": null,\n  \"request_counts\": {\n    \"total\": 0,\n    \"completed\": 0,\n    \"failed\": 0\n  },\n  \"metadata\": {\n    \"customer_id\": \"user_123456789\",\n    \"batch_description\": \"Nightly eval job\",\n  }\n}\n"
    get:
      operationId: listBatches
      tags:
      - Batch
      summary: List batches
      description: List your organization's batches.
      parameters:
      - in: query
        name: after
        required: false
        schema:
          type: string
        description: 'A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.

          '
      - name: limit
        in: query
        description: 'A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.

          '
        required: false
        schema:
          type: integer
          default: 20
      responses:
        '200':
          description: Batch listed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBatchesResponse'
      x-oaiMeta:
        group: batch
        examples:
          request:
            curl: "curl https://api.openai.com/v1/batches?limit=2 \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\" \\\n  -H \"Content-Type: application/json\"\n"
            python: 'from openai import OpenAI

              client = OpenAI()


              client.batches.list()

              '
            javascript: "import OpenAI from \"openai\";\n\nconst openai = new OpenAI();\n\nasync function main() {\n  const list = await openai.batches.list();\n\n  for await (const batch of list) {\n    console.log(batch);\n  }\n}\n\nmain();\n"
          response: "{\n  \"object\": \"list\",\n  \"data\": [\n    {\n      \"id\": \"batch_abc123\",\n      \"object\": \"batch\",\n      \"endpoint\": \"/v1/chat/completions\",\n      \"errors\": null,\n      \"input_file_id\": \"file-abc123\",\n      \"completion_window\": \"24h\",\n      \"status\": \"completed\",\n      \"output_file_id\": \"file-cvaTdG\",\n      \"error_file_id\": \"file-HOWS94\",\n      \"created_at\": 1711471533,\n      \"in_progress_at\": 1711471538,\n      \"expires_at\": 1711557933,\n      \"finalizing_at\": 1711493133,\n      \"completed_at\": 1711493163,\n      \"failed_at\": null,\n      \"expired_at\": null,\n      \"cancelling_at\": null,\n      \"cancelled_at\": null,\n      \"request_counts\": {\n        \"total\": 100,\n        \"completed\": 95,\n        \"failed\": 5\n      },\n      \"metadata\": {\n        \"customer_id\": \"user_123456789\",\n        \"batch_description\": \"Nightly job\",\n      }\n    },\n    { ... },\n  ],\n  \"first_id\": \"batch_abc123\",\n  \"last_id\": \"batch_abc456\",\n  \"has_more\": true\n}\n"
    servers:
    - url: https://api.openai.com/v1
  /batches/{batch_id}:
    get:
      operationId: retrieveBatch
      tags:
      - Batch
      summary: Retrieve batch
      description: Retrieves a batch.
      parameters:
      - in: path
        name: batch_id
        required: true
        schema:
          type: string
        description: The ID of the batch to retrieve.
      responses:
        '200':
          description: Batch retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
      x-oaiMeta:
        group: batch
        examples:
          request:
            curl: "curl https://api.openai.com/v1/batches/batch_abc123 \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n"
            python: 'from openai import OpenAI

              client = OpenAI()


              client.batches.retrieve("batch_abc123")

              '
            javascript: "import OpenAI from \"openai\";\n\nconst openai = new OpenAI();\n\nasync function main() {\n  const batch = await openai.batches.retrieve(\"batch_abc123\");\n\n  console.log(batch);\n}\n\nmain();\n"
          response: "{\n  \"id\": \"batch_abc123\",\n  \"object\": \"batch\",\n  \"endpoint\": \"/v1/completions\",\n  \"errors\": null,\n  \"input_file_id\": \"file-abc123\",\n  \"completion_window\": \"24h\",\n  \"status\": \"completed\",\n  \"output_file_id\": \"file-cvaTdG\",\n  \"error_file_id\": \"file-HOWS94\",\n  \"created_at\": 1711471533,\n  \"in_progress_at\": 1711471538,\n  \"expires_at\": 1711557933,\n  \"finalizing_at\": 1711493133,\n  \"completed_at\": 1711493163,\n  \"failed_at\": null,\n  \"expired_at\": null,\n  \"cancelling_at\": null,\n  \"cancelled_at\": null,\n  \"request_counts\": {\n    \"total\": 100,\n    \"completed\": 95,\n    \"failed\": 5\n  },\n  \"metadata\": {\n    \"customer_id\": \"user_123456789\",\n    \"batch_description\": \"Nightly eval job\",\n  }\n}\n"
    servers:
    - url: https://api.openai.com/v1
  /batches/{batch_id}/cancel:
    post:
      operationId: cancelBatch
      tags:
      - Batch
      summary: Cancel batch
      description: Cancels an in-progress batch. The batch will be in status `cancelling` for up to 10 minutes, before changing to `cancelled`, where it will have partial results (if any) available in the output file.
      parameters:
      - in: path
        name: batch_id
        required: true
        schema:
          type: string
        description: The ID of the batch to cancel.
      responses:
        '200':
          description: Batch is cancelling. Returns the cancelling batch's details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
      x-oaiMeta:
        group: batch
        examples:
          request:
            curl: "curl https://api.openai.com/v1/batches/batch_abc123/cancel \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST\n"
            python: 'from openai import OpenAI

              client = OpenAI()


              client.batches.cancel("batch_abc123")

              '
            javascript: "import OpenAI from \"openai\";\n\nconst openai = new OpenAI();\n\nasync function main() {\n  const batch = await openai.batches.cancel(\"batch_abc123\");\n\n  console.log(batch);\n}\n\nmain();\n"
          response: "{\n  \"id\": \"batch_abc123\",\n  \"object\": \"batch\",\n  \"endpoint\": \"/v1/chat/completions\",\n  \"errors\": null,\n  \"input_file_id\": \"file-abc123\",\n  \"completion_window\": \"24h\",\n  \"status\": \"cancelling\",\n  \"output_file_id\": null,\n  \"error_file_id\": null,\n  \"created_at\": 1711471533,\n  \"in_progress_at\": 1711471538,\n  \"expires_at\": 1711557933,\n  \"finalizing_at\": null,\n  \"completed_at\": null,\n  \"failed_at\": null,\n  \"expired_at\": null,\n  \"cancelling_at\": 1711475133,\n  \"cancelled_at\": null,\n  \"request_counts\": {\n    \"total\": 100,\n    \"completed\": 23,\n    \"failed\": 1\n  },\n  \"metadata\": {\n    \"customer_id\": \"user_123456789\",\n    \"batch_description\": \"Nightly eval job\",\n  }\n}\n"
    servers:
    - url: https://api.openai.com/v1
components:
  schemas:
    BatchFileExpirationAfter:
      type: object
      title: File expiration policy
      description: The expiration policy for the output and/or error file that are generated for a batch.
      properties:
        anchor:
          description: '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.'
          type: string
          enum:
          - created_at
          x-stainless-const: true
        seconds:
          description: The number of seconds after the anchor time that the file will expire. Must be between 3600 (1 hour) and 2592000 (30 days).
          type: integer
          format: int64
          minimum: 3600
          maximum: 2592000
      required:
      - anchor
      - seconds
    BatchError:
      type: object
      properties:
        code:
          type: string
          description: An error code identifying the error type.
        message:
          type: string
          description: A human-readable message providing more details about the error.
        param:
          anyOf:
          - type: string
            description: The name of the parameter that caused the error, if applicable.
          - type: 'null'
        line:
          anyOf:
          - type: integer
            description: The line number of the input file where the error occurred, if applicable.
          - type: 'null'
    CreateBatchRequest:
      type: object
      required:
      - input_file_id
      - endpoint
      - completion_window
      properties:
        input_file_id:
          type: string
          description: 'The ID of an uploaded file that contains requests for the new batch.


            See [upload file](https://developers.openai.com/api/reference/resources/files/methods/create) for how to upload a file.


            Your input file must be formatted as a [JSONL file](https://developers.openai.com/api/docs/guides/batch#1-prepare-your-batch-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.

            '
        endpoint:
          type: string
          enum:
          - /v1/responses
          - /v1/chat/completions
          - /v1/embeddings
          - /v1/completions
          - /v1/moderations
          - /v1/images/generations
          - /v1/images/edits
          - /v1/videos
          description: 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.
        completion_window:
          type: string
          enum:
          - 24h
          description: The time frame within which the batch should be processed. Currently only `24h` is supported.
        metadata:
          $ref: '#/components/schemas/Metadata'
        output_expires_after:
          $ref: '#/components/schemas/BatchFileExpirationAfter'
    BatchRequestCounts:
      type: object
      properties:
        total:
          type: integer
          description: Total number of requests in the batch.
        completed:
          type: integer
          description: Number of requests that have been completed successfully.
        failed:
          type: integer
          description: Number of requests that have failed.
      required:
      - total
      - completed
      - failed
      description: The request counts for different statuses within the batch.
    Batch:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
          enum:
          - batch
          description: The object type, which is always `batch`.
          x-stainless-const: true
        endpoint:
          type: string
          description: The OpenAI API endpoint used by the batch.
        model:
          type: string
          description: 'Model 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](https://developers.openai.com/api/docs/models) to browse and compare available models.

            '
        errors:
          type: object
          properties:
            object:
              type: string
              description: The object type, which is always `list`.
            data:
              type: array
              items:
                $ref: '#/components/schemas/BatchError'
        input_file_id:
          type: string
          description: The ID of the input file for the batch.
        completion_window:
          type: string
          description: The time frame within which the batch should be processed.
        status:
          type: string
          description: The current status of the batch.
          enum:
          - validating
          - failed
          - in_progress
          - finalizing
          - completed
          - expired
          - cancelling
          - cancelled
        output_file_id:
          type: string
          description: The ID of the file containing the outputs of successfully executed requests.
        error_file_id:
          type: string
          description: The ID of the file containing the outputs of requests with errors.
        created_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch was created.
        in_progress_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch started processing.
        expires_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch will expire.
        finalizing_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch started finalizing.
        completed_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch was completed.
        failed_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch failed.
        expired_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch expired.
        cancelling_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch started cancelling.
        cancelled_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch was cancelled.
        request_counts:
          $ref: '#/components/schemas/BatchRequestCounts'
        usage:
          type: object
          description: '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.

            '
          properties:
            input_tokens:
              type: integer
              description: The number of input tokens.
            input_tokens_details:
              type: object
              description: A detailed breakdown of the input tokens.
              properties:
                cached_tokens:
                  type: integer
                  description: 'The number of tokens that were retrieved from the cache. [More on

                    prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).

                    '
              required:
              - cached_tokens
            output_tokens:
              type: integer
              description: The number of output tokens.
            output_tokens_details:
              type: object
              description: A detailed breakdown of the output tokens.
              properties:
                reasoning_tokens:
                  type: integer
                  description: The number of reasoning tokens.
              required:
              - reasoning_tokens
            total_tokens:
              type: integer
              description: The total number of tokens used.
          required:
          - input_tokens
          - input_tokens_details
          - output_tokens
          - output_tokens_details
          - total_tokens
        metadata:
          $ref: '#/components/schemas/Metadata'
      required:
      - id
      - object
      - endpoint
      - input_file_id
      - completion_window
      - status
      - created_at
      x-oaiMeta:
        name: The batch object
        example: "{\n  \"id\": \"batch_abc123\",\n  \"object\": \"batch\",\n  \"endpoint\": \"/v1/chat/completions\",\n  \"model\": \"gpt-6-astra\",\n  \"errors\": null,\n  \"input_file_id\": \"file-abc123\",\n  \"completion_window\": \"24h\",\n  \"status\": \"completed\",\n  \"output_file_id\": \"file-cvaTdG\",\n  \"error_file_id\": \"file-HOWS94\",\n  \"created_at\": 1711471533,\n  \"in_progress_at\": 1711471538,\n  \"expires_at\": 1711557933,\n  \"finalizing_at\": 1711493133,\n  \"completed_at\": 1711493163,\n  \"failed_at\": null,\n  \"expired_at\": null,\n  \"cancelling_at\": null,\n  \"cancelled_at\": null,\n  \"request_counts\": {\n    \"total\": 100,\n    \"completed\": 95,\n    \"failed\": 5\n  },\n  \"usage\": {\n    \"input_tokens\": 1500,\n    \"input_tokens_details\": {\n      \"cached_tokens\": 1024\n    },\n    \"output_tokens\": 500,\n    \"output_tokens_details\": {\n      \"reasoning_tokens\": 300\n    },\n    \"total_tokens\": 2000\n  },\n  \"metadata\": {\n    \"customer_id\": \"user_123456789\",\n    \"batch_description\": \"Nightly eval job\",\n  }\n}\n"
    ListBatchesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Batch'
        first_id:
          type: string
          example: batch_abc123
        last_id:
          type: string
          example: batch_abc456
        has_more:
          type: boolean
        object:
          type: string
          enum:
          - list
          x-stainless-const: true
      required:
      - object
      - data
      - has_more
    Metadata:
      anyOf:
      - type: object
        description: '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.

          '
        additionalProperties:
          type: string
        x-oaiTypeLabel: map
      - type: 'null'
    _MisalignmentErrorType:
      anyOf:
      - type: string
      - type: string
        enum:
        - potentially_unintended_data_transfer
        - potentially_unintended_data_access
        - potentially_unintended_destructive_activity
        - other
    Error:
      type: object
      properties:
        code:
          anyOf:
          - type: string
          - type: 'null'
        message:
          type: string
        param:
          anyOf:
          - type: string
          - type: 'null'
        type:
          type: string
        misalignment:
          $ref: '#/components/schemas/MisalignmentErrorDetailsResource'
      required:
      - type
      - message
      - param
      - code
    MisalignmentErrorDetailsResource:
      properties:
        review_target:
          anyOf:
          - not:
              pattern: '[^A-Za-z0-9._~:-]'
            type: string
            maxLength: 96
            minLength: 1
            pattern: ^[A-Za-z0-9._~:-]+$
            description: An opaque target for explicitly continuing this review, or null when unavailable.
          - type: 'null'
        error_type:
          $ref: '#/components/schemas/_MisalignmentErrorType'
          description: An optional classification; clients must accept additional values.
        detailed_explanation:
          type: string
          description: The public explanation for this block.
        steer:
          $ref: '#/components/schemas/_MisalignmentSteer'
          description: An optional public continuation instruction.
      type: object
      required: []
    Batch_2:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
          enum:
          - batch
          description: The object type, which is always `batch`.
          x-stainless-const: true
        endpoint:
          type: string
          description: The OpenAI API endpoint used by the batch.
        model:
          type: string
          description: 'Model 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](https://developers.openai.com/api/docs/models) to browse and compare available models.

            '
        errors:
          type:
          - object
          - 'null'
          properties:
            object:
              type: string
              description: The object type, which is always `list`.
            data:
              type: array
              items:
                $ref: '#/components/schemas/BatchError'
        input_file_id:
          type: string
          description: The ID of the input file for the batch.
        completion_window:
          type: string
          description: The time frame within which the batch should be processed.
        status:
          type: string
          description: The current status of the batch.
          enum:
          - validating
          - failed
          - in_progress
          - finalizing
          - completed
          - expired
          - cancelling
          - cancelled
        output_file_id:
          type:
          - string
          - 'null'
          description: The ID of the file containing the outputs of successfully executed requests.
        error_file_id:
          type:
          - string
          - 'null'
          description: The ID of the file containing the outputs of requests with errors.
        created_at:
          type: integer
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch was created.
        in_progress_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch started processing.
        expires_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch will expire.
        finalizing_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch started finalizing.
        completed_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch was completed.
        failed_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch failed.
        expired_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch expired.
        cancelling_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch started cancelling.
        cancelled_at:
          type:
          - integer
          - 'null'
          format: unixtime
          description: The Unix timestamp (in seconds) for when the batch was cancelled.
        request_counts:
          $ref: '#/components/schemas/BatchRequestCounts'
        usage:
          type: object
          description: '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.

            '
          properties:
            input_tokens:
              type: integer
              description: The number of input tokens.
            input_tokens_details:
              type: object
              description: A detailed breakdown of the input tokens.
              properties:
                cached_tokens:
                  type: integer
                  description: 'The number of tokens that were retrieved from the cache. [More on

                    prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).

                    '
              required:
              - cached_tokens
            output_tokens:
              type: integer
              description: The number of output tokens.
            output_tokens_details:
              type: object
              description: A detailed breakdown of the output tokens.
              properties:
                reasoning_tokens:
                  type: integer
                  description: The number of reasoning tokens.
              required:
              - reasoning_tokens
            total_tokens:
              type: integer
              description: The total number of tokens used.
          required:
          - input_tokens
          - input_tokens_details
          - output_tokens
          - output_tokens_details
          - total_tokens
        metadata:
          $ref: '#/components/schemas/Metadata'
      required:
      - id
      - object
      - endpoint
      - input_file_id
      - completion_window
      - status
      - created_at
      x-oaiMeta:
        name: The batch object
        example: "{\n  \"id\": \"batch_abc123\",\n  \"object\": \"batch\",\n  \"endpoint\": \"/v1/chat/completions\",\n  \"model\": \"gpt-6-astra\",\n  \"errors\": null,\n  \"input_file_id\": \"file-abc123\",\n  \"completion_window\": \"24h\",\n  \"status\": \"completed\",\n  \"output_file_id\": \"file-cvaTdG\",\n  \"error_file_id\": \"file-HOWS94\",\n  \"created_at\": 1711471533,\n  \"in_progress_at\": 1711471538,\n  \"expires_at\": 1711557933,\n  \"finalizing_at\": 1711493133,\n  \"completed_at\": 1711493163,\n  \"failed_at\": null,\n  \"expired_at\": null,\n  \"cancelling_at\": null,\n  \"cancelled_at\": null,\n  \"request_counts\": {\n    \"total\": 100,\n    \"completed\": 95,\n    \"failed\": 5\n  },\n  \"usage\": {\n    \"input_tokens\": 1500,\n    \"input_tokens_details\": {\n      \"cached_tokens\": 1024\n    },\n    \"output_tokens\": 500,\n    \"output_tokens_details\": {\n      \"reasoning_tokens\": 300\n    },\n    \"total_tokens\": 2000\n  },\n  \"metadata\": {\n    \"customer_id\": \"user_123456789\",\n    \"batch_description\": \"Nightly eval job\"\n  }\n}\n"
    _MisalignmentSteer:
      properties:
        message:
          type: string
          description: The public continuation instruction.
      type: object
      required:
      - message
    ErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
      required:
      - error
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
    AdminApiKeyAuth:
      type: http
      scheme: bearer
x-refined-from:
- openai-openapi-master-2026-09-23.yml
- openai-openapi-master-2026-10-12.yml
x-oaiMeta:
  groups:
  - id: audio
    title: Audio
    description: 'Learn how to turn audio into text or text into audio.


      Related guide: [Speech to text](/docs/guides/speech-to-text)

      '
    sections:
    - type: endpoint
      key: createSpeech
      path: createSpeech
    - type: endpoint
      key: createTranscription
      path: createTranscription
    - type: endpoint
      key: createTranslation
      path: createTranslation
  - id: chat
    title: Chat
    description: 'Given a list of messages comprising a conversation, the model will return a response.


      Related guide: [Chat Completions](/docs/guides/text-generation)

      '
    sections:
    - type: endpoint
      key: createChatCompletion
      path: create
    - type: object
      key: CreateChatCompletionResponse
      path: object
    - type: object
      key: CreateChatCompletionStreamResponse
      path: streaming
  - id: embeddings
    title: Embeddings
    description: 'Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.


      Related guide: [Embeddings](/docs/guides/embeddings)

      '
    sections:
    - type: endpoint
      key: createEmbedding
      path: create
    - type: object
      key: Embedding
      path: object
  - id: fine-tuning
    title: Fine-tuning
    description: 'Manage fine-tuning jobs to tailor a model to your specific training data.


      Related guide: [Fine-tune models](/docs/guides/fine-tuning)

      '
    sections:
    - type: endpoint
      key: createFineTuningJob
      path: create
    - type: endpoint
      key: listPaginatedFineTuningJobs
      path: list
    - type: endpoint
      key: listFineTuningEvents
      path: list-events
    - type: endpoint
      key: retrieveFineTuningJob
      path: retrieve
    - type: endpoint
      key: cancelFineTuningJob
      path: cancel
    - type: object
      key: FineTuningJob
      path: object
    - type: object
      key: FineTuningJobEvent
      path: event-object
  - id: files
    title: Files
    description: 'Files are used to upload documents that can be used with features like [Assistants](/docs/api-reference/assistants) and [Fine-tuning](/docs/api-reference/fine-tuning).

      '
    sections:
    - type: endpoint
      key: createFile
      path: create
    - type: endpoint
      key: listFiles
      path: list
    - type: endpoint
      key: retrieveFile
      path: retrieve
    - type: endpoint
      key: deleteFile
      path: delete
    - type: endpoint
      key: downloadFile
      path: retrieve-contents
    - type: object
      key: OpenAIFile
      path: object


# --- truncated at 32 KB (37 KB total) ---
# Full source: https://artifacts.apis.io/openai/openapi/openai-batch-api-openapi.yml