---
title: "List all available GStreamer elements."
method: GET
path: "/api/elements"
tags: ["elements"]
---

# List all available GStreamer elements.

`GET /api/elements`

## Response `200`

List of available GStreamer elements

- ElementListResponse — Response containing information about available elements.
  - `elements` ElementInfo[], required
    - `category` string, required — Element category (e.g., "Source", "Filter", "Sink", "Codec")
    - `description` string, required — Human-readable description
    - `name` string, required — Element type name
    - `properties` PropertyInfo[], required — Available properties
      - `construct_only` boolean — Property can only be set during construction
      - `controllable` boolean — Property can be controlled over time with GstController
      - `default_value` union — Property value that can be various types. GStreamer properties can be strings, numbers, booleans, enums, etc.
        - string
        - integer
        - integer
        - number, double
        - boolean
      - `description` string, required — Human-readable description
      - `mutable_in_null` boolean — Property can be changed in NULL state
      - `mutable_in_paused` boolean — Property can be changed in PAUSED state
      - `mutable_in_playing` boolean — Property can be changed in PLAYING state (live editing!)
      - `mutable_in_ready` boolean — Property can be changed in READY state
      - `name` string, required — Property name
      - `property_type` union, required — Property type enumeration for exposed properties
        - 'string'
        - 'multiline'
        - 'int'
        - 'uint'
        - 'float'
        - 'bool'
        - object
          - `enum` object, required
            - `values` EnumValue[], required
              - …
        - 'networkinterface' — Network interface selector - frontend fetches available interfaces from API
        - object — Local capture/playback device selector. Frontend fetches the live device list from `/api/discovery/devices?category=<category>` and renders a dropdown of `DeviceResponse`s.
          - `device` object, required — Local capture/playback device selector. Frontend fetches the live device list from `/api/discovery/devices?category=<category>` and renders a dropdown of `DeviceResponse`s.
            - `category` 'audiosource' | 'audiosink' | 'videosource' | 'networksource' | 'other', required — Device category for filtering.
      - `writable` boolean — Property is writable
    - `sink_pads` PadInfo[], required — Available sink pads
      - `caps` string, required — Pad capabilities (simplified)
      - `media_type` 'Generic' | 'Audio' | 'Video', required — Media type classification for pads.
      - `name` string, required — Pad name
      - `presence` 'Always' | 'Sometimes' | 'Request', required — Pad presence type (static, dynamic, or request).
      - `properties` PropertyInfo[] — Properties available on this pad template
        - `construct_only` boolean — Property can only be set during construction
        - `controllable` boolean — Property can be controlled over time with GstController
        - `default_value` union — Property value that can be various types. GStreamer properties can be strings, numbers, booleans, enums, etc.
          - string
          - integer
          - integer
          - number, double
          - boolean
        - `description` string, required — Human-readable description
        - `mutable_in_null` boolean — Property can be changed in NULL state
        - `mutable_in_paused` boolean — Property can be changed in PAUSED state
        - `mutable_in_playing` boolean — Property can be changed in PLAYING state (live editing!)
        - `mutable_in_ready` boolean — Property can be changed in READY state
        - `name` string, required — Property name
        - `property_type` union, required — Property type enumeration for exposed properties
          - 'string'
          - 'multiline'
          - 'int'
          - 'uint'
          - 'float'
          - 'bool'
          - object
            - `enum` object, required
              - …
          - 'networkinterface' — Network interface selector - frontend fetches available interfaces from API
          - object — Local capture/playback device selector. Frontend fetches the live device list from `/api/discovery/devices?category=<category>` and renders a dropdown of `DeviceResponse`s.
            - `device` object, required — Local capture/playback device selector. Frontend fetches the live device list from `/api/discovery/devices?category=<category>` and renders a dropdown of `DeviceResponse`s.
              - …
        - `writable` boolean — Property is writable
    - `src_pads` PadInfo[], required — Available source pads
      - `caps` string, required — Pad capabilities (simplified)
      - `media_type` 'Generic' | 'Audio' | 'Video', required — Media type classification for pads.
      - `name` string, required — Pad name
      - `presence` 'Always' | 'Sometimes' | 'Request', required — Pad presence type (static, dynamic, or request).
      - `properties` PropertyInfo[] — Properties available on this pad template
        - `construct_only` boolean — Property can only be set during construction
        - `controllable` boolean — Property can be controlled over time with GstController
        - `default_value` union — Property value that can be various types. GStreamer properties can be strings, numbers, booleans, enums, etc.
          - string
          - integer
          - integer
          - number, double
          - boolean
        - `description` string, required — Human-readable description
        - `mutable_in_null` boolean — Property can be changed in NULL state
        - `mutable_in_paused` boolean — Property can be changed in PAUSED state
        - `mutable_in_playing` boolean — Property can be changed in PLAYING state (live editing!)
        - `mutable_in_ready` boolean — Property can be changed in READY state
        - `name` string, required — Property name
        - `property_type` union, required — Property type enumeration for exposed properties
          - 'string'
          - 'multiline'
          - 'int'
          - 'uint'
          - 'float'
          - 'bool'
          - object
            - `enum` object, required
              - …
          - 'networkinterface' — Network interface selector - frontend fetches available interfaces from API
          - object — Local capture/playback device selector. Frontend fetches the live device list from `/api/discovery/devices?category=<category>` and renders a dropdown of `DeviceResponse`s.
            - `device` object, required — Local capture/playback device selector. Frontend fetches the live device list from `/api/discovery/devices?category=<category>` and renders a dropdown of `DeviceResponse`s.
              - …
        - `writable` boolean — Property is writable

## Changes

> 25 revisions in range; 18 could not be searched.

- **2026-04-07** `1e67862a080e` — 3 info
  - removed `subschema #9` from the `elements/items/properties/items/property_type` response property `oneOf` list for the response status `200`
  - removed `subschema #9` from the `elements/items/sink_pads/items/properties/items/property_type` response property `oneOf` list for the response status `200`
  - removed `subschema #9` from the `elements/items/src_pads/items/properties/items/property_type` response property `oneOf` list for the response status `200`

[Change history](https://skmtc.dev/eyevinn/apis/strom-api/changes/api/elements/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-service-production.skmtc.workers.dev/v1/apis/eyevinn/strom-api/revisions/0df7ca64263f/schema)
