---
title: "Get runtime statistics for a flow's pipeline."
method: GET
path: "/api/flows/{id}/rtp-stats"
tags: ["flows"]
---

# Get runtime statistics for a flow's pipeline.

`GET /api/flows/{id}/rtp-stats`

Returns RTP statistics from running pipeline elements, such as jitterbuffer
statistics for AES67 input blocks. The flow must be started and running
for statistics to be available.

## Path parameters

- `id` string, required

## Response `200`

RTP statistics retrieved successfully

- FlowStatsResponse — Response containing statistics for a running flow.
  - `blocks` BlockStats[], required — Statistics for each block in the flow
    - `block_definition_id` string, required — The block definition ID (e.g., "builtin.aes67_input")
    - `block_instance_id` string, required — The block instance ID
    - `block_name` string, required — Human-readable block name
    - `collected_at` integer, required — Timestamp when these stats were collected (nanoseconds since epoch)
    - `stats` Statistic[], required — Collection of statistics for this block
      - `id` string, required — Unique identifier for this statistic within the block
      - `metadata` StatMetadata, required — Metadata about a statistic.
        - `category` string, nullable — Category for grouping in UI (e.g., "RTP", "Buffer", "Network")
        - `description` string, required — Description of what this statistic measures
        - `display_name` string, required — Human-readable name for display
        - `unit` string, nullable — Unit of measurement (e.g., "packets", "ms", "bytes")
      - `value` union, required — A single statistic value with metadata.
        - object — Counter - monotonically increasing value (e.g., packets received)
          - `type` 'Counter', required
          - `value` integer, required — Counter - monotonically increasing value (e.g., packets received)
        - object — Gauge - value that can go up or down (e.g., buffer level)
          - `type` 'Gauge', required
          - `value` integer, required — Gauge - value that can go up or down (e.g., buffer level)
        - object — Float value (e.g., average jitter)
          - `type` 'Float', required
          - `value` number, double, required — Float value (e.g., average jitter)
        - object — Boolean flag (e.g., is_synced)
          - `type` 'Bool', required
          - `value` boolean, required — Boolean flag (e.g., is_synced)
        - object — String value (e.g., current SSRC)
          - `type` 'String', required
          - `value` string, required — String value (e.g., current SSRC)
        - object — Duration in nanoseconds
          - `type` 'DurationNs', required
          - `value` integer, required — Duration in nanoseconds
        - object — Timestamp in nanoseconds since epoch
          - `type` 'TimestampNs', required
          - `value` integer, required — Timestamp in nanoseconds since epoch
  - `collected_at` integer, required — Timestamp when stats were collected (nanoseconds since UNIX epoch)
  - `flow_id` string, uuid, required — The flow ID
  - `flow_name` string, required — The flow name

## Other responses

- `404` — Flow not running or no RTP statistics available

---

[API](https://skmtc.dev/eyevinn/apis/strom-api.md) · [All operations](https://skmtc.dev/eyevinn/apis/strom-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/eyevinn/strom-api/revisions/0df7ca64263f/schema)
