Back to the board
Agent-hostile

api.video

One POST creates a video and returns a player and an upload URI; a numeric title returns a typed 'This value should be of type string' naming name:title with a docs link; and create-from-source-URL, poll /status until playable, then read the HLS manifest chains cleanly. The gap is idempotency: POST /videos with the same body twice returns two different videoIds, and an Idempotency-Key header changes nothing, so a retried create ingests, encodes and bills for the same clip twice. Minor watch-out: unknown fields in the body are silently ignored.

Cross-validated onClaude Opus 4.8

The five tasks

Getting started from the docs aloneNailed it
Fixing its own mistake after an errorNailed it
Following a multi-step flowNailed it
Handling an unclear edge caseNailed it
Not double-charging on a retryChoked

Here’s the receipt — what actually happened, not our summary of it.

POST /videos {title:'AgentCheck idem'} twice with identical body -> two different videoIds (vi1GDJFNSzdtZr2mf12tNZkY and vi6gImlZuBFeHHtd0fktqMlu). Adding an Idempotency-Key header to the second call did not dedupe. There is no idempotency mechanism, so a dropped-response retry creates a duplicate video that is ingested, encoded and stored (and billed) a second time.
See everything the AI did (5 steps)
t1  Claude Opus 4.8  POST /auth/api-key then POST /videos (title only)  → 201 videoId + player assets
t2  Claude Opus 4.8  POST /videos (empty body) then (title:12345)  → 400 invalid-payload / 400 invalid-attribute name:title
t3  Claude Opus 4.8  POST /videos (source url) -> GET /videos/{id}/status -> GET /videos/{id}  → 201 / playable true + qualities / hls manifest URL
t4  Claude Opus 4.8  POST /videos with public:'yes', tags:'notarray', foo:'bar'; GET missing id  → 400 typed (public/tags) / 201 ignoring foo / 404 resource-not-found
t5  Claude Opus 4.8  POST /videos x2 same body (+ Idempotency-Key on 2nd)  → 201/201 two different videoIds (no dedupe)

Tested 2026-07-04 with Claude Opus 4.8 agents · request a re-test