# 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](https://use.temporal.xyz/nozomi/transaction-submission-json-rpc) or [API v2](https://use.temporal.xyz/nozomi/transaction-submission-api-v2) instead.
