---
title: "Stinger state of a vision mixer: its source, clips (with analysis and how each plays here), the cued clip, and the last take's measurements."
method: GET
path: "/api/flows/{flow_id}/blocks/{block_id}/stinger"
tags: ["flows"]
---

# Stinger state of a vision mixer: its source, clips (with analysis and how each plays here), the cued clip, and the last take's measurements.

`GET /api/flows/{flow_id}/blocks/{block_id}/stinger`

## Request

- The document declares no server URL.
- Auth: none declared

## Path parameters

- `flow_id` string, required
- `block_id` string, required

## Response `200`

Stinger state

- StingerState: Stinger state of one vision mixer.
  - `clips` StingerClip[], required
    - `analysis_error` string, nullable: Why the clip's analysis failed, when it did. It is not retried until the file changes or the library is reloaded.
    - `cut_point_ms` integer, nullable: Effective cut point for a classic take.
    - `downgraded_from` 'classic' | 'track_matte' | 'mask_only': How a stinger switches the program beneath the clip.
    - `file` string, required: Playlist entry (path or URI).
    - `index` integer, required: Playlist index on the stinger source.
    - `info` StingerClipInfo: What analysing a clip found.
      - `analysis_ms` integer, required: How long the analysis took.
      - `cover_peak` number, float, required
      - `cover_peak_ms` integer, nullable: Where the graphic covers the largest part of the frame, and how much (0..1). Taken from the graphic's alpha.
      - `detected_layout` 'auto' | 'classic' | 'side_by_side' | 'stacked' | 'mask_only', required: How a stinger clip lays out its graphic and matte.
      - `duration_ms` integer, required: Length of the clip.
      - `framerate_den` integer, required
      - `framerate_num` integer, required: Frame rate as a fraction.
      - `frames` integer, required: Number of decoded frames.
      - `has_alpha` boolean, required: Whether the decoded frames carry an alpha channel.
      - `height` integer, required
      - `matte_end_ms` integer, nullable
      - `matte_midpoint_ms` integer, nullable: Where the matte first shows more of the new source than the old.
      - `matte_start_ms` integer, nullable: Where the matte starts and finishes moving: the first frame with any of the new source, and the first with all of it.
      - `width` integer, required: Decoded frame size of the whole clip.
    - `missing` boolean: The clip's file is not on disk (deleted or renamed since it was added). Only a local file can be missing.
    - `settings` StingerClipSettings, required: Per-clip stinger settings, stored on the clip's Media Player.
      - `beneath` 'cut' | 'mix': What a classic stinger does to the program at its cut point.
      - `cut_point_ms` integer, nullable: Classic: how far into the clip the program changes. `None` takes it from the clip: the frame where the graphic covers most, or where the matte crosses half way.
      - `invert_matte` boolean: Swap black and white in the matte.
      - `layout` 'auto' | 'classic' | 'side_by_side' | 'stacked' | 'mask_only': How a stinger clip lays out its graphic and matte.
      - `mix_ms` integer: Classic: length of the mix beneath, when `beneath` is `mix`.
      - `premultiplied` boolean: The graphic's colour is premultiplied by its alpha (After Effects' "Premultiplied (Matted)" export).
    - `variant` 'classic' | 'track_matte' | 'mask_only': How a stinger switches the program beneath the clip.
  - `cued_index` integer, nullable: The clip a take plays when it names none.
  - `last_cue_ms` integer, nullable: How long the last cue took.
  - `last_take` StingerTakeReport: A finished take, with what was measured.
    - `cue_ms` integer, nullable: Time spent loading the clip, when the take had to cue it first.
    - `cut_point_ms` integer, nullable: Classic: where the program changed, into the clip.
    - `downgraded_from` 'classic' | 'track_matte' | 'mask_only': How a stinger switches the program beneath the clip.
    - `duration_ms` integer, required: Clip length.
    - `file` string, required
    - `frames_arrived` integer, required: Clip frames that reached it in time to go on air. A frame that arrives after its output frame is not counted: the mixer has already composited that frame without it.
    - `frames_expected` integer, required: Clip frames that should have reached the mixer.
    - `frames_late` integer, required: Clip frames, on the graphic or the matte pad, that reached the mixer after their time on air had begun.
    - `from_input` integer, required
    - `index` integer, required
    - `take_id` integer, required: The take this reports on, as returned by the take request.
    - `take_to_air_ms` number, double, required: Time from the take request to the clip's first frame on air.
    - `to_input` integer, required
    - `variant` 'classic' | 'track_matte' | 'mask_only', required: How a stinger switches the program beneath the clip.
    - `warning` string, nullable: Set when the take ran but did not go as planned, such as a classic clip whose frame at the cut point arrived late, so the program changed with no graphic over it. `None` is a clean take.
    - `worst_margin_ms` number, double, nullable: Smallest lead a clip frame had on its time on air; negative is late.
  - `matte_supported` boolean, required: Whether the matte variants run here (GPU mixer).
  - `preroll_ms` integer, required: Take-to-air delay.
  - `problem` string, nullable: Why stingers cannot run, when they cannot.
  - `ready` boolean, required: The cued clip is loaded and parked on its first frame.
  - `running` boolean, required: A take is on air.
  - `source_block_id` string, nullable: The Media Player wired to the stinger input.

## Other responses

- `400`: Invalid request

## Changes

- **2026-10-08** `2f2410c0296b`: 1 info
  - added the optional property `clips/items/analysis_error` to the response with the `200` status
- **2026-10-08** `d13f12490670`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/eyevinn/apis/strom-api/changes/api/flows/:flow_id/blocks/:block_id/stinger/get.md)

---

[API](https://skmtc.dev/eyevinn/apis/strom-api.md) - [All operations](https://skmtc.dev/eyevinn/apis/strom-api/llms.txt) - [OpenAPI document](https://skmtc.dev/eyevinn/apis/strom-api/revisions/8cd4dbc44175?raw)
