> This page is for mk.io.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://mediakind.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://mediakind.ferndocs.com/_mcp/server.

# List Static Multiview Events

GET https://app.mk.io/api/v1/projects/{project_name}/live/staticMultiviewEvents

List Static Multiview Events on the specified project. 

## Listing, Sorting and Filtering Static Multiview Events

This endpoint returns the list of Static Multiview Events in the specified project.

### Sorting

The results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas
where each one can optionally specify `asc` or `desc`.

Sorting is valid on the following fields: `created`, `createdBy`, `displayName`, `id`, `labels`, `name`, `spec/state`, `spec/transform/type`, `status/state`, `status/transformType`, `updated`, `updatedBy`

### Filtering


There are two ways to filter the set of returned Static Multiview Events from this endpoint - the first is to use the `$filter` query parameter, the second is to use the
`$label_key` and `$label` query parameters.


The `$filter` query parameter allows for Static Multiview Events to be filtered on the basis of fields in the schema using OData query syntax.
See [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.

Filters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `displayName`, `id`, `labels`, `name`, `spec/inputs/content`, `spec/outputs/destination`, `spec/siteName`, `spec/state`, `spec/transform/type`, `status/deviceName`, `status/state`, `status/transformType`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`

`$label_key` and `$label` are specific to querying Static Multiview Events based on their labels. Labels are a set of key-value pairs that can be used to identify Static Multiview Events with
any arbitrary metadata you want, specifically for the purpose of retrieving relevant subsets of Static Multiview Events.

### Examples:

`?$top=10` - Returns only the first 10 Static Multiview Events from the list.

`?$orderby=name desc` - Sorts Static Multiview Events by name in descending order.

`?$filter=name eq 'descriptive name'` - Returns Static Multiview Events that match the provided name.


`?$orderby=created desc` - Sorts Static Multiview Events by creation date in descending order.

`?$filter=created ge 2021-01-01T00:00:00Z` - Returns Static Multiview Events created after January 1, 2021.


`?$label=studio=paravalley` - Returns Static Multiview Events with the label `studio` set to `paravalley`.

`?$label=release-date~2023` - Returns Static Multiview Events with the label `release-date` set to a value that contains `2023`.

`?$label_key=studio&label_key=release-date` - Returns Static Multiview Events with any value set for the `studio` label and the `release-date` label.

RBAC Capability Required: `transform.staticmultiviewevent.get`

Reference: https://mediakind.ferndocs.com/mkio/api/live/static-multiview-event/list-static-multiview-events

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `project_name` (string, required)

### Query parameters

- `$orderby` (string, optional) — Specifies the key by which the result collection should be ordered.
- `$filter` (string, optional) — Restricts the set of items returned.
- `$top` (string, optional) — Specifies a non-negative integer `n` that limits the number of items returned from a collection. The service returns the number of available items up to but not greater than the specified value `n`.
- `$skiptoken` (string, optional) — Specifies a start offset to support paginated results. Use `@odata.nextLink` in the result object to enumerate the collection - it will be present only if there's more than one page of entities.
- `$label_key` (string, optional) — Filters the set to the specified label key. If multiple $label_keys are specified, matching items must have all labels.
- `$label` (string, optional) — Filters the set to the specified label key/value pair. Supports equality, inequality, and inexact matching. If multiple values are provided for the same key, items matching either value will be returned.
- `$detailedStatus` (string, optional) — Include extra status information in the response.

## Response

### 200

List of Static Multiview Events

- `supplemental` (ListResponseSupplementalSchema, required) — Supplemental info
- `value` (list of FlowGetSchema, required) — A list of flows.
- `@odata.nextLink` (string, optional) — @odata.nextLink URL if the page length and number of items match.

## Errors

### 400 Bad Request Error

Bad Request

- `error` (ErrorDetail, required) — Pertinent information about the error
- `ref` (string, required) — A reference to the request that caused the error.
- `status` (integer, required) — The HTTP status code

### 401 Unauthorized Error

Unauthorized

- `error` (ErrorDetail, required) — Pertinent information about the error
- `ref` (string, required) — A reference to the request that caused the error.
- `status` (integer, required) — The HTTP status code

### 403 Forbidden Error

Forbidden

- `error` (ErrorDetail, required) — Pertinent information about the error
- `ref` (string, required) — A reference to the request that caused the error.
- `status` (integer, required) — The HTTP status code

### 404 Not Found Error

Not Found

- `error` (ErrorDetail, required) — Pertinent information about the error
- `ref` (string, required) — A reference to the request that caused the error.
- `status` (integer, required) — The HTTP status code

### 429 Too Many Requests Error

Too Many Requests

- `error` (ErrorDetail, required) — Pertinent information about the error
- `ref` (string, required) — A reference to the request that caused the error.
- `status` (integer, required) — The HTTP status code

### 500 Internal Server Error

Internal Server Error

- `error` (ErrorDetail, required) — Pertinent information about the error
- `ref` (string, required) — A reference to the request that caused the error.
- `status` (integer, required) — The HTTP status code

## Types

### ListResponseSupplementalSchema

- `count` (integer, required) — Number of items returned
- `kind` (string, required) — Type of items in the list
- `operation` (string, required) — Operation type. Should always say 'list'
- `pagination` (PaginationInfoSchema, required) — Pagination info
- `subscription` (ProjectInfoSchema, optional) — Project info

### FlowGetSchema

- `kind` (string, required) — The kind of record.
- `metadata` (MetadataSchema, required) — Flow metadata.
- `spec` (FlowBodySpec, required) — Flow specification.
- `status` (FlowStatusGetSchema, required) — Flow status.

### ErrorDetail

- `code` (string, required) — The error code.
- `detail` (string, required) — The error message.
- `extraDetail` (map from string to any, optional) — Extra information regarding this error.

### PaginationInfoSchema

- `end` (integer, required) — Position of the last item in the list
- `records` (integer, required) — Total number of items returned in the list
- `start` (integer, required) — Position of the first item in the list
- `total` (integer, required) — Total number of items in the project

### ProjectInfoSchema

- `id` (string, required) — Project ID
- `name` (string, required) — Project name

### MetadataSchema

- `id` (string, required) — The ID of the resource
- `created` (datetime, optional) — The time when the resource was created
- `createdBy` (string, optional) — ID of the user who created the resource
- `createdByEmail` (string, optional) — Email of the user who created the resource
- `displayName` (string, optional) — The display name of the resource
- `labels` (map from string to string, optional) — A dictionary of labels associated with the resource
- `name` (string, optional) — The name of the resource
- `updated` (datetime, optional) — The time when the resource was last updated
- `updatedBy` (string, optional) — ID of the user who last updated the resource
- `updatedByEmail` (string, optional) — Email of the user who last updated the resource

### FlowBodySpec

- `inputs` (list of FlowInputFragment, required) — List of flow inputs. Read [Flow inputs and outputs](doc:flows#flow-inputs-and-outputs) to learn more about how to connect flow inputs between content and flow transform inputs.
- `outputs` (list of FlowOutputFragment, required) — List of flow outputs. Read [Flow inputs and outputs](doc:flows#flow-inputs-and-outputs) to learn more about how to connect flow outputs between flow transform outputs and destinations or to make them available to other flows.
- `state` (enum, required) — The desired state of the flow.
  - Allowed values: `Stopped`, `Running`
- `transform` (FlowBodySpecTransform, required) — Configuration for the transformation that this flow performs
- `refiner` (FlowRefinerFragment, optional) — The \<\<glossary:refiners>> that influence how this flow will be assigned. This is a placeholder for future functionality.
- `siteName` (string, optional) — The name of the \<\<glossary:site>> where the flow will run. If omitted, the site is inferred from the flow type: cloud flows default to the project's cloud site; device flows default to the 'world' site.

### FlowStatusGetSchema

- `deviceDisplayName` (string, optional) — The display name of the \<\<glossary:device>> the flow is assigned to. Empty if not assigned or if the flow is on a \<\<glossary:SaaS site>>.
- `deviceName` (string, optional, default: ) — The name of the \<\<glossary:device>> the flow is assigned to. Empty if not assigned or if the flow is on a \<\<glossary:SaaS site>>.
- `info` (string, optional) — An optional informational message. Only present if not empty.
- `inputs` (list of FlowInputStatusFragment, optional) — The status of flow inputs.
- `metrics` (map from string to FlowStatusMetricSchema, optional) — A dictionary of metrics reported by the flow.The keys are metrics names and the values contains an array of samples for that metric.The Sample contains a 'value' field and a 'labels' field which is a dictionary of label keys and values.
- `monitoring` (map from string to MonitoringDetailsSchema, optional) — Details for how to access monitoring feedback. Each key is a monitoring context that is influenced by the \<\<glossary:flow transform>> selected in the flow and the configuration of the flow transform. Read [flow monitoring](doc:flows#monitoring) to learn more.
- `outputs` (list of FlowOutputStatusFragment, optional) — The status of flow outputs.
- `shortId` (string, optional) — An alternative short identifier for the flow. This is used only for visual inspection and should not be used for any programmatic purposes.
- `siteDisplayName` (string, optional) — The display name of \<\<glossary:site>> associated with the flow.
- `state` (enum, optional) — The last reported state of the flow.
  - Allowed values: ``, `Stopping`, `Stopped`, `Starting`, `Running`, `Pending`, `Deleting`, `Deleted`, `Updating`, `Started`, `Allocating`, `Allocated`, `UnableToStart`
- `transform` (FlowTransformStatus, optional)

### FlowInputFragment

Describes an input to a flow. A flow input can be specified as either a connection to \<\<glossary:content>>, a connection to a specific \<\<glossary:source>>, or a connection to a specific \<\<glossary:flow>>. Exactly one of either contentName, sourceName or flowName must be specified.

- `contentName` (string, optional) — The \<\<glossary:content>> that the flow input is connected to. This also influences the content that will be available on the flow outputs. Read [Resolving content](doc:content-and-sources#resolving-content) to learn more about how content is resolved to the \<\<glossary:source>>s and \<\<glossary:flow>>s that can supply it.
- `flowName` (string, optional) — The upstream \<\<glossary:flow>> that the flow input is connected to. This also influences the content that will be available on the flow outputs.
- `refiner` (FlowInputRefinerFragment, optional) — The \<\<glossary:refiners>> that influence how this flow input will be assigned and how [content will be resolved](/api-guides/how-to/media/content-and-sources#resolving-content) for it. For example, flow inputs can be constrained to specific upstream \<\<glossary:flow>>s and \<\<glossary:source>>s. To learn more, read [Flow input refiners](doc:flows#flow-input-refiners).
- `sourceName` (string, optional) — The \<\<glossary:source>> that the flow input is connected to. This also influences the content that will be available on the flow outputs.
- `transformInput` (string, optional) — The name of the input pin to connect in the associated processing config. Retrieve the config through the Templates API and use a name from `status.inputPins[].name`.

### FlowOutputFragment

- `contentName` (string, optional) — Optional, sets the \<\<glossary:content>> that is provided by this flow output.
- `destinationName` (string, optional) — The destination to connect the flow output to. Omit this field to create an \<\<glossary:internal flow output>>. Read [Flows](doc:flows) to learn more about how to connect flows to other flows.
- `refiner` (FlowOutputRefinerFragment, optional) — The \<\<glossary:refiners>> that influence how this flow output will be assigned. This is a placeholder for future functionality.
- `transformOutput` (string, optional) — The name of the output pin to connect in the associated processing config. Retrieve the config through the Templates API and use a name from `status.outputPins[].name`.
- `transport` (FlowOutputTransportFragment, optional) — Transport setting overrides for this specific flow output. If not specified, the transport will use the default settings.

### FlowBodySpecTransform

Configuration for the transformation that this flow performs

- `type`: `LiveChannel` (LiveChannelFlow)
  - `assetName` (string, required) — The name of asset that you want this flow to store material in.
  - `encodingLive` (ConfigSchema, required) — Reference to template of type 'encodingLive'
  - `archiveWindowLength` (string, optional) — The maximum content length that can be archived in the asset for the live output. This also limits the maximum content length for the timeshift window. For example, use PT1H30M to indicate 1 hour and 30 minutes of archive window. Max value = 30 days.
  - `assetPath` (string, optional) — If an asset name is given, then you may also specify a subpath within the asset for the material.
  - `streamConditioning` (ConfigSchema, optional) — Optional reference to template of type 'streamConditioning'
- `type`: `LiveEvent` (LiveEventFlow)
  - `assetName` (string, required) — The name of asset that you want this flow to store material in.
  - `encodingLive` (ConfigSchema, required) — Reference to template of type 'encodingLive'
  - `archiveWindowLength` (string, optional) — The maximum content length that can be archived in the asset for the live output. This also limits the maximum content length for the timeshift window. For example, use PT1H30M to indicate 1 hour and 30 minutes of archive window. Max value = 30 days.
  - `assetPath` (string, optional) — If an asset name is given, then you may also specify a subpath within the asset for the material.
  - `streamConditioning` (ConfigSchema, optional) — Optional reference to template of type 'streamConditioning'
- `type`: `StaticMultiviewChannel` (StaticMultiviewChannelFlow)
  - `assetName` (string, required) — The name of asset that you want this flow to store material in.
  - `encodingLive` (ConfigSchema, required) — Reference to template of type 'encodingLive'
  - `archiveWindowLength` (string, optional) — The maximum content length that can be archived in the asset for the live output. This also limits the maximum content length for the timeshift window. For example, use PT1H30M to indicate 1 hour and 30 minutes of archive window. Max value = 30 days.
  - `assetPath` (string, optional) — If an asset name is given, then you may also specify a subpath within the asset for the material.
  - `multiviewComposing` (ConfigSchema, optional) — Optional reference to template of type 'multiviewComposing'. If omitted, inputs are taken from encodingLive.
  - `streamConditioning` (ConfigSchema, optional) — Optional reference to template of type 'streamConditioning'
- `type`: `StaticMultiviewEvent` (StaticMultiviewEventFlow)
  - `assetName` (string, required) — The name of asset that you want this flow to store material in.
  - `encodingLive` (ConfigSchema, required) — Reference to template of type 'encodingLive'
  - `archiveWindowLength` (string, optional) — The maximum content length that can be archived in the asset for the live output. This also limits the maximum content length for the timeshift window. For example, use PT1H30M to indicate 1 hour and 30 minutes of archive window. Max value = 30 days.
  - `assetPath` (string, optional) — If an asset name is given, then you may also specify a subpath within the asset for the material.
  - `multiviewComposing` (ConfigSchema, optional) — Optional reference to template of type 'multiviewComposing'. If omitted, inputs are taken from encodingLive.
  - `streamConditioning` (ConfigSchema, optional) — Optional reference to template of type 'streamConditioning'

### FlowRefinerFragment

### FlowInputStatusFragment

- `contentDisplayName` (string, optional) — If the flow input references content, this field contains the display name of that \<\<glossary:content>>. If the flow input references a source, this field contains the display name of the \<\<glossary:content>> referenced by that source. If the flow input references a flow, this field contains the display name of the \<\<glossary:content>> assigned to the resolved upstream flow output, or empty if resolution failed.
- `contentName` (string, optional) — If the flow input references content, this field contains the name of that \<\<glossary:content>>. If the flow input references a source, this field contains the name of the \<\<glossary:content>> referenced by that source. If the flow input references a flow, this field contains the name of the \<\<glossary:content>> assigned to the resolved upstream flow output, or empty if resolution failed.
- `deviceInterfaceName` (string, optional) — The name of the \<\<glossary:device interface>> assigned to the flow input. Empty if a device interface is not assigned.
- `networkDisplayName` (string, optional) — The display name of the \<\<glossary:network>> assigned to the flow input. Empty if the content was resolved from a directly-connected \<\<glossary:source>> (e.g. SDI) or a network is not assigned.
- `networkName` (string, optional) — The name of the \<\<glossary:network>> assigned to the flow input. Empty if the content was resolved from a directly-connected \<\<glossary:source>> (e.g. SDI) or a network is not assigned.
- `sourceDisplayName` (string, optional) — The display name of the \<\<glossary:source>> assigned to the flow input. Empty if the content was resolved to an upstream \<\<glossary:flow>> or a source is not assigned.
- `sourceName` (string, optional) — The name of the \<\<glossary:source>> assigned to the flow input. Empty if the content was resolved to an upstream \<\<glossary:flow>> or a source is not assigned.
- `sourceShortId` (string, optional) — An alternative short identifier for the source. This is used only for visual inspection and should not be used for any programmatic purposes.
- `sourceUrl` (string, optional, nullable) — The ingress URL for the \<\<glossary:source>> assigned to the flow input. Empty if the source does not have a URL.
- `upstreamFlowName` (string, optional) — The name of an upstream \<\<glossary:flow>> providing the input. Empty if the content was resolved to a \<\<glossary:source>> or if an upstream flow is not assigned.

### FlowStatusMetricSchema

- `value` (double, required) — The value of the metric sample.
- `labels` (map from string to string, optional) — A dictionary of label keys and values for this metric sample.

### MonitoringDetailsSchema

- `metadataUrl` (string, required) — URL of the metadata.
- `thumbnailUrl` (string, required) — URL of the thumbnail image.

### FlowOutputStatusFragment

- `contentDisplayName` (string, required) — The display name of the \<\<glossary:content>> that is provided by this flow output.
- `contentName` (string, required) — The \<\<glossary:content>> that is provided by this flow output.
- `destinationDisplayName` (string, optional) — The display name of the \<\<glossary:destination>> reference from the flow output. Empty if this is a \<\<glossary:internal flow output>> with no destination.
- `destinationUrl` (string, optional, nullable) — The egress URL for the \<\<glossary:destination>> assigned to the flow output. Empty if the destination does not have a URL.
- `deviceInterfaceName` (string, optional) — The name of the \<\<glossary:device interface>> assigned to the flow output. Empty if a device interface is not assigned.
- `downstreamFlowNames` (list of string, optional) — List of names of \<\<glossary:flow>>s that are connected to this flow output. Empty if the flow output is not connected to any downstream flows.
- `networkDisplayName` (string, optional) — The display name of the \<\<glossary:network>> assigned to the flow outputEmpty if the output references a directly-connected \<\<glossary:destination>> (e.g. SDI) or a network is not assigned.
- `networkName` (string, optional) — The name of the \<\<glossary:network>> assigned to the flow output. Empty if the output references a directly-connected \<\<glossary:destination>> (e.g. SDI) or a network is not assigned.
- `transport` (FlowOutputStatusTransportFragment, optional) — Transport settings specific to this flow output.

### FlowTransformStatus

- `streamPersonalization` (FlowTransformStatusStreamPersonalization, optional)

### FlowInputRefinerFragment

- `flow` (NameRefinerFragment, optional) — Refiner to restrict a flow's input to originate from a specific flow.
- `labelMatch` (LabelMatchRefinerFragment, optional) — Refiner to restrict a flow's input to originate from one of a set of both flows and content sources.

### FlowOutputRefinerFragment

### FlowOutputTransportFragment

- `maxConnections` (integer, optional) — Optional, specifies the maximum number of connections for this output if no destination is specified.

### ConfigSchema

- `configRef` (ConfigRefSchema, required) — Reference to configuration template
- `advancedSettingsName` (string, optional, nullable) — Name of the advanced settings configuration to apply to this component. These configuration blocks are managed by MediaKind and you should not set this field unless MediaKind support has asked you to.
- `configOverrides` (ConfigSchemaConfigOverrides, optional) — Optional control over template contents. These are applied after any configValues.
- `configValues` (map from string to any, optional, nullable) — Optional control over template contents, replacing parameters exposed by the configuration. These are applied before any configOverrides.

### FlowOutputStatusTransportFragment

- `maxBitrate` (integer, required) — The calculated maximum bitrate for the flow output's transport.
- `latency` (double, optional) — The minimum SRT Latency, in seconds for this output's connections, if known.
- `maxConnections` (integer, optional) — The maximum number of connections allowed for this output where a restriction applies.

### FlowTransformStatusStreamPersonalization

- `hostName` (string, optional)

### NameRefinerFragment

- `name` (string, required) — Name of the resource to match.

### LabelMatchRefinerFragment

- `key` (string, required) — Name of the label to match against. Case sensitive.
- `value` (string, required) — The desired value of the label. Case sensitive.

### ConfigRefSchema

- `name` (string, required) — Name of the configuration template to use, must match the configType.
- `version` (string, required) — Which revision of the configuration to use, either a tag or a hash must be provided

### ConfigSchemaConfigOverrides

Optional control over template contents. These are applied after any configValues.

- `type`: `application/json-patch+json` (FlowJsonPatchOverrides)
  - `operations` (list of JsonPatchEntry, required) — List of 'JSON Patch' (https://en.wikipedia.org/wiki/JSON_Patch) operations.

### JsonPatchEntry

- `op` (enum, required) — Operation
  - Allowed values: `add`, `remove`, `replace`, `stringReplace`, `numberReplace`
- `path` (string, required) — Path
- `search` (string, optional) — Search string for 'stringReplace' and 'numberReplace' operations. 'numberReplace' replaces with JSON number type but only when the search string matches the entire value. I.e "audio_pid" would be replaced with 50, not "50".
- `value` (any, optional) — Value

## Examples

**Response**

```json
{
  "supplemental": {
    "count": 1,
    "kind": "string",
    "operation": "string",
    "pagination": {
      "end": 1,
      "records": 1,
      "start": 1,
      "total": 1
    },
    "subscription": {
      "id": "string",
      "name": "string"
    }
  },
  "value": [
    {
      "kind": "string",
      "metadata": {
        "id": "string",
        "created": "2024-01-15T09:30:00Z",
        "createdBy": "string",
        "createdByEmail": "string",
        "displayName": "string",
        "labels": {
          "label1": "value1",
          "label2": "value2"
        },
        "name": "string",
        "updated": "2024-01-15T09:30:00Z",
        "updatedBy": "string",
        "updatedByEmail": "string"
      },
      "spec": {
        "inputs": [
          {
            "contentName": "channel-1",
            "flowName": "flow-1",
            "refiner": {
              "flow": {
                "name": "string"
              },
              "labelMatch": {
                "key": "string",
                "value": "string"
              }
            },
            "sourceName": "source-1",
            "transformInput": "encoding/input_1"
          }
        ],
        "outputs": [
          {
            "contentName": "string",
            "destinationName": "production-1",
            "refiner": {},
            "transformOutput": "encoding/output_1",
            "transport": {
              "maxConnections": 10
            }
          }
        ],
        "state": "Running",
        "transform": {
          "archiveWindowLength": "string",
          "assetName": "string",
          "assetPath": "string",
          "encodingLive": {
            "advancedSettingsName": "string",
            "configOverrides": {
              "operations": [
                {
                  "op": "add",
                  "path": "string",
                  "search": "string"
                }
              ],
              "type": "application/json-patch+json"
            },
            "configRef": {
              "name": "string",
              "version": "latest"
            },
            "configValues": {
              "audio1label": "Spanish",
              "audio1lang": "spa",
              "audio1pid": 257,
              "epochts": false
            }
          },
          "streamConditioning": {
            "advancedSettingsName": "string",
            "configOverrides": {
              "operations": [
                {
                  "op": "add",
                  "path": "string",
                  "search": "string"
                }
              ],
              "type": "application/json-patch+json"
            },
            "configRef": {
              "name": "string",
              "version": "latest"
            },
            "configValues": {
              "audio1label": "Spanish",
              "audio1lang": "spa",
              "audio1pid": 257,
              "epochts": false
            }
          },
          "type": "string"
        },
        "refiner": {},
        "siteName": "world"
      },
      "status": {
        "deviceDisplayName": "Device 1",
        "deviceName": "device-1",
        "info": "There was an issue with start due to a mismatch of Template inputs and configured inputs.",
        "inputs": [
          {
            "contentDisplayName": "Channel 1",
            "contentName": "channel-1",
            "deviceInterfaceName": "eth0",
            "networkDisplayName": "Internet",
            "networkName": "internet",
            "sourceDisplayName": "Channel 1 SRT",
            "sourceName": "channel-1-srt",
            "sourceShortId": "a1b2c3d4e5f6",
            "sourceUrl": "srt://10.10.10.1:6000",
            "upstreamFlowName": "channel-1-encode"
          }
        ],
        "metrics": {
          "mk_resource_status": [
            {
              "labels": {
                "mkio_stage": "encode"
              },
              "value": 0
            },
            {
              "labels": {
                "mkio_stage": "output"
              },
              "value": 0
            },
            {
              "labels": {
                "mkio_stage": "resource"
              },
              "value": 0
            }
          ]
        },
        "monitoring": {},
        "outputs": [
          {
            "contentDisplayName": "string",
            "contentName": "string",
            "destinationDisplayName": "production-1",
            "destinationUrl": "srt://10.10.10.2:6000",
            "deviceInterfaceName": "eth0",
            "downstreamFlowNames": [
              "string"
            ],
            "networkDisplayName": "Internet",
            "networkName": "internet",
            "transport": {
              "maxBitrate": 1,
              "latency": 10,
              "maxConnections": 10
            }
          }
        ],
        "shortId": "a1b2c3d4e5f6",
        "siteDisplayName": "World",
        "state": "Started",
        "transform": {
          "streamPersonalization": {
            "hostName": "string"
          }
        }
      }
    }
  ],
  "@odata.nextLink": "string"
}
```

**SDK Code**

```python
import requests

url = "https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://app.mk.io/api/v1/projects/project_name/live/staticMultiviewEvents")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```