> ## Documentation Index
> Fetch the complete documentation index at: https://askeditor.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tracked Title Card

> Pin frosted, notification-style cards to points IN THE WORLD of your video.

Pin frosted, notification-style cards to points IN THE WORLD of your video. Each card rides the camera motion exactly, holds constant screen size, and the subject genuinely passes IN FRONT of it (real occlusion via a subject matte). One card is a world-space title; several, staggered to the subject's glances with rising-pitch chimes, read as thoughts arriving on screen.

## See it

<Tabs>
  <Tab title="Output">
    <video controls muted loop playsinline preload="metadata" width="100%" poster="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/example-poster-v1.jpg" src="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/example-v1.mp4" />

    One handheld selfie clip in; four cards out, staggered to the subject's glances, each riding the camera and slipping behind him. Turn the sound on: every card lands with its own chime. This run's spec asked for four cards with self-referential copy and `rising` chimes.
  </Tab>

  <Tab title="Your input video">
    <video controls muted loop playsinline preload="metadata" width="100%" poster="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/material-poster-v1.jpg" src="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/material-v1.mp4" />
  </Tab>

  <Tab title="Side by side">
    <Columns cols={2}>
      <Frame caption="Your input video">
        <video controls muted loop playsinline preload="metadata" style={{width:"100%",aspectRatio:"16 / 9",objectFit:"contain",background:"rgba(127,127,127,0.10)",borderRadius:"6px"}} poster="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/material-poster-v1.jpg" src="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/material-v1.mp4" />
      </Frame>

      <Frame caption="Output">
        <video controls muted loop playsinline preload="metadata" style={{width:"100%",aspectRatio:"16 / 9",objectFit:"contain",background:"rgba(127,127,127,0.10)",borderRadius:"6px"}} poster="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/example-poster-v1.jpg" src="https://d7qhwxmzzmnbz.cloudfront.net/builtin-skills/tracked-title-card/example-v1.mp4" />
      </Frame>
    </Columns>
  </Tab>
</Tabs>

## Material

One subject with visible background texture near the subject's depth (a wall is ideal), up to 30 seconds. The camera should move at least a little: small handheld drift is enough, and it is what makes the cards feel welded to the scene. A locked-off tripod shot gives the effect nothing to prove.

## Spec

| Field    | Type                                  | Required | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| -------- | ------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `cards`  | array                                 | **yes**  | 1 to 4 cards. Each card: `name` (sender, shown bold), `message` (one line, no emoji), optional `avatarHue` (two RGB stops for the avatar gradient), optional `placement` (`graze-left` \| `graze-right` \| `stackOn:<index>` \| `backdrop`), optional `scale` (0.5-1.2; 1.0 at a graze spot, 0.8 for a background card), optional `tEnter` (seconds, 0-60; omit it and the cards stagger about 2.9s apart). Placements are measured from the subject matte, never guessed, so the subject's silhouette grazes the card instead of burying it. |
| `chimes` | enum (`rising` \| `single` \| `none`) | no       | 'rising' (default) plays one soft two-note chime per card, pitched up a step each time and easing down in volume as the cards pile up. 'single' uses one pitch for every card. 'none' leaves the source audio untouched.                                                                                                                                                                                                                                                                                                                      |

## Pricing & timing

|              |                                                                                |
| ------------ | ------------------------------------------------------------------------------ |
| **Delivery** | **File** — an mp4 at `outputUrl`, plus an editable canvas                      |
| Price        | 75 credits: [estimate](/docs/setting-up/jobs-and-polling) is free and authoritative |
| Typical run  | \~240s                                                                         |
| Review gate  | No: runs straight through                                                      |

## Refusals this template can return

* `NO_SUBJECT`
* `NO_TRACKABLE_BACKGROUND`
* `MATERIAL_TOO_LONG`
* `UNREADABLE`
* `BAD_SPEC`

Refusals are free and typed: see [Refusals](/docs/setting-up/refusals).

## Run it

<Tabs>
  <Tab title="curl (REST)">
    ```bash theme={null}
    # 1. mint an upload ticket, then put the file against it
    curl -X POST https://api.askeditor.com/v1/uploads \
      -H "Authorization: Bearer $ASKEDITOR_API_KEY" \
      -H "Content-Type: application/json" -d '{"purpose":"tracked-title-card"}'
    # → { "ticket": "upl_…", "uploadUrl": "…" }

    curl -X POST https://api.askeditor.com/v1/uploads/{ticket}/file \
      -F "file=@./recording.mp4"
    # → { "material": "mat_…" }

    # 2. submit the run
    curl -X POST https://api.askeditor.com/api/tracked-title-card/jobs \
      -H "Authorization: Bearer $ASKEDITOR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "material": "mat_…", "clientRequestId": "your-own-id", "cards": … }'
    # → { "jobId": "…", "envelopeId": "tracked-title-card:…", "credits": { "quoted": 75, "charged": 0 } }

    # 3. poll until it resolves
    curl https://api.askeditor.com/v1/jobs/{envelopeId} \
      -H "Authorization: Bearer $ASKEDITOR_API_KEY"
    ```

    `clientRequestId` is **required**: reuse the same value on a retry and you
    cannot be charged twice for the same run.
  </Tab>

  <Tab title="Agent (MCP)">
    Connected via the [MCP connector](/docs/mcp/connect)? It is one sentence:

    > "Run the **Tracked Title Card** template on \~/Desktop/recording.mp4"

    The agent lists the menu, estimates (free), asks your consent, uploads, runs,
    and polls [`GET /v1/jobs/{id}`](/docs/setting-up/jobs-and-polling) to the finished
    envelope.
  </Tab>
</Tabs>

**Editable delivery:** Delivers the finished mp4. The canvas form (base video, the tracked cards, and the subject cutout as separate live layers) ships with the card element; until then the card copy is baked.

<Note>
  The occlusion is the entire effect: cards render BEHIND the subject, so a head or hand crossing one sells that it lives in the scene. Cards without occlusion are lower-thirds, and this template refuses to be one.
</Note>

<Note>
  Charged on completion, never on submit: a refusal or a failure costs nothing. The posted price and ETA are measured from real runs on this surface, not estimated.
</Note>
