> ## 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_video_unsupported

> Video input is not supported on v1 embeddings — submit text or image_url parts.

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

## When it fires

The `input` content-parts array on `POST /v1/embeddings` (or `POST /v1/embeddings/estimate`) contains a `video_url` part. As of 2026-05-24, video input is no longer accepted on the v1 embeddings surface.

The previously published `embedding_pricing.video` rate on `GET /v1/models` has been removed too — the published rate never actually fired because the provider folds video frames into the **visual** billing bucket. To avoid a contract where customers pay one rate while reading another, we removed the input shape entirely. Submit videos through a frame-extraction pipeline of your own and embed the frames as `image_url` parts at the visual rate.

## How to fix it

Drop the `video_url` part from your request. If you need to embed visual content from a video, extract a representative frame (or frames) and submit them as `image_url`:

```typescript theme={null}
// Before — REJECTED
await client.embeddings.create({
  model: "aurous-embed-vision-1.0",
  input: [
    { type: "text", text: "Scene caption" },
    { type: "video_url", video_url: { url: "https://.../clip.mp4" } }, // ✗
  ],
});

// After — extract a representative frame in your pipeline
await client.embeddings.create({
  model: "aurous-embed-vision-1.0",
  input: [
    { type: "text", text: "Scene caption" },
    { type: "image_url", image_url: { url: "https://.../clip-frame-0.jpg" } },
  ],
});
```

The `image_url` part bills at the **visual** rate published on `embedding_pricing.visual.credits_per_M`.

## Why the change

A live probe on 2026-05-24 confirmed that BytePlus's multimodal embedding extracts frames from `video_url` input and bills the frames as visual tokens. The `embedding_pricing.video` rate documented on `/v1/models` never actually fired — every video\_url part billed as visual. Keeping the input shape while removing the published rate would have meant customers paid one rate for input they submitted under another rate's contract. Removing the shape entirely keeps the receipt honest.

This is a breaking change for any caller that pinned the input shape. Zero customers were affected at release time.

## Example response

```json theme={null}
{
  "error": {
    "type": "invalid_request",
    "code": "embeddings_video_unsupported",
    "message": "Video input is not supported on v1 embeddings. Submit text or image_url parts; the visual rate applies to image inputs.",
    "param": "input",
    "doc_url": "https://docs.aurous-labs.com/errors#embeddings_video_unsupported",
    "request_id": "req_01HXMQ7Z3K8Y2ABCDEFGHJKM"
  }
}
```

No credits are charged for a request rejected at this gate.

## Related

* [Multimodal](/api-reference/embeddings/multimodal) — the input shape and the full caps table.
* [Embeddings pricing](/api-reference/embeddings/pricing) — text + visual rates.
* [`embeddings_input_too_many_items`](/api-reference/errors/embeddings_input_too_many_items) — the general 16-part and 8-image caps.
* [Changelog 2026-05-24](/changelog) — full migration notes.
