> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.meshapi.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.meshapi.ai/_mcp/server.

# Get Batch

GET https://api.meshapi.ai/v1/batches/{batch_id}

Get batch status from the upstream provider.
Usage logging and billing fire automatically on the first terminal observation.
When the batch is completed and has an output file, the response includes a
`results` key with the parsed output (list of per-request response objects).

Reference: https://developers.meshapi.ai/api-reference/mesh-api/batch/get-batch

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: openapi
  version: 1.0.0
paths:
  /v1/batches/{batch_id}:
    get:
      operationId: get-batch
      summary: Get Batch
      description: >-
        Get batch status from the upstream provider.

        Usage logging and billing fire automatically on the first terminal
        observation.

        When the batch is completed and has an output file, the response
        includes a

        `results` key with the parsed output (list of per-request response
        objects).
      tags:
        - batch
      parameters:
        - name: batch_id
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Batch details
          content:
            application/json:
              schema:
                description: Any type
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
servers:
  - url: https://api.meshapi.ai
    description: Production Server
components:
  schemas:
    ValidationErrorLocItems:
      oneOf:
        - type: string
        - type: integer
      title: ValidationErrorLocItems
    ValidationErrorCtx:
      type: object
      properties: {}
      title: ValidationErrorCtx
    ValidationError:
      type: object
      properties:
        loc:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorLocItems'
        msg:
          type: string
        type:
          type: string
        input:
          description: Any type
        ctx:
          $ref: '#/components/schemas/ValidationErrorCtx'
      required:
        - loc
        - msg
        - type
      title: ValidationError
    HTTPValidationError:
      type: object
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
      title: HTTPValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

```

## Examples



**Request**

```json
{}
```

**Response**

```json
{
  "id": "batch_9f8d7c6b4a2e4f1d8b3c9e7a5f0d1234",
  "object": "batch",
  "endpoint": "/v1/chat/completions",
  "model": "gpt-5.4-2026-03-05",
  "input_file_id": "file-7XyPq9LmN3bVtR2sQwEjZ6",
  "completion_window": "24h",
  "status": "in_progress",
  "created_at": 1715126400,
  "in_progress_at": 1715126460,
  "expires_at": 1715212800,
  "request_counts": {
    "total": 2,
    "completed": 1,
    "failed": 0
  },
  "usage": {
    "input_tokens": 450,
    "output_tokens": 1200,
    "total_tokens": 1650,
    "input_tokens_details": {
      "cached_tokens": 50
    },
    "output_tokens_details": {
      "reasoning_tokens": 300
    }
  },
  "metadata": {
    "job_name": "customer-support-batch-0424"
  }
}
```

**SDK Code**

```python Successful batch details response
import requests

url = "https://api.meshapi.ai/v1/batches/batch_id"

payload = {}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.get(url, json=payload, headers=headers)

print(response.json())
```

```javascript Successful batch details response
const url = 'https://api.meshapi.ai/v1/batches/batch_id';
const options = {
  method: 'GET',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Successful batch details response
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.meshapi.ai/v1/batches/batch_id"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("GET", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Successful batch details response
require 'uri'
require 'net/http'

url = URI("https://api.meshapi.ai/v1/batches/batch_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"

response = http.request(request)
puts response.read_body
```

```java Successful batch details response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.meshapi.ai/v1/batches/batch_id")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```php Successful batch details response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.meshapi.ai/v1/batches/batch_id', [
  'body' => '{}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Successful batch details response
using RestSharp;

var client = new RestClient("https://api.meshapi.ai/v1/batches/batch_id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Successful batch details response
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.meshapi.ai/v1/batches/batch_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```