# Skill: effect/kinetic-cards — "טיפוגרפיה קינטית" (Kinetic typography cards)

1–3 spoken words per card in rotating display fonts and colours, each card replacing the last on the word.
1–3 מילים בכל כרטיס, גופן וצבע מתחלפים, כל כרטיס מחליף את הקודם בדיוק על המילה.

Category: Text animations · אנימציות טקסט · a real preview: https://media.gpt.org.il/lookbook/effects/kinetic-cards.mp4?v=mv19exzc
Price: **61 credits per finished minute**: the render (1 credit per second of 1080p output) + the transcript of the speech (≈ 1 a minute; none with `transcript_id` or `words`). Combined with captions, a hook or other effects: still one render, nothing more for combining.

Base URL: `https://apihub.co.il` · Auth: `Authorization: Bearer <API key>` · Docs: `/docs` (group "Video Effects")
Send `X-Tag: <job name>` on every call of one video; `GET /v1/usage?tag=<job name>` returns what it cost.
**Files are kept 24 hours** — download the finished video.

---

## 1. On its own — one call

```jsonc
POST /v1/effects/kinetic-cards             // x-wait-ms: 110000
{
  "video_url": "https://media.gpt.org.il/samples/sample-he.mp4"
}
```

A normal render: `status: processing` → poll `GET /v1/executions/{id}` until `completed`, then read `output.url`.

When it plays: the whole video — no timing fields.

## 2. With captions, a hook and other effects — the same render

```jsonc
POST /v1/studio/edit               // x-wait-ms: 110000
{
  "video_url": "<the video>",
  "language_code": "he",
  "effects": [
    {
      "id": "kinetic-cards"
    }
  ],
  "audio": {
    "normalize": true
  },
  "output": {
    "aspect_ratio": "9:16",
    "resolution": "1080",
    "fit": "crop",
    "quality": "high"
  }
}
```

`effects` is a list: add more entries for more effects. The engine applies them by pipeline stage (cuts and time →
camera → grade and looks → overlays → text and captions → sound), never by their order in the list. An edit has one
`transition`, one `color` grade, one `music` bed, one `speed` and one caption style: two effects that set the same
one are refused with a message that names them.

## 3. Params

| param | default | range / options | what it does |
|---|---|---|---|
| `grouping` | `2` | 1–3 | Words per card |
| `color` | `"#FFFFFF"` | string | Text colour of every other card |
| `accent` | `"#D0F808"` | string | Text colour of the cards between them, and the box behind numbers |
| `size` | `9.5` | 4–16 | Letter size, % of the frame height |

GET `/v1/effects/kinetic-cards` returns the same as JSON (with the full body schema). Every field has a default; numbers
outside their range are refused with the field's name.
