Layers
Partner APIAPI referenceContent

GET /v1/content/:containerId

Read one content container — status, approval, brief, and generated assets.

View as Markdown
GET/v1/content/:containerId
Phase 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

  • containerId
    string (uuid)required
    The container id.

Request

terminal
curl https://api.layers.com/v1/content/{containerId} \
  -H "X-Api-Key: $LAYERS_API_KEY"
get-container.ts
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();
get_container.py
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
  • queued
    statusoptional
    Created, awaiting the generator.
  • generating
    statusoptional
    Generation in-flight. Assets populate on completion.
  • completed
    statusoptional
    Ready to approve and schedule.
  • failed
    statusoptional
    See `lastError.code` and `lastError.message`. Regenerate to retry.
  • canceled
    statusoptional
    Workflow was canceled. Regenerate to try again.

Approval status

Approval status
  • not_required
    statusoptional
    Project policy does not require approval — content can be scheduled immediately.
  • pending
    statusoptional
    Default when the project requires approval. Blocks scheduling.
  • approved
    statusoptional
    Cleared for scheduling and publishing.
  • rejected
    statusoptional
    Blocked from scheduling. Regenerate to try again.

Errors

CodeWhen
NOT_FOUNDContainer id not in this org.
FORBIDDEN_SCOPEKey lacks content:read.

See also

On this page