> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aurous-labs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# embeddings_batch_not_supported

> `input` was an array of strings; v1.0 multimodal embeddings reject batched-string input.

**Code**: `embeddings_batch_not_supported`
**HTTP status**: `400`
**Type**: `invalid_request`

## When it fires

You sent `input` as a `string[]` (array of strings) to `POST /v1/embeddings`. The v1.0 embedding surface explicitly rejects this shape.

OpenAI's API accepts `input: string[]` and returns one embedding per string (N→N batch semantics). Aurous Labs' multimodal embedding models concatenate batched text into **one** document and return a single combined vector — the opposite of what an OpenAI-trained customer would expect. Silently swapping semantics would cause subtle bugs in production code (a "100 documents embedded" call would return 1 unusable embedding), so the platform refuses the request at the DTO boundary.

## How to fix it

Pick one of two workarounds depending on what you actually want:

### If you want N→N batch (one embedding per item)

Loop client-side and send one request per item. Parallelize with `Promise.all` (Node) or `asyncio.gather` (Python) to keep throughput high. See [Multimodal — batch rejection](/api-reference/embeddings/multimodal#batch-rejection) for full SDK examples.

```typescript theme={null}
const documents = ["doc one", "doc two", "doc three"];
const results = await Promise.all(
  documents.map((text) =>
    client.embeddings.create({ model: "aurous-embed-vision-1.0", input: text }),
  ),
);
const vectors = results.map((r) => r.data[0].embedding);
```

### If you want ONE combined embedding for several text fragments

Pass them as content parts inside a single `input` array. The model will concatenate them into one document and return a single vector for the combined meaning:

```jsonc theme={null}
{
  "model": "aurous-embed-vision-1.0",
  "input": [
    { "type": "text", "text": "Title: Leather Messenger Bag" },
    { "type": "text", "text": "Description: Hand-stitched full-grain leather." },
    { "type": "text", "text": "Tags: bag, leather, messenger, full-grain" }
  ]
}
```

This is intentional, semantically meaningful, and accepted by the platform — the resulting vector represents all three fragments together as one point in vector space.

## Example response

```json theme={null}
{
  "error": {
    "type": "invalid_request",
    "code": "embeddings_batch_not_supported",
    "message": "input as an array of strings is not supported on v1. Loop client-side for N→N batch semantics, or pass a content-parts array to get one combined embedding.",
    "param": "input",
    "doc_url": "https://docs.aurous-labs.com/errors#embeddings_batch_not_supported",
    "request_id": "req_01HXMQ7Z3K8Y2VNABCDEFGHJKM"
  }
}
```

No credits are charged for a request rejected at the DTO boundary.

## Related

* [Multimodal — batch rejection](/api-reference/embeddings/multimodal#batch-rejection)
* [Embeddings overview](/api-reference/embeddings/overview)
* [Errors](/errors)
