Skip to main content
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 for full SDK examples.
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:
{
  "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

{
  "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_01HXMQ7Z3K8Y2ABCDEFGHJKM"
  }
}
No credits are charged for a request rejected at the DTO boundary.