---
title: "Analyze framing"
method: POST
path: "/api/v1/projects/{projectId}/framing"
tags: ["Jobs"]
---

# Analyze framing

`POST /api/v1/projects/{projectId}/framing`

## Request

- Base URL: `https://prismclip.com`
- URL: `https://prismclip.com/api/v1/projects/{projectId}/framing`
- Auth: HTTP bearer

Create tracked framing for an owned ready moment set, including background proxy creation. Supports a passage subset and visual direction. Poll get_workflow; pass result.analysisId as crop_analysis_id to queue_render.

## Path parameters

- `projectId` string, uuid, required

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `moment_set_id` string, uuid, required
  - `segment_ids` string[]
  - `visual_direction` string, required

## Response `202`

Durable workflow state; poll get_workflow until terminal.

- object
  - `job` object, required
    - `id` string, uuid, required
    - `projectId` string, uuid, required
    - `kind` 'prepare' | 'framing' | 'generate', required
    - `status` string, required
    - `stage` string, required
    - `errorCategory` string, nullable, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `replayed` boolean, required
    - `pollAfterSeconds` integer, required
    - `result` object, required
      - `analysisId` string, uuid
      - `candidates` object[]
        - `id` string, uuid, required
        - `momentSetId` string, uuid, required
        - `title` string, required
        - `startMs` number, required
        - `endMs` number, required
        - `captions` boolean, required
      - `renders` object[]
        - `id` string, uuid, required
        - `momentSetId` string, uuid, required
        - `status` string, required
        - `downloadUrl` string, nullable, required
        - `previewUrl` string, nullable, required

## Other responses

- `400`: Invalid input.
- `401`: Authentication required.
- `402`: Source allowance exhausted.
- `403`: Required scope missing.
- `404`: Owned resource not found.
- `409`: Prerequisite unavailable or idempotency key reused with changed inputs.
- `429`: Rate limit exceeded.
- `503`: Processing unavailable.

---

[API](https://skmtc.dev/prismclip/apis/prismclip-api.md) · [All operations](https://skmtc.dev/prismclip/apis/prismclip-api/llms.txt) · [OpenAPI document](https://skmtc.dev/prismclip/apis/prismclip-api/revisions/05eda9436f1d?raw)
