# Skill: effect/active-word-box — "הדגשת מילה בריבוע" (Active-word box)

The word being spoken sits on a coloured rounded box that jumps from word to word.
המילה שנאמרת יושבת על ריבוע צבעוני מעוגל שקופץ ממילה למילה.

Category: Text animations · אנימציות טקסט · a real preview: https://media.gpt.org.il/lookbook/effects/active-word-box.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/active-word-box             // x-wait-ms: 110000
{
  "video_url": "https://media.gpt.org.il/samples/sample-he.mp4",
  "params": {
    "position": "center"
  }
}
```

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": "active-word-box",
      "params": {
        "position": "center"
      }
    }
  ],
  "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 |
|---|---|---|---|
| `box_color` | `"#D0F808"` | string | The box behind the spoken word |
| `text_color` | `"#111111"` | string | The spoken word's colour on the box |
| `color` | `"#FFFFFF"` | string | The other words' colour |
| `radius` | `30` | 0–50 | Box corner radius, % of the letter size (50 = a full pill) |
| `active_scale` | `1.08` | 1–1.5 | How much the spoken word grows |
| `size` | `6.4` | 3–14 | Letter size, % of the frame height |
| `words` | `4` | 2–8 | Words per caption |
| `font` | `"Rubik"` | string | Font family — GET /v1/studio/fonts |
| `position` | `"bottom"` | `top` · `center` · `bottom` | Where the captions sit |

GET `/v1/effects/active-word-box` 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.
