# Batch Send

Submit multiple raw Solana transactions in a single request using a compact binary format. Reduces per-request overhead when you have multiple transactions ready to send.

## Request

| Field        | Value                             |
| ------------ | --------------------------------- |
| Method       | `POST`                            |
| Path         | `/api/sendBatch?c=<YOUR_API_KEY>` |
| Content-Type | `application/octet-stream`        |
| Body         | Binary-encoded transaction batch  |

## Limits

| Constraint                 | Value        |
| -------------------------- | ------------ |
| Max transactions per batch | 16           |
| Min transaction size       | 66 bytes     |
| Max transaction size       | 1,232 bytes  |
| Max body size              | 19,744 bytes |

## Wire Format

The body is a concatenation of length-prefixed transactions. No JSON, no separators.

```
[len_hi][len_lo][tx_bytes...][len_hi][len_lo][tx_bytes...]...
```

Each length prefix is a big-endian `u16` indicating the size of the following transaction bytes.

## Response

Returns an empty body with `200 OK` when all transactions are accepted.

| Status | Meaning                                                           |
| ------ | ----------------------------------------------------------------- |
| `200`  | All accepted                                                      |
| `400`  | Framing error, size violation, parse failure, or insufficient tip |
| `401`  | Invalid or missing API key                                        |
| `429`  | Rate limited                                                      |
| `500`  | Internal error                                                    |

All error responses are plain text with a descriptive message.

## Partial Success

`sendBatch` is **stream-processed** — transactions are forwarded as they are parsed. If transaction N fails, transactions 1 through N-1 may already be accepted. There is no rollback.

Always track transaction signatures client-side before submitting so you can reconcile partial success.

## When to Use

Use Batch Send when you have multiple transactions ready to submit and want to minimize HTTP round trips. Keep batch sizes small (2–8) to simplify retry logic around partial failures.

For single transactions, use [JSON-RPC](/nozomi/transaction-submission-json-rpc.md) or [API v2](/nozomi/transaction-submission-api-v2.md) instead.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://use.temporal.xyz/nozomi/batch-send.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
