Create content
object
content:write and an Idempotency-Key header. Costs 1 credit for type: "slideshow", charged only on success.
201
402 with {"error": {"code": "insufficient_credits", "insufficient": true, ...}}.
List content
GET /v1/content — requires content:read. Up to 100 rows, newest first.
Get content
GET /v1/content/{id} — requires content:read.
Approve / reject
POST /v1/content/{id}/approve and POST /v1/content/{id}/reject — requires content:approve. Approve fails with 409 not_ready if status isn’t "ready" yet. See The approval gate.
Remix
POST /v1/content/{id}/remix — not yet wired (returns 501 not_implemented), for the same reason illustrated/hook_video generation isn’t. Mirrors the app’s own free remix (re-pick images, keep text) once it lands.