embeddings_video_unsupported
HTTP status: 400
Type: invalid_request
When it fires
Theinput 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 thevideo_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:
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 fromvideo_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
Related
- Multimodal — the input shape and the full caps table.
- Embeddings pricing — text + visual rates.
embeddings_input_too_many_items— the general 16-part and 8-image caps.- Changelog 2026-05-24 — full migration notes.

