dimensions parameter to truncate the returned vector. Aurous Labs accepts the parameter on the wire and validates it against each model’s supported set (publishing 400 embeddings_unsupported_dimensions for out-of-set values), but on v1.0 the parameter is validated only — the upstream model is dispatched without it, and the response vector is always the model’s native dimension. True truncation will land in a future model version. Plan around the native dimension for now; we publish the supported set on each model row so your client can adapt without a redeploy when truncation ships.
Check which dimensions a model supports
CallGET /v1/models and read aurous_metadata.dimensions for the model row. The field is an array of supported integers (e.g. [1024, 2048]) or null when the model returns a fixed shape with no truncation support.
aurous_metadata.dimensions is null, do not send the dimensions parameter — the response vector will be the model’s native dimension.
When the array is populated, you may send dimensions set to one of those values. On v1.0 the request will succeed (the value passes the whitelist gate) but the response vector will still be the model’s native dimension — the parameter is reserved for the upcoming truncation rollout. Check data[0].embedding.length after the first successful call to see the actual shape. Picking a value NOT in the supported list returns 400 embeddings_unsupported_dimensions.
Why lower dimensions can be useful
When a model supports multiple dimensions, the tradeoff is storage cost vs retrieval quality:- Lower dimensions — smaller vectors. Cheaper to store at index scale, faster cosine similarity (every comparison touches fewer floats), and a smaller transfer footprint between your service and your vector database. Slight recall loss vs the native dimension — usually a few percent on a clean evaluation set, sometimes negligible in practice.
- Higher dimensions — richer semantic representation, best recall. The native dimension is what the model was trained to output, so it’s the default for accuracy-sensitive workloads.
Example 1 — recommended call for aurous-embed-vision-1.0 (no dimensions)
The day-1 embedding model returns its native dimension whether or not you pass dimensions. Omit the parameter and read the shape off the response:
Example 2 — what happens when you pass an unsupported value
Sendingdimensions: 512 to aurous-embed-vision-1.0 (whose supported set is [1024, 2048]):
400 happens before the model is called, so there’s nothing to refund. Fix the request and retry.
Forward compatibility
aurous_metadata.dimensions is the source of truth. When a future model with a different supported set ships, its row will list the supported values and the validator picks them up automatically. The error code stays the same; only the supported set changes. Read the metadata at request time (or cache it with a short TTL) so your client adapts without a redeploy.
Related
- Overview — embeddings surface and quick start.
- Multimodal — text + image + video parts in one request.
- Pricing — credit math and worked examples.
- Estimate — preview cost without charging.

