GET /v1/content/:containerId
Read one content container — status, approval, brief, and generated assets.
GET
/v1/content/:containerIdPhase 1stable
- Auth
- Bearer
- Scope
- content:read
Returns the full container record: generation status, approval status, brief, caption, and the rendered media assets. Safe to call while a generation job is in-flight — fields that aren't populated yet are present as null or empty arrays. For live progress, prefer GET /v1/content/:containerId/progress or GET /v1/jobs/:jobId.
Path parameters
containerIdstring (uuid)requiredThe container id.
Request
curl https://api.layers.com/v1/content/{containerId} \
-H "X-Api-Key: $LAYERS_API_KEY"const res = await fetch(
`https://api.layers.com/v1/content/${containerId}`,
{ headers: { 'X-Api-Key': process.env.LAYERS_API_KEY! } },
);
const container = await res.json();import os, httpx
r = httpx.get(
f"https://api.layers.com/v1/content/{container_id}",
headers={"X-Api-Key": os.environ["LAYERS_API_KEY"]},
)
container = r.json()Responses
200Full container record.
{
"id": "cnt_01HXZ9...",
"projectId": "proj_01HX...",
"status": "completed",
"format": "video_remix",
"brief": {
"topic": "Your first 30 days of running",
"angle": "habit-building",
"cta": "Start today.",
"valuePropositions": ["consistency", "beginner-friendly"]
},
"caption": "Thirty days, one run at a time…",
"firstComment": null,
"assets": [
{
"assetId": "ast_01HXZ9...",
"kind": "video",
"url": "https://media.layers.com/.../ast_01HXZ9/video.mp4",
"thumbnailUrl": "https://media.layers.com/.../ast_01HXZ9/thumb.jpg",
"durationMs": 9200,
"width": 1080,
"height": 1920,
"mimeType": "video/mp4",
"sizeBytes": 1843200,
"checksumSha256": "e3b0c44298fc1c..."
}
],
"approvalStatus": "approved",
"createdAt": "2026-04-17T13:10:00Z",
"completedAt": "2026-04-17T13:14:22Z",
"failedAt": null,
"lastError": null
}404Container not in this org.
{ "error": { "code": "NOT_FOUND", "message": "Container not found.", "requestId": "req_..." } }Container status
Container status
queuedstatusoptionalCreated, awaiting the generator.generatingstatusoptionalGeneration in-flight. Assets populate on completion.completedstatusoptionalReady to approve and schedule.failedstatusoptionalSee `lastError.code` and `lastError.message`. Regenerate to retry.canceledstatusoptionalWorkflow was canceled. Regenerate to try again.
Approval status
Approval status
not_requiredstatusoptionalProject policy does not require approval — content can be scheduled immediately.pendingstatusoptionalDefault when the project requires approval. Blocks scheduling.approvedstatusoptionalCleared for scheduling and publishing.rejectedstatusoptionalBlocked from scheduling. Regenerate to try again.
Errors
| Code | When |
|---|---|
NOT_FOUND | Container id not in this org. |
FORBIDDEN_SCOPE | Key lacks content:read. |