# Introduction

![](/files/-MOxi-vbYcHF3UiEDsCe)

The nexxOMNIA API was designed to offer every Functionality, that is needed for a complete Media Management System in one single, consistent System. It serves many Purposes, but you can seperate it into three different Segments.

Most important is the Media API. You can use it to query for Media Items of every Streamtype. Therefore, its mostly related to Frontend Jobs - i.e., to get the necessary Data to show the Media Items on a Frontend.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

For Backend Processing, the Management API is used. Its designed to allow the accesing Users to create, modify and delete Media Items programmatically without the need for a UI. It also allows Access to statistical Data and Analytics.

Furthermore, the Concept of a "Notification Gateway", i.e., a Pinging Mechanism of nexxOMNIA to your Backend Systems is also connected to this Concept.

{% content-ref url="/pages/-M9bgzkmR5evcX4xC6Ib" %}
[Management API](/management-api)
{% endcontent-ref %}

{% content-ref url="/pages/-M9bhXiq5ylhojCf0Q9f" %}
[Notification Gateway](/notification-gateway)
{% endcontent-ref %}

To offer a complete Frontend Solution, the Concept of a Session (and maybe even a loggedin User) is necessary. The Frontend API offers Endpoints to manage Sessions, Users and User Interactions. It should only be used in a Frontend Context, not within any Form of Backend Processing.

{% content-ref url="/pages/-M9bh5O6avhd\_M34DtyJ" %}
[Frontend API](/frontend-api)
{% endcontent-ref %}


# API Design

The nexxOMNIA API can be complicated to handle, as there are Tons of Options and Modifiers everywhere. Nevertheless, the Structure is always identical and the Parameter Options are always covering the same Concepts, once they are used.

Make yourself familiar with the general Structure and Authorization

{% content-ref url="/pages/-M9d5XJNE-MS\_ntsnyQd" %}
[Endpoint and Authorization](/api-design/authorization)
{% endcontent-ref %}

The most common Parameters and Modifiers, valid for all Parts of the API, are explained here

{% content-ref url="/pages/-M9bg1HOU50nARG6A4Di" %}
[Query Parameters](/api-design/query-parameters)
{% endcontent-ref %}

It is impossible to layout a valid Response Object even within a single API. That is due to the Concept of Output Modifiers and List/Single Item Types. Therefore, only the basic Response Object Attributes can be described here

{% content-ref url="/pages/-M9bg4YDggx6a7GAJPlI" %}
[Response Object](/api-design/response-object)
{% endcontent-ref %}


# Endpoint and Authorization

## Endpoint and URL Structure

Each API Call will target the Endpoint:

**`https://api.nexx.cloud/v3.1/`**

{% hint style="info" %}
HTTPS is not necessary, but strongly recommended. The API will return appropriate CORS Headers for XHR/FETCH Calls.
{% endhint %}

As a general Rule, the URL is constructed like the following:

**`https://api.nexx.cloud/v3.1/:domainid/:context/:operation/:parameter`**

{% hint style="info" %}
The **:context** Parameter is related to the API, that is called. If you want to list all Videos of a Domain, **:context** would be "**videos**" and **:operation** would be "**all**" (as Part of the Media API).

If you need Domain Information, **:context** would be "**domain**" and **:operation** would be "**publicinfo**" (as Part of the Management / Domain Data API).

Except the **:parameter** Part of the Path, each URL Part is necessary and cant be skipped.
{% endhint %}

Each Method can be enhanced by Query Parameters and Output Modifiers. Query Parameters influence the Operation and therefore the returned Result Set and Output Modifiers modify the Level of Details of the Response Object.

## Authorization

Each API Call must be signed in order to get processed. Furthermore, every Call must submit a valid Session ID (except the **`/session/init`** Call).

The nexxOMNIA API will be signed via HTTP Headers. Each Call must add the following additional HTTP Headers:

| Header              | Description            |
| ------------------- | ---------------------- |
| **X-Request-CID**   | The Session ID         |
| **X-Request-Token** | The API Call Signature |

{% hint style="info" %}
Although every API Call needs a valid Session ID, it is NOT necessary for Backend Operations to initiate Sessions. For Backend Operations, 3Q nexx offers an "eternal" Session, that should be used (and never be exposed to a Frontend)
{% endhint %}

The API Call Signature is a dynamic String, that has to be constructed before every Call. It is built using well-known Properties like this:

```
Signature = MD5( API-OPERATION + DOMAIN-ID + DOMAIN-SECRET )
```

{% hint style="info" %}
The **API-OPERATION** is explained above - it is the Method of the selected API Endpoint.
{% endhint %}

{% hint style="info" %}
The **DOMAIN-ID** is the ID of the calling Domain.
{% endhint %}

{% hint style="info" %}
The **DOMAIN-SECRET** is a secret Value, given by 3Q nexx. It should NEVER be exposed to a Frontend.
{% endhint %}

For Illustration, lets build an Example:

```php
//calling the following API 
"https://api.nexx.cloud/v3.1/123/videos/byid/9999"

//would need the folloxing Request Token
MD5( "byid" + 123 + SECRET)
```

{% hint style="info" %}
Please notice, that the **:domainid** Part of the API is skipped for Brevity in all later Documentations, as it never changes.
{% endhint %}


# Query Parameters

The nexxOMNIA API offers a Variety of Query Paramters, but some are valid for (nearly) every Call for influencing the Result Set Output.

## General Parameters

| **Parameter**               | Format                                          | Description                                                                                                                                                                                                                                                                                                                           |
| --------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **noc**                     | \[**0**, 1]                                     | if set to 1, the API will disable Cached Results (which will take longer, so only use this Parameter, if absolutely necessary)                                                                                                                                                                                                        |
| **cfo**                     | String                                          | a custom Reference. It will be returned in the API Response Object for further Processing by the calling Domain                                                                                                                                                                                                                       |
| **imageFormat**             | \[webp, avif, classic]                          | will return Image Assets as WebP or AVIF, if possible or Classic (jpg/png/gif)                                                                                                                                                                                                                                                        |
| **richTextFormat**          | \[plain, covertlinks, html, xmlstrict]          | preprocesses Rich-Text Parts of all Result Elemtns – can be combined with. The API will also accept a Combination of Values, combined by ",".                                                                                                                                                                                         |
| **dateFormat**              | Date Format, for Example "d.m.Y"                | a valid Date Format to pre-format Date Values (which come as Unix Timestamps by default)                                                                                                                                                                                                                                              |
| **dateFormatTimezone**      | Timezone, for Example "Europe/Berlin"           | if a dateFormat is given, the default Timezone is used – if a different Timezone is desired, use this Parameter                                                                                                                                                                                                                       |
| **distanceUnit**            | \[**metric**, imperial]                         | Distances (for example in Geo Searches) will be returned in this Unit.                                                                                                                                                                                                                                                                |
| **temperatureUnit**         | \[**celsius**, fahrenheit]                      | Temperatures (for example in Weather Requests) will be returned in this Unit.                                                                                                                                                                                                                                                         |
| **extendCoverGeometry**     | \[**0**, 1]                                     | if set to 1, the API will include AspectRatio and Low-Res Cover DataURIs for each returned Media Item Cover (which results in far more transferred Data)                                                                                                                                                                              |
| **additionalFields**        | comma seperated List of attributes or "**all**" | For Item or Item List Calls, add those Item Attributes to each Item Result Object.                                                                                                                                                                                                                                                    |
| **forceGateway**            | \[desktop, mobile, smarttv, car]                | in a Frontend Call, the Item Set will be automatically reduced to those Items, that are  available for the current Frontend Gateway. If this is not desired, this can be overwritten with this Parameter.                                                                                                                             |
| **forceLanguage**           | 2-Letter-Code of a supported Frontend Language  | in a Frontend Call for a Domain, that supports multiple Language, the Text Attributes of each Item will automatically be returned in the current Session Language. If not desired, this can overwritten with this Parameter (if supported by the Domain and existing in the current Item).                                            |
| **respectGeoRestrictions**  | 2-Letter-Code of target Country or "**auto**"   | in a Frontend List Call, by default, all Elements are returned and Geo-Restrictions are computed on Item-Level. If the List Calls should also respect the Domain/Item Geo Restrictions, set this Parameter.                                                                                                                           |
| **restrictToCurrentDomain** | \[**0**, 1]                                     | if the calling Domain belongs to a network, by default, all valid Elements for all Network-Mode controlled Domains in this Network are returned. If only the "real" Elements of the calling Domain are desired, use this Parameter with 1.                                                                                            |
| **restrictToChildDomain**   | int                                             | if the calling Domain belongs to a network, by default, all valid Elements for all Network-Mode controlled Domains in this Network are returned. If only the Elements of a Child Domain of the calling Domain are desired (and the calling Domain is the Network Mother Domain), use this Parameter with the ID of that Child Domain. |

Each API Endpunkt offers specific Parameters, that will be outlined in the correspoding Section.

## Order and Paging

For Item List Calls, the Order and Size of Result Set Items can be modified.

| Parameter      | Format          | Description                                                                                                                                                                                                                                                                        |
| -------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **orderBy**    | Media Attribute | orders the Resultset by the given Attribute. If omitted, the Items will be ordered by **`date DESC`** (notice, that **`date`** in this case is no&#x74;**`uploaded`** or **`created`**, but **`apiuploaded`** (i.e., a virtual Attribute, that can be rewritten via API/nexxOMNIA) |
| **orderDir**   | \[ASC, DESC]    | the Order Direction                                                                                                                                                                                                                                                                |
| **start**      | int             | the Result Set will start at this Item Number                                                                                                                                                                                                                                      |
| **limit**      | \[0-100]        | the maximal Size of the Result Set                                                                                                                                                                                                                                                 |
| **childLimit** | \[0-250]        | if the API Calls targets a Container Streamtype and forces the Inclusion of Child Elements, limit the Number of Child Elements to this Value                                                                                                                                       |

## Output Modifiers

Output Modifers are specific Parameters, that influence the Format of the Result Set. They are used to add more Details (i.e. Detail Objects) to each Result Set Item, so the calling Client can access more specific Information. For example, it is possible to include File URLs or File Transcoding Results to a normal Media Call.

Each API Part has own Output Modifiers, but the following List is used in every API.

| **Parameter**            | Format      | Description                                                                                                                                                                                                                                                                       |
| ------------------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **addPublishingDetails** | \[**0**,1]  | <p>add an Object of Publishing States and Restrictions to each Item. When adding this Output Modifier, it is possible (and that’s he only accepted way) to query for inactive/unpublished Objects. </p><p><strong>This Modifier only works with the eternal Session.</strong></p> |
| **addStreamDetails**     | \[**0**, 1] | add technical Details about Origin, Delivery and CDN Locations to each Item                                                                                                                                                                                                       |
| **addStatistics**        | \[**0**, 1] | add statistical Data to each Result Set Item.                                                                                                                                                                                                                                     |


# Response Object

Each API Call will return in a Response Object, unimportant, if the Call was successfull or not or to which API Section it belongs. The Response Object will consist of a Metadata Part, a Data Part (for Single Items and Item List Calls) and an optional Paging Part (for Item List Calls only).

## Result Metadata

| **Key**            | Format    | Description                                                                                     |
| ------------------ | --------- | ----------------------------------------------------------------------------------------------- |
| **status**         | HTTP Code | The HTTP Status for this Call                                                                   |
| **apiversion**     | String    | Version of the API                                                                              |
| **verb**           | String    | the used HTTP Verb                                                                              |
| **processingtime** | Float     | internal Duration, needed to create the Response                                                |
| **calledwith**     | String    | the called Endoint and Parameter                                                                |
| **calledfor**      | String    | The **`cfo`** Parameter from the API Call                                                       |
| **fordomain**      | Integer   | the calling Domain ID                                                                           |
| **fromstage**      | \[0, 1]   | The result was created by a Stage or Productive Server                                          |
| **notice**         | String    | If the Call uses deprecated Functionality, find here a Hint, what Attributes should be changed. |
| **errorhint**      | String    | If the Call failed, a Hint for the Failure Reason                                               |

## Result Data

Every successfull API Call will have a "result" Object, that contains the Result for this Call. Technically, there are three different API Types, who all return slightly different Result Types.

{% hint style="info" %}
Please notice, that we cannot outline the concrete Structure of each API Call. As the Concept of Streamtypes and Output Modifiers makes it impossible to create an exhausting Description of every possible Result Data Set.
{% endhint %}

### Single Item Call

An API Call for a single Media Item, for example **`/videos/byid/123`**. The Result Data will be an Object, which represents the Media Item.

### Item List Call

An API Call for a list of Media Items, for example **`/videos/all`**. The Result Data will be an Array, which represents the Media Item.

### Operation Call

An API Call, that produces an Object within nexxOMNIA. This may be a Call to the Management API, but also Interaction Calls operate like this. In this Case, the Result Data will only consist of a Status String and mostly some Details of the created Object (for example, the ID of a new Comment).

## Paging

| **Key**         | Format | Description                             |
| --------------- | ------ | --------------------------------------- |
| **start**       | Int    | The Start of the Query Range            |
| **limit**       | Int    | The given maximal Item List Length      |
| **resultcount** | Int    | The maximally available Number of Items |


# Media API

The Media Endpoint offers the most important Methods for most Usecases. Due to the fact, that the nexxOMNIA API supports a variety of Media Types ("Streamtypes"), this Documentation will only mention "streamtype" as Endpoint Parameter, which can be replaced and is valid for all the following Streamtypes.

## Default Media

#### Video

**Live**

**Scenes**

**Audio**

**Radio**

**Images**

**Files**

**Articles**

**Events**

**Posts**

{% hint style="info" %}
Please notice, that the API uses always the Plural Form of a Streamtype in URL Building.
{% endhint %}

## Container Media

in various Cases, there are "Collections" of Media in one Container. These "Container Media" are often also references as "Parent" and they take the following Streamtypes:

#### Playlists

Container for Videos

#### Series

Container for Playlists

#### Audio Albums

Container for Audio

#### Albums

Container for Images

#### Magazines

Container for Articles

#### Folders

Container for Files

#### Groups

Container for Persons

#### Racks

Container for Video/Scene/LiveStream Alternatives

#### Sets

Container for Lists of Videos and Scenes

#### Collections

Container for Lists of all single Streamtypes

#### Bundles

Container for Lists of Container Elements

#### Teams

Container for Users

{% hint style="info" %}
Container Media Types are handled identically in the Media API. They use the same Endpoints and Methods as "Default Media".
{% endhint %}

## Referencing Media

Some Streamtypes are rarely used directly, but often used on other Media Types. For example, a Video might have a List of Links or Files connected to it. These are "referencing Media Items"

#### Persons

**Shows**

**Places**

**Products**

**Links**

**Studios**

{% hint style="info" %}
Referencing Media Types are also handled identically in the Media API. They use the same Endpoints and Methods as "Default Media".
{% endhint %}

## Interaction Media

The Media API also handles "interaction Media", which contains Object for Users to interact with.

**Forms**

**Polls**

**Votings**

{% hint style="info" %}
Interaction Media Types are also handled identically in the Media API. They use the same Endpoints and Methods as "Default Media".
{% endhint %}


# Usage

The Media API offers a variety of additional Parameters for querying Purposes.

## General Parameters

| Parameter                         | Values                                                                  | Description                                                                                                                                                                                                                                   |
| --------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **createdAfter**                  | UNIX Timestamp                                                          | restrict Result to Elements, created after the given Time                                                                                                                                                                                     |
| **modifiedAfter**                 | UNIX Timestamp                                                          | restrict Result to Elements, modified after the given Time                                                                                                                                                                                    |
| **publishedAfter**                | UNIX Timestamp                                                          | restrict Result to Elements, published after the given Time                                                                                                                                                                                   |
| **channel**                       | int                                                                     | restrict Result Set to Items in this Channel                                                                                                                                                                                                  |
| **respectChannelHierarchy**       | \[**0**, 1]                                                             | If the target Channel is a Main Channel, and the Contents of its Subchannels shall also be included, set this Parameter to 1.                                                                                                                 |
| **format**                        | int                                                                     | restrict Result Set to Items in this Format                                                                                                                                                                                                   |
| **category**                      | int                                                                     | restrict Result Set to Items in this Category                                                                                                                                                                                                 |
| **genre**                         | int                                                                     | restrict Result Set to Items in this Genre (only for Video, Playlist, Series, Audio and Audio Album)                                                                                                                                          |
| **type**                          | String                                                                  | many Media Items have certain "Types" to define their Purpose. If necessary, you can filter by this Enum.                                                                                                                                     |
| **contentType**                   | \[video, comic, cgi] for videos or \[foto, drawing, clipart] for images | many Media Items have a certain "contentType" that defines some Characteristics. If necessary, you can filter by this Enum.                                                                                                                   |
| **country**                       | 2-Letter Code                                                           | restricts the Result to Media from the given Country                                                                                                                                                                                          |
| **noExplicit**                    | \[**0**, 1]                                                             | restrict Result Set to Items with defined Age Level < 13 AND without Content Moderation Aspects                                                                                                                                               |
| **noContentModerationHints**      | \[**0**, 1]                                                             | restrict Result Set to Items without Content Moderation Aspects                                                                                                                                                                               |
| **maxAge**                        | \[0, 6, 12 ,16 ,18]                                                     | restrict Result Set to Items with maximally the given Age Level                                                                                                                                                                               |
| **minAge**                        | \[0, 6, 12, 16, 18]                                                     | restrict Result Set to Items with at least the given Age Level                                                                                                                                                                                |
| **applyContentModerationFilters** | \[**0**, 1]                                                             | if set to 1, Covers and Texts may be returned slightly differend, depending on Domain Settings, ContentModeration Results and loggedin Users to hide potentially inappropriate Images/Texts (this is NOT related to the Media itself!)        |
| **dimension**                     | \[hd, fullhd, 2K, 4K]                                                   | restrict the Result to Media with the given Height (alternatively, this Parameter also accepts a numeric Value, which will be mapped to the Media Height)                                                                                     |
| **orientation**                   | \[portrait, landscape]                                                  | restrict the Result to Media with the given Orientation                                                                                                                                                                                       |
| **onlyHDR**                       | \[**0**, 1]                                                             | if set to 1, only Media in HDR Quality will be returned                                                                                                                                                                                       |
| **excludeItems**                  | comma seperated Item IDs                                                | the given Items wont be included into the Result Set                                                                                                                                                                                          |
| **includeUGC**                    | \[**0**, 1]                                                             | add Items, uploaded by the Community, to the Result Set                                                                                                                                                                                       |
| **onlyUGC**                       | \[**0**, 1]                                                             | restrict Result Set to Items, uploaded by the Community                                                                                                                                                                                       |
| **includeRemote**                 | \[**0**, 1]                                                             | also include Files, that originate not by nexxOMNIA, but a Partner Provider                                                                                                                                                                   |
| **onlyRemote**                    | \[**0**, 1]                                                             | only include Files, that originate not by nexxOMNIA, but a Partner Provider                                                                                                                                                                   |
| **includeAIGenerated**            | \[0, **1**]                                                             | also include Files, that have been generated by an AI                                                                                                                                                                                         |
| **onlyAIGenerated**               | \[**0**, 1]                                                             | only include Files, that have been generated by an AI                                                                                                                                                                                         |
| **includeNotListables**           | \[**0**, 1]                                                             | also include Media Items, that are marked as "not listable". This Parameter should be used only in very specific Usecases.                                                                                                                    |
| **includeInvalidChildMedia**      | \[**0**, 1]                                                             | only valid for Container Calls with addChildMedia Parameter. This Parameter will add currently invalid Elements to the Child Listing. To make this Parameter work, an active eternal Session must be used.                                    |
| **includeTeamRestrictedMedia**    | \[**0**, 1]                                                             | This Parameter will Elements to the result list, that would be unavailable due to Media Team Restrictions. To make this Parameter work, an active eternal Session must be used. This Parameter should be used only in very specific Usecases. |
| **includePremieres**              | \[**0**, 1]                                                             | also include Media, that are not valid YET, but will be in the near Future and allow Premiere Functionality                                                                                                                                   |
| **onlyPay**                       | \[**0**, 1]                                                             | restrict Result Set to Items with Payment Attributes                                                                                                                                                                                          |
| **onlyPremiumPay**                | \[**0**, 1]                                                             | restrict Result Set to Items with Payment Attributes AND Premium Payment Attributes                                                                                                                                                           |
| **onlyStandardPay**               | \[**0**, 1]                                                             | restrict Result Set to Items with Payment Attributes AND Standard Payment Attributes                                                                                                                                                          |
| **onlyPlanned**                   | \[**0**, 1]                                                             | only possible if **addPublishingDetails** is active. If set to 1, only planned Elements will be returned.                                                                                                                                     |
| **onlyInactive**                  | \[**0**, 1]                                                             | only possible, if **addPublishingDetails** is active. If set to 1, only unpublished Elements will be returned.                                                                                                                                |
| **forUserID**                     | int                                                                     | restrict Result Set to Items, that matches the given User (only valid for User-targeting Calls, that shall not match the currently loggedin User)                                                                                             |
| **autoFillResults**               | \[**random**, latest, topitems, topitemsexternal, forkids, evergreens]  | if the API Call wont find enough Items, fill the Result Set with the given Method to the given Limit                                                                                                                                          |
| **connectedMediaDetails**         | \[full, **default**, ID, GID]                                           | If the Output Modifier **addConnectedMedia** is used, this Parameter defines the Detail Level for each connected Item.                                                                                                                        |
| **parentMediaDetails**            | \[full, **default**, ID, GID]                                           | If the Output Modifier **addCParentMedia** is used, this Parameter defines the Detail Level for each parent Item.                                                                                                                             |
| **childMediaDetails**             | \[full, **default**, ID, GID]                                           | if the Output Modifier **addChildMedia** is used, this Parameter defines the Detail Level for each Child Item                                                                                                                                 |
| **referencingMediaDetails**       | \[full, **default**, ID, GID]                                           | If the Output Modifier **addReferencingMedia** is used, this Parameter defines the Detail Level for each referencing Item.                                                                                                                    |

## Output Modifiers

| **Parameter**             | Values                                                                                                                                                                                                                              | Description                                                                                                                                                                            |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **addGeoDetails**         | \[**0**, 1]                                                                                                                                                                                                                         | add Details of a connected Location with all Location Attributes to each Item                                                                                                          |
| **addInteractionOptions** | \[**0**, 1]                                                                                                                                                                                                                         | add Information about Social Interactions (canBeRated, canBeFavourite, canBeLike, canBeWatchlist etc) to each Item                                                                     |
| **addConnectedMedia**     | \[persons, shows, places, files, products, links, videos, audio, event, poll, album, article, studio, trailerFor, bonusFor, replaceWith, replacementFor, alternative, alternativeFor, variants, variantOf, nextEpisode, birthdayOf] | add the connected Item Details to each Item. This Modifier take "**all**" to include all possible Items or any combination of the given Enums, comma-seperated.                        |
| **addComments**           | \[**all**, own]                                                                                                                                                                                                                     | add (the last 25) Comments to each Item. It set to "own", only the Comments of the currently loggedin User are returned.                                                               |
| **addAnnotations**        | \[**0**, 1]                                                                                                                                                                                                                         | add (the last 25) Annotations (i.e. Comments within nexxOMNIA) to each Item                                                                                                            |
| **addTextTracks**         | \[data, auto, languages, vtt, srt, ttml, ebuttde]                                                                                                                                                                                   | return the TextTracks in the given Format ("**languages**" will return only a List of available Languages and "**auto**" will decide based on Media Duration, which Format is optimal) |
| **addPaymentData**        | \[**0**, 1]                                                                                                                                                                                                                         | add Information to the Payment State to each Item                                                                                                                                      |
| **addEmbedDetails**       | \[**0**, 1]                                                                                                                                                                                                                         | add Embed Code, oEmbed Link and JSON-LD to each Item (if embeddable)                                                                                                                   |
| **addStatusDetails**      | \[**0**, 1]                                                                                                                                                                                                                         | add a list of allowance Rules to each Item                                                                                                                                             |
| **addParentMedia**        | \[playlists, audioalbums, albums, magazines, folders, groups, bundles, collections, sets, racks, series, season]                                                                                                                    | add the parent Container Details to each Item. This Modifier take "**all**" to include all possible Items or any combination of the given Enums, comma-seperated.                      |
| **addReferencingMedia**   | \[videos, scenes, audio, articles, playlists, series, sets, collections, magazines, albums, events, persons, places, studios, files, folders, groups, links, shows, birthdayOf]                                                     | add the referencing Media Details to each Item. This Modifier take "**all**" to include all possible Items or any combination of the given Enums, comma-seperated.                     |
| **addChildMedia**         | \[videos, audio, images, files, articles, scenes, chapters, live, playlists, audioalbums, albums, collections, sets, racks]                                                                                                         | add the Child Media Details to each Item. This Modifier take "**all**" to include all possible Items or any combination of the given Enums, comma-seperated.                           |
| **addRestrictionDetails** | \[**0**, 1]                                                                                                                                                                                                                         | add an Object of active Restrictions to each Item.                                                                                                                                     |
| **addMultiLanguageData**  | \[**0**, 1]                                                                                                                                                                                                                         | add an Object of available MultiLanguage Metadata to each Item.                                                                                                                        |
| **addHTMLTexts**          | \[**0**, 1]                                                                                                                                                                                                                         | add an Object of HTML Texts that are linked to this Item                                                                                                                               |
| **addCustomAttributes**   | \[**0**, 1]                                                                                                                                                                                                                         | add an Object of domain specific Custom Attributes to each Item.                                                                                                                       |
| **addAwards**             | \[**0**, 1]                                                                                                                                                                                                                         | add an Object of Awards, given to the current Media Item                                                                                                                               |
| **addAuthorDetails**      | \[**0**, 1]                                                                                                                                                                                                                         | add Details of the Author of an Item (only valid in UGC Media Items)                                                                                                                   |
| **addExportDetails**      | \[**0**, 1]                                                                                                                                                                                                                         | add a List of active Exports of the current Item                                                                                                                                       |
| **addPreviewLinks**       | \[**0**, 1]                                                                                                                                                                                                                         | add a List of active PreviewLinks of the current Item                                                                                                                                  |
| **addDownloadLinks**      | \[0, 1]                                                                                                                                                                                                                             | add a List of active DownloadLinks of the current Item                                                                                                                                 |
| **addBroadcastLinks**     | \[**0**, 1]                                                                                                                                                                                                                         | add a List of active BroadcastLinks to the current Item                                                                                                                                |
| **addFileURLs**           | \[**0**, 1]                                                                                                                                                                                                                         | <p>add a List of File Details of the current Item (for example - the URL to the Source Material). </p><p><strong>This Modifier only works with the eternal Session.</strong></p>       |
| **addStreamingURLs**      | \[**0**, 1]                                                                                                                                                                                                                         | <p>add a List of Streaming URLs of the current Item (only valid on streamable Streamtypes) </p><p><strong>This Modifier only works with the eternal Session.</strong></p>              |
| **addRenditionDetails**   | \[**0**, 1]                                                                                                                                                                                                                         | add a List of all available Renditions of the current Item (only valid for transcodable Streamtypes)                                                                                   |
| **addTranscodingDetails** | \[**0**, 1]                                                                                                                                                                                                                         | add a List of all available Transcoding Steps of the current Item (only valid for transcodable Streamtypes)                                                                            |
| **addFeatures**           | \[**0**, 1]                                                                                                                                                                                                                         | add an Object of technical Features (Resolution, Filesize etc) to each Item                                                                                                            |
| **addInsights**           | \[keyframes, structure, ocr, topics, keywords, brands, atmosphere, emotions, entities, faces]                                                                                                                                       | add AI generated Analysis Metadata to each Item. This Modifier take "**all**" to include all possible Items or any combination of the given Enums, comma-seperated.                    |
| **addFaceDetails**        | \[**0**, 1]                                                                                                                                                                                                                         | add a List of detected Persons (via AI, based on Face Detection) to each Media Item                                                                                                    |
| **addPodcastDetails**     | \[**0**, 1]                                                                                                                                                                                                                         | if the current Item is the Source for a Podcast, add the Podcast Details.                                                                                                              |

## Streamtype specific Parameters

### Video

| Parameter                      | Values        | Description                                                                                                                                                                                                            |
| ------------------------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **includeTrailers**            | \[**0**, 1]   | also include Trailers in the Result Set                                                                                                                                                                                |
| **onlyTrailers**               | \[**0**, 1]   | only include Trailers in the Result Set                                                                                                                                                                                |
| **includeBonus**               | \[**0**, 1]   | also include Bonus Material in the Result Set                                                                                                                                                                          |
| **onlyBonus**                  | \[**0**, 1]   | only include Bonus Material in the Result Set                                                                                                                                                                          |
| **onlyForSessionLanguage**     | \[**0**, 1]   | don’t include Videos, that have a different Audio Language than the current Session Language                                                                                                                           |
| **audioLanguage**              | 2-Letter Code | restricts the Result to Media with an Audio Track of the given Language                                                                                                                                                |
| **includeEpisodes**            | \[**0**, 1]   | also include Episodes in the Result Set                                                                                                                                                                                |
| **onlyEpisodes**               | \[**0**, 1]   | only include Episodes in the Result Set                                                                                                                                                                                |
| **includeStoryParts**          | \[**0**, 1]   | also include Videos, that are Part of a Story, in the Result Set                                                                                                                                                       |
| **onlyStoryParts**             | \[**0**, 1]   | only include Videos, that are Part of a Story, in the Result Set                                                                                                                                                       |
| **includeRackParts**           | \[**0**, 1]   | also include Videos, that are Part of a Rack, in the Result Set                                                                                                                                                        |
| **onlyRackParts**              | \[**0**, 1]   | only include Videos, that are Part of a Rack, in the Result Set                                                                                                                                                        |
| **includeLiveRepresentations** | \[**0**, 1]   | also include Videos, that are Representations of a LiveStream, in the Result Set                                                                                                                                       |
| **onlyLiveRepresentations**    | \[**0**, 1]   | only include Videos, that are Representations of a LiveStream, in the Result Set                                                                                                                                       |
| **onlyUnsecured**              | \[**0**, 1]   | only include Videos without DRM/AES Security                                                                                                                                                                           |
| **onlyPanorama**               | \[**0**, 1]   | only include Panorama Video                                                                                                                                                                                            |
| **onlyWithSurroundSound**      | \[**0**, 1]   | only include Videos with Surround Sound                                                                                                                                                                                |
| **minDuration**                | int           | only return Videos with the given minimal Duration (in Seconds)                                                                                                                                                        |
| **maxDuration**                | int           | only return Videos with the given maximal Duration (in Seconds)                                                                                                                                                        |
| **onlyDownloadable**           | \[**0**, 1]   | only include Videos, that can be watched offline                                                                                                                                                                       |
| **addHotSpots**                | \[**0**, 1]   | <p>add a List of all available HotSpots to each Item (also automatically created by Auto HotSpot Rules)</p><p><strong>(this Parameter is an Output Modifier)</strong></p>                                              |
| **addBumpers**                 | \[**0**, 1]   | <p>if the Call is a single Call, optionally expand the Item with appropriate Pre/Post Bumpers (so the Single Item Call will become a Item List Call)</p><p><strong>(this Parameter is an Output Modifier)</strong></p> |

### Scene

| Parameter            | Values      | Description                                                                 |
| -------------------- | ----------- | --------------------------------------------------------------------------- |
| **includeRackParts** | \[**0**, 1] | also include Scenes, that are Part of a Rack, into the Result Rest          |
| **onlyRackParts**    | \[**0**, 1] | only include Scenes, that are Part of a Rack, into the Result Set.          |
| **purpose**          | string      | \[opening, recap,chapter, credits] only include Scenes of the given Purpose |

### Live

| Parameter            | Values      | Description                                                                                                                                                                                                       |
| -------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **includeReLive**    | \[**0**, 1] | if set to 1, the Result Set will also contain not-live LiveStreams, which have a ReLive Recording and can therefore still be played back.                                                                         |
| **includeRackParts** | \[**0**, 1] | also include LiveStreams, that are Part of a Rack, into the Result Rest                                                                                                                                           |
| **onlyRackParts**    | \[**0**, 1] | only include Scenes, that are Part of a Rack, into the Result Rest                                                                                                                                                |
| **addIngestDetails** | \[**0**, 1] | <p>add the Ingest URLs and Tokens for Publishing to the Live Event. </p><p><strong>This Modifier only works with the eternal Session.</strong> </p><p><strong>(this Parameter is an Output Modifier)</strong></p> |

### Rack

| Parameter   | Values | Description                                                      |
| ----------- | ------ | ---------------------------------------------------------------- |
| **purpose** | string | \[language, alternative] only include Racks of the given Purpose |

### Playlist

| Parameter                 | Values      | Description                                                             |
| ------------------------- | ----------- | ----------------------------------------------------------------------- |
| **includeSeasons**        | \[**0**, 1] | also include Seasons in the Result Set                                  |
| **onlySeasons**           | \[**0**, 1] | only include Seasons in the Result Set                                  |
| **includePodcastSources** | \[0, **1**] | also include Playlists, that are Sources for Podcasts in the Result Set |
| **onlyPodcastSources**    | \[**0**, 1] | only include Playlists, that are Sources for Podcasts in the Result Set |

### Audio

| Parameter           | Values        | Description                                                             |
| ------------------- | ------------- | ----------------------------------------------------------------------- |
| **includeTrailers** | \[**0**, 1]   | also include Trailers in the Result Set                                 |
| **onlyTrailers**    | \[**0**, 1]   | only include Trailers in the Result Set                                 |
| **includeBonus**    | \[**0**, 1]   | also include Bonus Material in the Result Set                           |
| **onlyBonus**       | \[**0**, 1]   | only include Bonus Material in the Result Set                           |
| **audioLanguage**   | 2-Letter Code | restricts the Result to Media with an Audio Track of the given Language |
| **includeEpisodes** | \[**0**, 1]   | also include Episodes in the Result Set                                 |
| **onlyEpisodes**    | \[**0**, 1]   | only include Episodes in the Result Set                                 |
| **minDuration**     | int           | only return Audio Files with the given minimal Duration (in Seconds)    |
| **maxDuration**     | int           | only return Audio Files with the given maximal Duration (in Seconds)    |

### AudioAlbum

| Parameter                 | Values      | Description                                                                |
| ------------------------- | ----------- | -------------------------------------------------------------------------- |
| **includePodcastSources** | \[0, **1**] | also include Audio Albums, that are Sources for Podcasts in the Result Set |
| **onlyPodcastSources**    | \[**0**, 1] | only include Audio Albums, that are Sources for Podcasts in the Result Set |

### Image

| Parameter             | Values      | Description                                                      |
| --------------------- | ----------- | ---------------------------------------------------------------- |
| **onlyPanorama**      | \[**0**, 1] | only include Panorama Images                                     |
| **onlyAnimations**    | \[**0**, 1] | only include animated Images                                     |
| **includeStoryParts** | \[**0**, 1] | also include Images, that are Part of a Story, in the Result Set |
| **onlyStoryParts**    | \[**0**, 1] | only include Images, that are Part of a Story, in the Result Set |
| **onlyBW**            | \[**0**, 1] | only include Black/White Images                                  |

### Collection

| Parameter          | Values      | Description                                                     |
| ------------------ | ----------- | --------------------------------------------------------------- |
| **includeStories** | \[**0**, 1] | also include Collections, that serve as Story in the Result Set |
| **onlyStories**    | \[**0**, 1] | only include Collections, that serve as Story in the Result Set |

### Series

| Parameter                | Values      | Description                                                                                                                                                                                                                                                                                                   |
| ------------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **addSeasonList**        | \[**0**, 1] | <p>add a list of Seasons (this is identical to <strong>addItemData</strong>, but skips the underlying Episode Lists) </p><p><strong>(this Parameter is an Output Modifier)</strong></p>                                                                                                                       |
| **addEpisodesForSeason** | int         | <p>add the Episode List of the given Season (referenced by Season Number (1-X), not <strong>Playlist ID</strong>. Optionally set to <strong><code>"latest"</code></strong> to automatically add the Episode List of just the latest Season </p><p><strong>(this Parameter is an Output Modifier)</strong></p> |

### File

| Parameter    | Values | Description                                           |
| ------------ | ------ | ----------------------------------------------------- |
| **fileType** | string | only include Files of the given Filetype (e.g. "pdf") |

### Link

| Parameter   | Values | Description                                                |
| ----------- | ------ | ---------------------------------------------------------- |
| **purpose** | string | \[link, reference] only include Links of the given Purpose |

### Studio

| Parameter         | Values          | Description                                  |
| ----------------- | --------------- | -------------------------------------------- |
| **forStreamtype** | \[video, audio] | only return Studios for the given Streamtype |

### Person

| Parameter           | Values      | Description                                                                                                                                                                                                     |
| ------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **addTaggedImages** | \[**0**, 1] | <p>add a list of Images, where the current Item has been found on (and additionally a list of potential matches without manual confirmation) </p><p><strong>(this Parameter is an Output Modifier)</strong></p> |
| **addTaggedVideos** | \[**0**, 1] | <p>add a list of Videos, where the current Item has been found on (and additionally a list of potential matches without manual confirmation) </p><p><strong>(this Parameter is an Output Modifier)</strong></p> |

### Post

| Parameter    | Values                                              | Description                                                    |
| ------------ | --------------------------------------------------- | -------------------------------------------------------------- |
| **platform** | \[facebook, instagram, twitter, linkedin, mastodon] | only include Posts, that were created on the given Platform    |
| **account**  | int                                                 | only include Posts, that were created within the given Account |


# Endpoints

For most Cases, the default Media API is the right Choice - it allows you query Lists of all default Media Types and add as many Details as necessary

{% content-ref url="/pages/-M9bg6kCRXQmMoV5B2b8" %}
[Media Data](/media-api/endpoints/media-endpoint)
{% endcontent-ref %}

If you need to query various Media Types at the same Time, you need to use the All Media Data API

{% content-ref url="/pages/-M9wmv37peJ4mEbPJw\_i" %}
[All Media Data](/media-api/endpoints/all-media-data)
{% endcontent-ref %}

Interaction Objects like Forms, Polls and Votings share some Similarities with Media Types, but work differently. They cannot be listed for example. If you want to access those Details, use the Template API

{% content-ref url="/pages/-M9bgGjjjFTc7F-tzSlx" %}
[Template Data](/media-api/endpoints/template-endpoint)
{% endcontent-ref %}

If you need various Informations within one Call, but the All Media Data does not help or not even Output Modifiers give enough Details, you may combine or batch various Calls into one with the Processing API

{% content-ref url="/pages/-M9bgX-oF0Pbx0fJewf6" %}
[Processing](/media-api/endpoints/processing-endpoint)
{% endcontent-ref %}


# Media Data

## Single Item Calls

These API Calls will return only one the referenced Item (if available and accessible with the calling Domain). The Result Set Format will be an Object.

## /byid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byid/:itemid`

#### Path Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| streamtype | string  | the Media Streamtype |
| itemid     | integer | the target Item ID   |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /byglobalid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byglobalid/:globalid`

#### Path Parameters

| Name                                         | Type    | Description               |
| -------------------------------------------- | ------- | ------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Media Streamtype      |
| globalid<mark style="color:red;">\*</mark>   | integer | the target Item Global ID |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /byhash

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byhash/:itemhash`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |
| itemhash   | string | the target Item Hash |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /byreference

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byrefnr/:itemreference`

#### Path Parameters

| Name          | Type   | Description               |
| ------------- | ------ | ------------------------- |
| streamtype    | string | the Media Streamtype      |
| itemreference | string | the target Item Reference |

{% tabs %}
{% tab title="200 " %}

```
Item found    
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /byslug

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byslug/:itemslug`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |
| itemslug   | string | the target Item Slug |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /byremotereference

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byremotereference/:remotereference`

This Call queries for an Item, that is (possibly) not hosted by nexxOMNIA. The API will call the given Remote Provider for Media Details and implicitely create the Item for future References within nexxOMNIA.

#### Path Parameters

| Name            | Type    | Description                               |
| --------------- | ------- | ----------------------------------------- |
| streamtype      | string  | the Media Streamtype                      |
| remotereference | integer | the Item Reference of the remote Provider |

#### Query Parameters

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| provider | string | the 3Q nexx Code for this Provider |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /bycodename

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bycodename/:codename`

only available for Container Streamtypes

#### Path Parameters

| Name       | Type   | Description                   |
| ---------- | ------ | ----------------------------- |
| streamtype | string | the Media Streamtype          |
| codename   | string | the Codename of the Container |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Default Item List Calls

These API Calls will return Lists of Items (if available and accessible with the calling Domain). The Result Set Format will be an Array of Objects.

## /all

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/all`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /latest

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/latest`

returns "**all**" Items, sorted by Creation Date (ignores the "**order**" Parameters).

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /picked

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/picked`

returns all "**picked**" Items (ignores the "**order**" Parameter).

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /evergreens

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/evergreens`

returns all "**Evergreen**" Items.

#### Path Parameters

| Name       | Type   | Description                                                     |
| ---------- | ------ | --------------------------------------------------------------- |
| streamtype | string | the Media Streamtype (only supported on Video, Audio and Image) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /forkids

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/forkids`

returns all Items, marked as "created for Kids". This is NOT connected to any Age Restriction.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /withawards

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/withawards`

returns all Items, with have awards added to them.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byquery

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byquery/:query`

performs a regular Query on all Items. The "**order**" Parameters are ignored, if querymode is set to "**fulltext**".

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |
| query      | string | the Search Term      |

#### Query Parameters

| Name                    | Type    | Description                                                                                                                                                                              |
| ----------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| queryMode               | string  | \[classicwithand, classicwithor, fulltext] defines the Way, the Query is executed. Fore more results, "classicwithor" is optimal. For a Lucene Search with Relevance, use "**fulltext**" |
| queryFields             | string  | a comma seperated List of Attributes, to search within. If omitted, the Search will use all available Text Attributes.                                                                   |
| minimalQueryScore       | integer | skip Results with a Query Score lower than the given Value. Only usefull for querymode "**fulltext**".                                                                                   |
| includeSubstringMatches | boolean | By default, the Query will only return Results on full Words. If also Substring Matches shall be returned, set this Parameter to 1. Only usefull, if querymode is not "**fulltext**".    |
| skipReporting           | boolean | if set to 0 or omitted, the Call will implictily report this Query to the nexxOMIA Reporting System.                                                                                     |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /bygeo

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bygeo/:geoquery`

performs a Geo Query on all Items. Only Items, that have a "**Geo**" Attribute can be found. The "**order**" Parameters will be ignored, as "**distance**" will be the sorting Attribute.

#### Path Parameters

| Name       | Type   | Description             |
| ---------- | ------ | ----------------------- |
| streamtype | string | the Media Streamtype    |
| geoquery   | string | the Geo Query Reference |

#### Query Parameters

| Name     | Type    | Description                                                                                                                                                                                                                               |
| -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| geoMode  | string  | \[geo, place, zipcode] defines the given geoquery Term.. If a Geo Location (Lat, Lng) is available, use "**geo**", if only a Zipcode is available, use "**zipcode**", in all other Cases, "**place**" is the best Mode (and the default). |
| distance | integer | the maximal Distance (in km, defaults to 10 km)                                                                                                                                                                                           |

## /random

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/random`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /expiring

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/expiring`

returns only Items, that have an Expiry Attribute (for the current Gateway). The "**order**" Parameter will be ignored, as the Expiry Date will be the order Criteria. The "**addRestrictionDetails**" Output Modifier is usefull to know more about the Expiry Date.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /comingsoon

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/comingsoon`

returns only Items, that have a Start Date Attribute (for the current Gateway), but are active on all other Restrictions. The "**addRestricionDetails**" Output Modifier is usefull to know more about the Start Date.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Please notice, that this API Call will return Items, that are NOT visible or returned in any other Call.
{% endhint %}

## /byitemlist

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byitemlist/:itemlist`

#### Path Parameters

| Name       | Type   | Description                                  |
| ---------- | ------ | -------------------------------------------- |
| streamtype | string | the Media Streamtype                         |
| itemlist   | string | comma seperated Item IDs for this Streamtype |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /mostactive

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/mostactive`

"**mostactive**" refers to the Number of "**Views**" of each Media Item. The "**order**" Parameters will be ignored.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

#### Query Parameters

| Name      | Type    | Description                                                                                     |
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
| timeframe | integer | \[1, 5, 10, 30] the Amount of Days, that will be included in the Computation of the Result Set. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /mostactiveexternal

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/mostactiveexternal`

"**mostactive**" refers to the Number of "**Views**" of each Media Item (on external Platforms). The "**order**" Parameters will be ignored.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

#### Query Parameters

| Name      | Type    | Description                                                                                     |
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
| timeframe | integer | \[1, 5, 10, 30] the Amount of Days, that will be included in the Computation of the Result Set. |

## /topitems

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/topitems`

"**topitems**" refers to the Number of "**Views**" of each Media Item within the last Hour. The "**order**" Parameter will be ignored.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /topitemsexternal

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/topitemsexternal`

"**topitems**" refers to the Number of "**Views**" of each Media Item in the last Hour (on external Platforms). The "**order**" Parameter will be ignored.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Reference Item List Calls

These API Calls will return Lists of Items (if available and accessible with the calling Domain). The Result Set Format will be an Array of Objects.

## /channeloverview

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/channeloverview`

will return an Array of Channels and the latest Media Items under each Channel. (if the "**channel**" Parameter is given, the Array will reflect the Subchannels of this Channel). Ignores the "**order**" and "**respectChannelHierachy**" Parameters.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /formatoverview

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/formatoverview`

will return an Array of Formats and the latest Media Items under each Format. Ignores the "**order**" Parameters.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /recommendationsfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/recommendationsfor/:itemid`

This Call needs a Recommendation Provider configured for the calling Domain.

#### Path Parameters

| Name       | Type    | Description                                         |
| ---------- | ------- | --------------------------------------------------- |
| streamtype | string  | the Media Streamtype                                |
| itemid     | integer | the ID of the Media Item to get Recommendations for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /similarsfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/similarsfor/:itemid`

This Call will return Items, that are similar to the given Media Item. This is close to a Recommendation, but does not include any other Information than the Metadata into the Result Set.

#### Path Parameters

| Name       | Type    | Description                                           |
| ---------- | ------- | ----------------------------------------------------- |
| streamtype | string  | the Media Streamtype                                  |
| itemid     | integer | the ID of the Media Item to compute similar Items for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /recommendationsforcontext

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/recommendationsforcontext/:context`

This Call will try to compute matching Items for a given "**context**". Context is a (long) String, that may be an Article Text or similar Structure. The context may also be given via the other Query Parameters given below. \
\
This Call can also be sent via POST (due to the possible long Amount of Text). \
The calling Domain needs an active AI License.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |
| context    | string | the Tag to query for |

#### Query Parameters

| Name     | Type   | Description                                                                              |
| -------- | ------ | ---------------------------------------------------------------------------------------- |
| title    | string | the Title of the Context Structure                                                       |
| subtitle | string | the Subtitle of the Context Structure                                                    |
| content  | string | the Body of the Context Structure                                                        |
| language | string | the Language of the given Constuct (if omitted, the Domain default Language is expected) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /bytag

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bytag/:tag`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |
| tag        | string | the Tag to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /bytagid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bytagid/:tagid`

#### Path Parameters

| Name       | Type    | Description                    |
| ---------- | ------- | ------------------------------ |
| streamtype | string  | the Media Streamtype           |
| tagid      | integer | the ID of the Tag to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byperson

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byperson/:person`

#### Path Parameters

| Name       | Type   | Description                         |
| ---------- | ------ | ----------------------------------- |
| streamtype | string | the Media Streamtype                |
| person     | string | the Name of the Person to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /bypersonid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bypersonid/:personid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Media Streamtype              |
| personid   | integer | the ID of the Person to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byfile

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byfile/:file`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Media Streamtype              |
| file       | string | the Name of the File to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byfileid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byfileid/:fileid`

#### Path Parameters

| Name       | Type    | Description                     |
| ---------- | ------- | ------------------------------- |
| streamtype | string  | the Media Streamtype            |
| fileid     | integer | the ID of the File to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /bygroup

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bygroup/:group`

#### Path Parameters

| Name       | Type   | Description                        |
| ---------- | ------ | ---------------------------------- |
| streamtype | string | the Media Streamtype               |
| group      | string | the Name of the Group to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /bygroupid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bygroupid/:groupid`

#### Path Parameters

| Name       | Type    | Description                      |
| ---------- | ------- | -------------------------------- |
| streamtype | string  | the Media Streamtype             |
| groupid    | integer | the ID of the Group to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byshow

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byshow/:show`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Media Streamtype              |
| show       | string | the Name of the Show to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byshowid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byshowid/:showid`

#### Path Parameters

| Name       | Type   | Description                     |
| ---------- | ------ | ------------------------------- |
| streamtype | string | the Media Streamtype            |
| showid     | number | the ID of the Show to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byplace

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byplace/:place`

#### Path Parameters

| Name       | Type   | Description                        |
| ---------- | ------ | ---------------------------------- |
| streamtype | string | the Media Streamtype               |
| place      | string | the Name of the Place to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byplaceid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byplaceid/:placeid`

#### Path Parameters

| Name    | Type   | Description                      |
| ------- | ------ | -------------------------------- |
| placeid | number | the ID of the Place to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byproduct

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byproduct/:product`

#### Path Parameters

| Name       | Type   | Description                          |
| ---------- | ------ | ------------------------------------ |
| streamtype | string | the Media Streamtype                 |
| product    | string | the Name of the Product to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byproductid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byproductid/:productid`

#### Path Parameters

| Name | Type   | Description |
| ---- | ------ | ----------- |
|      | string |             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /bystudio

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/bystudio/:studioid`

only available for Videos, Playlists and Sereis

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Media Streamtype              |
| studioid   | number | the ID of the Studio to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /by:container

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/by:container/:containerid`

This Call is available for all Streamtypes, that support Containers (i.e., parent Elements). An Example would be - **`/videos/byplaylist`** (as the Container for the Streamtype Video is Container)

#### Path Parameters

| Name        | Type    | Description                    |
| ----------- | ------- | ------------------------------ |
| streamtype  | string  | the Media Streamtype           |
| container   | string  | the Container Streamtype       |
| containerid | integer | the ID of the target Container |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /connectedtoitem

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/connectedtoitem`

This Call is available for all Streamtypes, that can be linked to other Streamtypes. Typically, this would mean **`[persons, shows, places, links, files, products]`**. It will return all Items of the current Streamtype, that are linked to the referenced Media Item.

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| item       | number | the Media ID         |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## User Item List Calls

These API Calls will return Lists of Items (if available and accessible with the calling Domain). The Result Set Format will be an Array of Objects.

## /byuser

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/byuser/:userid`

returns only Items, uploaded by the given User ID. Ignores the "**onlyUGC**" and "**includeUGC**" Parameters, as only UGC Elements will be returned by default.

#### Path Parameters

| Name       | Type    | Description                  |
| ---------- | ------- | ---------------------------- |
| streamtype | string  | the Media Streamtype         |
| userid     | integer | the ID of the uploading User |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /userhistory

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/userhistory`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

#### Query Parameters

| Name             | Type    | Description                                                     |
| ---------------- | ------- | --------------------------------------------------------------- |
| excludeCompleted | boolean | if set to 1, only not fully completed Elements will be returned |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /userfavourites

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/userfavourites`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /userlikes

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/userlikes`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /userratings

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/userratings`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /userreactions

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/userreactions`

#### Path Parameters

| Name       | Type   | Description      |
| ---------- | ------ | ---------------- |
| streamtype | string | the Media Stream |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /usercomments

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/usercomments`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /useruploads

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/useruploads`

#### Path Parameters

| Name       | Type   | Description          |
| ---------- | ------ | -------------------- |
| streamtype | string | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
I
```

{% endtab %}
{% endtabs %}

## Item Detail List Calls

These API Calls will return Lists of Details for a given Media Item (if available and accessible with the calling Domain). The Result Set Format will be an Array of Objects.

## /texttrackdatafor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/texttrackdatafor/:itemid`

This Call will return Captions for the given Media Item. Captions are only supported on Videos and Audio.

#### Path Parameters

| Name       | Type    | Description                                  |
| ---------- | ------- | -------------------------------------------- |
| streamtype | string  | the Media Streamtype                         |
| itemid     | integer | the ID of the Media Item to get Captions for |

#### Query Parameters

| Name     | Type                                 | Description                                             |
| -------- | ------------------------------------ | ------------------------------------------------------- |
| language | string                               | the desired language of the Caption Data                |
| role     | \["subtitles", "captions", "forced"] | the role of the given Captions, defaults to "subtitles" |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /commentsfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/commentsfor/:itemid`

#### Path Parameters

| Name       | Type    | Description                                  |
| ---------- | ------- | -------------------------------------------- |
| streamtype | string  | the Media Streamtype                         |
| itemid     | integer | the ID of the Media Item to get Captions for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /externalcommentsfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/externalcommentsfor/:itemid`

#### Path Parameters

| Name       | Type    | Description                                  |
| ---------- | ------- | -------------------------------------------- |
| streamtype | string  | the Media Streamtype                         |
| itemid     | integer | the ID of the Media Item to get Captions for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /currentviewsfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/currentviewsfor/:itemid`

#### Path Parameters

| Name       | Type    | Description                                        |
| ---------- | ------- | -------------------------------------------------- |
| streamtype | string  | the Media Streamtype                               |
| itemid     | integer | the ID of the Media Item to get Realtime Views for |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /stitchedmanifestfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/:streamtype/stitchedmanifestfor/:itemid`

This Endpoint is only available for the Streamtypes "playlist", "collection" and "set". Furthermore, the calling Domain must have enabled "Stitching Service".

#### Path Parameters

| Name       | Type    | Description                                  |
| ---------- | ------- | -------------------------------------------- |
| streamtype | string  | the Media Streamtype                         |
| itemid     | integer | the ID of the Media Item to get Captions for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

##

## Streamtype specific Calls

### Video

## /bylivelink

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/videos/bylivelink/:livelinkid`

#### Path Parameters

| Name                                         | Type    | Description                                                     |
| -------------------------------------------- | ------- | --------------------------------------------------------------- |
| livelinkid<mark style="color:red;">\*</mark> | integer | the ID of the LiveLink, that the target Videos were recorded of |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byvariant

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/videos/byvariant/:variantid`

will return the Video Object, that represents the given Variant

#### Path Parameters

| Name                                        | Type    | Description                                               |
| ------------------------------------------- | ------- | --------------------------------------------------------- |
| variantid<mark style="color:red;">\*</mark> | integer | the ID of the Variant, that the returned Video represents |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byrack

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/videos/byrack/:rackid`

#### Path Parameters

| Name                                         | Type    | Description            |
| -------------------------------------------- | ------- | ---------------------- |
| livelinkid<mark style="color:red;">\*</mark> | integer | the ID of a valid Rack |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /nextinseries

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/videos/nextinseries/:videoid`

If a Video is an Episode of a Series, the Call will return the next Episode to watch. This Call is a Single Item Call, and the Result Set will be identical to a Video Call.

#### Path Parameters

| Name                                      | Type    | Description                                   |
| ----------------------------------------- | ------- | --------------------------------------------- |
| videoid<mark style="color:red;">\*</mark> | integer | the ID of the Video, that is currently played |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Live

## /byrack

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/live/byrack/:rackid`

#### Path Parameters

| Name                                    | Type    | Description            |
| --------------------------------------- | ------- | ---------------------- |
| rackd<mark style="color:red;">\*</mark> | integer | the ID of a valid Rack |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Scene

## /byvideo

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/scenes/byvideo/:videoid`

#### Path Parameters

| Name                                      | Type    | Description             |
| ----------------------------------------- | ------- | ----------------------- |
| videoid<mark style="color:red;">\*</mark> | integer | the ID of a valid Video |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

###

### Event

## /today

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/events/today`

will return Events, that occur on the current Day

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /thisweek

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/events/thisweek`

will return Events, that occur on the current Week

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /thismonth

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/events/thismonth`

will return Events, that occur on the current Month

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /nextdays

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/events/nextdays`

will return Events, that occur within the next given Days

#### Query Parameters

| Name | Type    | Description                              |
| ---- | ------- | ---------------------------------------- |
| days | integer | the Number of Days to compute Events for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Polls

## /latestopen

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/polls/latestopen`

will return the latest open Poll, if any

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Votings

## /latestopen

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/polls/latestopen`

will return the latest open Poll, if any

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# All Media Data

The Media API also exposes an Endpoint "**allmedia**", that is able to handle Results from multiple Streamtypes at once. Above all, it is very usefull for Union Queries, where multiple Streamtype Results should be ordered. It is also heavily connected to the "GlobalID" System, which gives every Media Element a global, unique ID, without the need for a Streamtype.

The All Media Endpoint accepts (mostly) all Parameters of the Standard Media Endpoints - streamtype specific Parameters and Output Modifiers are not supported.

{% hint style="info" %}
Each All Media API Endpoint supports the special Query Parameter "**selectedStreamtypes**". With this Parameter, the calling Domain can control, what kind of Media shall be returned. It it is omitted, all possible Media Items will be returned.
{% endhint %}

The All Media API supports most of the default Media API Endpoints in exactly the same Way with the same Parameters - except the Need for a Streamtype.

## Single Item Call

This API Calls will return only one the referenced Item (if available and accessible with the calling Domain). The Result Set Format will be an Object.

## /byglobalid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byglobalid/:globalid`

#### Path Parameters

| Name     | Type   | Description                           |
| -------- | ------ | ------------------------------------- |
| globalid | number | The GlobalID of the target Media Item |

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not found
```

{% endtab %}
{% endtabs %}

## Default Item List Calls

## /all

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/all`

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /latest

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/latest`

returns "**all**" Items, sorted by Creation Date (ignores the "**order**" Parameters).

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /picked

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/picked`

returns all "**picked**" Items (ignores the "**order**" Parameter).

{% tabs %}
{% tab title="200 " %}

```
Item found
```

{% endtab %}

{% tab title="404 " %}

```
Item not available
```

{% endtab %}
{% endtabs %}

## /evergreens

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/evergreens`

returns all "**Evergreen**" Items.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /forkids

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/forkids`

returns all Items, marked as "created for Kids". This is NOT connected to any Age Restriction.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /withawards

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/withawards`

returns all Items, thave have been added Awards to

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byquery

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byquery/:query`

performs a regular Query on all Items. The "**order**" Parameters are ignored, if querymode is set to "**fulltext**".

#### Path Parameters

| Name       | Type   | Description             |
| ---------- | ------ | ----------------------- |
| streamtype | string | the Media Streamtype    |
| query      | string | the targetthe Item Slug |

#### Query Parameters

| Name                    | Type    | Description                                                                                                                                                                                    |
| ----------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| queryMode               | string  | \[classicwithand, classicwithor, fulltext] defines the Way, the Query is executed. Fore more results, "**classicwithor**" is optiomal. For a Lucense Search with Relevance, use "**fulltext**" |
| queryFields             | string  | a comma seperated List of Attributes, to search within. If omitted, the Search will use all available Text Attributes.                                                                         |
| minimalQueryScore       | integer | skip Results with a Query Score lower than the given Value. Only usefull for querymode "**fulltext**".                                                                                         |
| includeSubstringMatches | boolean | By default, the Query will only return REsults on full Words. If also Subsctring Matches shall be returned, set this Parameter to 1. Only usefull, if querymode is not "**fulltext**".         |
| skipReporting           | boolean | if set to 0 or omitted, the Call will implictily report this Query to the nexxOMIA Reporting System.                                                                                           |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /random

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/random`

## /mostactive

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/mostactive`

"**mostactive**" refers to the Number of "**Views**" of each Media Item. The "**order**" Parameters will be ignored.

#### Query Parameters

| Name      | Type    | Description                                                                                     |
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
| timeframe | integer | \[1, 5, 10, 30] the Amount of Days, that will be included in the Computation of the Result Set. |

## /mostactiveexternal

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/mostactiveexternal`

"**mostactive**" refers to the Number of "**Views**" of each Media Item (on external Platforms). The "**order**" Parameters will be ignored.

#### Query Parameters

| Name      | Type    | Description                                                                                     |
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
| timeframe | integer | \[1, 5, 10, 30] the Amount of Days, that will be included in the Computation of the Result Set. |

## Reference Item List Calls

## /bytag

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/bytag/:tag`

#### Path Parameters

| Name | Type   | Description          |
| ---- | ------ | -------------------- |
| tag  | string | the Tag to query for |

## /byperson

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byperson/:person`

#### Path Parameters

| Name   | Type   | Description                         |
| ------ | ------ | ----------------------------------- |
| person | string | the Name of the Person to query for |

## /bypersonid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/bypersonid/:personid`

#### Path Parameters

| Name     | Type    | Description                       |
| -------- | ------- | --------------------------------- |
| personid | integer | the ID of the Person to query for |

## /byshow

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byshow/:show`

#### Path Parameters

| Name | Type   | Description                       |
| ---- | ------ | --------------------------------- |
| show | string | the Name of the Show to query for |

## /byshowid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byshowid/:showid`

#### Path Parameters

| Name   | Type   | Description                     |
| ------ | ------ | ------------------------------- |
| showid | number | the ID of the Show to query for |

## /byplace

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byplace/:place`

#### Path Parameters

| Name  | Type   | Description                        |
| ----- | ------ | ---------------------------------- |
| place | string | the Name of the Place to query for |

## /byplaceid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byplaceid/:placeid`

#### Path Parameters

| Name    | Type   | Description                      |
| ------- | ------ | -------------------------------- |
| placeid | number | the ID of the Place to query for |

## /byproduct

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byproduct/:product`

#### Path Parameters

| Name                                      | Type   | Description                          |
| ----------------------------------------- | ------ | ------------------------------------ |
| product<mark style="color:red;">\*</mark> | string | the Name of the Product to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byproductid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byproductid/:productid`

#### Path Parameters

| Name                                        | Type   | Description                        |
| ------------------------------------------- | ------ | ---------------------------------- |
| productid<mark style="color:red;">\*</mark> | number | the ID of the Product to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byfile

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byfile/:file`

#### Path Parameters

| Name                                   | Type   | Description                       |
| -------------------------------------- | ------ | --------------------------------- |
| file<mark style="color:red;">\*</mark> | string | the Name of the File to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /byfileid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/byfileid/:fileid`

#### Path Parameters

| Name                                     | Type   | Description                     |
| ---------------------------------------- | ------ | ------------------------------- |
| fileid<mark style="color:red;">\*</mark> | number | the ID of the File to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /bystudio

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/allmedia/bystudio/:studioid`

only available for Videos, Playlists and Sereis

#### Path Parameters

| Name     | Type   | Description                       |
| -------- | ------ | --------------------------------- |
| studioid | number | the ID of the Studio to query for |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Template Data

The Template Endpoints offer API Methods for Texts, Forms, Polls, and Votings. These Objects are only partly considered as “Media”, their API Access therefore differ. Especially, there are no listing Methods, it is only possible to request the Data of a single Element, mostly referenced by a Reference Context.

{% hint style="info" %}
As there are no List Methods, all Methods here are Single Item Calls. Therefore, the Result Set Object will be an Object (or NULL, if no valid Item could be found).
{% endhint %}

{% hint style="info" %}
Most of the Media API Parameters are supported, if they make Sense for this kind of Objects. Especially important is the "**forceLanguage**" Parameter, as for most Domains, Forms and Polls are available in multiple Languages.
{% endhint %}

## Text Templates

## /textbyreference

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/textbyreference/:reference`

#### Path Parameters

| Name      | Type   | Description                             |
| --------- | ------ | --------------------------------------- |
| reference | string | the Reference Code of any Text Template |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Form Templates

## /formbyid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/formbyid/:formid`

#### Path Parameters

| Name   | Type   | Description               |
| ------ | ------ | ------------------------- |
| formid | string | the ID of the target Form |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /formbyreference

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/formbyreference/:reference`

#### Path Parameters

| Name      | Type   | Description                    |
| --------- | ------ | ------------------------------ |
| reference | string | the Reference Code of any Form |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /formbycodename

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/formbycodename/:codename`

#### Path Parameters

| Name     | Type   | Description              |
| -------- | ------ | ------------------------ |
| codename | string | the Codename of any Form |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Poll Templates

## /pollbyid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/pollbyid/:pollid`

#### Path Parameters

| Name   | Type   | Description               |
| ------ | ------ | ------------------------- |
| pollid | string | the ID of the target Poll |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /pollbyreference

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/pollbyreference/:reference`

#### Path Parameters

| Name      | Type   | Description                    |
| --------- | ------ | ------------------------------ |
| reference | string | the Reference Code of any Poll |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /pollbycodename

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/pollbyreference/:codename`

#### Path Parameters

| Name     | Type   | Description              |
| -------- | ------ | ------------------------ |
| codename | string | the Codename of any Poll |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /openpoll

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/openpoll`

This Endpoint will simply return the oldest active and valid Poll for the calling Domain.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Voting Templates

## /votingbyid

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/votingbyid/:votingid`

#### Path Parameters

| Name     | Type   | Description                 |
| -------- | ------ | --------------------------- |
| votingid | string | the ID of the target Voting |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /votingbyreference

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/votingbyreference/:reference`

#### Path Parameters

| Name      | Type   | Description                      |
| --------- | ------ | -------------------------------- |
| reference | string | the Reference Code of any Voting |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /votingbycodename

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/votingbyreference/:codename`

#### Path Parameters

| Name     | Type   | Description                |
| -------- | ------ | -------------------------- |
| codename | string | the Codename of any Voting |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /openvoting

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/templates/openvoting`

This Endpoint will simply return the oldest active and valid Voting for the calling Domain.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Processing

The Processing Endpoint is used to manage multiple Tasks as once. Without this Functionality, it may be complicated and very slow to combine the Results of various, unrelated API Results.

## explicit MultiTask

This Endpoint will return an Object with API Results of each Task, that you feed to it. The only accepted and mandatory Parameter is "**tasks**". This Parameter is a JSON encoded Array of API Call Defitions, where each Array Item has the following Structure:

* **name:** The Reference Name, that will be re-used in the Result Object for this API Result
* **endpoint**: The Endpoint to Query (for example **videos**)
* **method**: The API Method to perform (for example **byid**)
* **item**: if the method needs a URL item, add it here (or empty String)
* **parameters**: an Object of additional Parameters (which can be all Parameters and Modifiers, that are mentioned in the API Documentation for this Method

The API Result will be a normal Result without Paging Section. Instead, the Result Section of the Call will have one Object for each Task. Each of those Sections will have its own Result Set and Paging Attribute (if successful).

A Standard Example for the raw "**tasks**" Object would look liks this:

```php
$tasks=[
    [
        'name'=>'myvideo',
        'endpoint'=>'videos',
        'method'=>'byid',
        'item'=>12345,
        'parameters'=> [
            'additionalFields'=>'all'
        ],
        [
            'name'=>'allaudio',
            'endpoint'=>'audio',
            'method'=>'all',
            'item'=>12345,
            'parameters'=>[
                'addLinkedMedia'=>1
            ]
        ],
        [
            'name'=>'articles',
            'endpoint'=>'articles',
            'method'=>'byquery',
            'item'=>'dragon',
            'parameters'=>[
                'additionalFields'=>'all'
            ]
        ]
    ];
```

## /multitask

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/processing/multitask`

#### Request Body

| Name  | Type   | Description                                |
| ----- | ------ | ------------------------------------------ |
| tasks | string | The "**tasks**" Object, as described above |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Pages and Rows

Pages and Rows are a Concept of the various Frontend Solution of 3Q . A Page is in this Concept a List of Rows. Each Row is a List of Media Objects, which again are a Result of any of the Endpoints of the Media / All Media Endpoints.

{% hint style="info" %}
It is not necessary to understand the underlying Query Patterns for any Row. The Page/Row Concepts abstracts this and it only needs the Page / Row ID.
{% endhint %}

{% hint style="info" %}
In Contrast to the **MultiTask API**, the following APIs do support all Media API Parameters and Output Modifiers
{% endhint %}

## /row

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/processing/row/:rowid`

#### Path Parameters

| Name  | Type   | Description              |
| ----- | ------ | ------------------------ |
| rowid | number | the ID of the target Row |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /page

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/processing/page/:pageid`

#### Path Parameters

| Name   | Type   | Description               |
| ------ | ------ | ------------------------- |
| pageid | number | the ID of the target Page |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

##


# Management API

The Management API is designed to control complex Workflows without the need to use the nexxOMNIA API. Its Usage is more advanced than the Media or Frontend APIs and often requires additional Permissions.

Learn more about the Management API Usage in general

{% content-ref url="/pages/-MAHJUHbBPaa3T5nCWOD" %}
[Usage](/management-api/usage)
{% endcontent-ref %}

The Management API offers different Sections and Endpoints for Media and Workflow Control. Find an Overview here

{% content-ref url="/pages/-M9d6IR7-dVNxVuVs8eO" %}
[Endpoints](/management-api/endpoints)
{% endcontent-ref %}


# Usage

The Management API is designed for advanced Users and Scenarios. The Parameters and Concepts of the Media API still apply, where possible, but as the Target of these Management Operations are very different, each Endpoint here offers specific Parameters, explained in the Section and/or the Detail Operation.

{% hint style="info" %}
Please notice, that (nearly) every Endpoint of the Management API needs the "eternal Session" and the Backend API Key to allow Access.
{% endhint %}

The Management API is seperated into some basic Structures.

For all Media Item related Operations, the most common used Endpoints can be found here:

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

{% content-ref url="/pages/-MB8jPtCtYiQowvQkXkp" %}
[Media Export Management](/management-api/endpoints/media-export-management)
{% endcontent-ref %}

For statistical Purposes, use these Endpoints:

{% content-ref url="/pages/-M9bgPXYeyhijTC7FW9Q" %}
[Statistics](/management-api/endpoints/statistics-endpoint)
{% endcontent-ref %}

For Domain related Operations, use these Endpoints:

{% content-ref url="/pages/-M9bgEP47HYrSjbJd8c\_" %}
[Domain Data](/management-api/endpoints/domain-endpoint)
{% endcontent-ref %}

{% content-ref url="/pages/-MB8ibHaXhUUan\_QumBK" %}
[Domain Management](/management-api/endpoints/domain-management)
{% endcontent-ref %}

{% hint style="info" %}
Please notice, that for most of the Domain related Operations, the calling Domain needs to be authorized prior to the Call for the 3Q nexx Partner API Access.
{% endhint %}


# Endpoints

In most Cases, you want to add/modify or delete Media Items:

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

If you need to control Media Exports, you can find the necessary Endpoints here:

{% content-ref url="/pages/-MB8jPtCtYiQowvQkXkp" %}
[Media Export Management](/management-api/endpoints/media-export-management)
{% endcontent-ref %}

If you are interested in the Performance of your Media Items - on own or 3rd Party Platforms, you will find all Details here:

{% content-ref url="/pages/-M9bgPXYeyhijTC7FW9Q" %}
[Statistics](/management-api/endpoints/statistics-endpoint)
{% endcontent-ref %}

For more advanced Scenarios, you might need to add/remove Network Domains automatically or control Domain Attributes and structural Objects:

{% content-ref url="/pages/-MB8ibHaXhUUan\_QumBK" %}
[Domain Management](/management-api/endpoints/domain-management)
{% endcontent-ref %}


# Domain Data

The Domain Endpoint returns Lists of Domain Attributes or associated Resources, that are not Media Items.

## Domain Attributes

## /publicinfo

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/publicinfo`

#### Query Parameters

| Name                   | Type    | Description |
| ---------------------- | ------- | ----------- |
| addCustomAttribues     | boolean |             |
| addChannels            | boolean |             |
| addFormats             | boolean |             |
| addMediaInitialization | boolean |             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /instantconfiguration

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/instantconfiguration/:token`

returns all necessary Details for Domain API Access via a One-Time Token. Often used to configure a Backend automtically without the need to memorize all API Secrets and Session Details.

#### Path Parameters

| Name  | Type   | Description                               |
| ----- | ------ | ----------------------------------------- |
| token | string | The One-Time Token for the calling Domain |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /offlineconfiguration

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/offlineconfiguration`

returns all necessary Details for Handling the Offline Playback System. This Endpoint is normally only relevant for nexxPLAY.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /uploadconfiguration

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/uploadconfiguration`

returns all necessary Details for initiating an API-driven File Upload. This Endpoint is normally only relevant for API SDKs.

#### Path Parameters

| Name | Type   | Description                           |
| ---- | ------ | ------------------------------------- |
| file | string | the Filename, that shall be uploaded. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Domain Associations

## /apps

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/apps`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /campaigns

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/campaigns`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /accounts

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/accounts`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /liveconnections

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/liveconnections`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /channels

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/channels`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /formats

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/formats`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /videocategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/videocategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /audiocategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/audiocategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /imagecategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/imagecategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /filecategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/filecategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /articlecategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/articlecategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /eventcategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/eventcategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /placecategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/placecategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /productcategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/productcategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /tags

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/tags`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /autoupdatefeeds

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/autoupdatefeeds`

will return all active (M)RSS, Podcast and Assistant AutoExporters

#### Query Parameters

| Name             | Type    | Description                                 |
| ---------------- | ------- | ------------------------------------------- |
| addStreamDetails | boolean | set to 1 to include Origin and URL Metadata |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /previewlinks

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/previewlinks`

will return all active PreviewLinks for all Media Items of the calling Domain

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /broadcastlinks

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/broadcastlinks`

will return all active BroadcastLinks for all Media Items of the calling Domain

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /dashboardlinks

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/dashboardlinks`

will return all active DashboardLinks for the calling Domain

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /uploadlinks

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/uploadlinks`

will return all active UploadLinks for the calling Domain

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /downloadlinks

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/downloadlinks`

will return all active DownloadLinks for the calling Domain

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /widgets

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/widgets`

will return all active nexxPLAY Widgets for the calling Domain

#### Request Body

| Name             | Type    | Description                                 |
| ---------------- | ------- | ------------------------------------------- |
| addStreamDetails | boolean | set to 1 to include Origin and URL Metadata |
| addStreamDetails | boolean | set to 1 to include Embed URLs              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /prices

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/prices`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /affiliatepartners

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/affiliatepartners`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /adproviders

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/adproviders`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /payproviders

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/payproviders`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /avsproviders

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/avsproviders`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /licensors

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/licensors`

#### Query Parameters

| Name       | Type   | Description                                                |
| ---------- | ------ | ---------------------------------------------------------- |
| streamtype | string | if set, only return the Licensors for the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /deliverypartners

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/deliverypartners`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /paymodel

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/paymodel`

This Endpoint is a Shortcut for the various Payment Details. It combines the "**prices**" and "**payproviders**" with some Payment specific Text Templates and fastens the Data Query for Payment Configuration on the Frontend Side.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /texttemplates

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/texttemplates/:reference`

This Endpoint  returns a static TextTemplate, predefined in nexxOMNIA. It is only used in Frontend Situations, managed by 3Q nexx.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Network Relations

## /networkdomains

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/networkdomains`

This Call will list all Domains, that are in the same Network as the calling Domain. Bascially, the /**publicinfo** Result for each Domain will be included. If more Details are desired, you may add one of the following Output Modifiers.

#### Query Parameters

| Name                   | Type    | Description |
| ---------------------- | ------- | ----------- |
| addChannels            | boolean |             |
| addFormats             | boolean |             |
| addVideoCategories     | boolean |             |
| addAudioCategories     | boolean |             |
| addImageCategories     | boolean |             |
| addFileCategories      | boolean |             |
| addArticleCategories   | boolean |             |
| addEventCategories     | boolean |             |
| addPlaceCategories     | boolean |             |
| addAccounts            | boolean |             |
| addLiveConnections     | boolean |             |
| addAutoUpdateFeeds     | boolean |             |
| addTags                | boolean |             |
| addCustomAttributes    | boolean |             |
| addProductCategores    | boolean |             |
| addMediaInitialization | boolean |             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## System User Relations

## /systemusers

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/domain/systemusers`

This Call will list all nexxOMNIA (or nexxGO) Users, that may access the calling Domain. A List of Rights is returned too.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# System Data

The System Endpoints offer Methods for managing System Aspects for Domains, that are not directly connected to a Media Object or influencable via Domain Settings.&#x20;

## System Constants

will return Lists of preconfigures, not editable Values (for example - all possible Values, a Video Genre can take)

## /videogenres

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/videogenres`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /audiogenres

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/audiogenres`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /languagecodes

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/languagecodes`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /countrycodes

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/countrycodes`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /persontypes

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/persontypes`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /videocontenttypes

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/videocontenttypes`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /imagecontenttypes

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/imagecontenttypes`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /youtubecategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/youtubecategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /facebookcategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/facebookcategories`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /rokucategories

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/rokucategories`

#### Path Parameters

| Name | Type   | Description |
| ---- | ------ | ----------- |
|      | string |             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /ttsvoices

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/ttsvoices`

#### Path Parameters

| Name | Type   | Description |
| ---- | ------ | ----------- |
|      | string |             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /editableattributesfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/editableattributesfor/:streamtype`

#### Path Parameters

| Name       | Type   | Description                                                  |
| ---------- | ------ | ------------------------------------------------------------ |
| streamtype | string | The Streamtype, you need to get the editable Attributes for. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /editablerestrictionsfor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/editablerestrictionsfor/:streamtype`

#### Path Parameters

| Name       | Type   | Description                                                  |
| ---------- | ------ | ------------------------------------------------------------ |
| streamtype | string | The Streamtype, you need to get the editable Attributes for. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## System Incidents

In case of a serious Malfunction, this Endpoint will return all currently ongoing Incidents.

## /currentincidents

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/system/currentincidents`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Media Management

&#x20;The Media Management API is the only Way to create, update or modify "standard" Media Items or References. All other Endpoints, who may create Media Items only create Items in a UGC Context.

## Media Creation, Editing and Removal

## /fromurl

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/fromurl`

will create a new Media Item of the given Streamtype, if the given **`url`**&#x50;arameter contains a valid Source for the given Streamtype.

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |

#### Request Body

| Name                                  | Type          | Description                                                                                                                                                               |
| ------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | string        | the URL to download the Source                                                                                                                                            |
| useQueue                              | boolean       | if set to 1, the Download will be queued and the Endpoint will create a "planned" Media Item. Should be used on large Files and especially on Video Items.                |
| queueStart                            | number        | UNIX Timestamp - if Queue is used, start the Import at the given Time                                                                                                     |
| transcodeInBackground                 | boolean       | if set to 1, the file transcoding will be paused until enough system resources are available (for Video, Audio and Variant).                                              |
| asVariantFor                          | string        | \[facebook, instagram, twitter, vimeo, youtube, externalview, tiktok] if Streamtype is a Video, create a new Variant of the given Video with this given Target Platform.  |
| asVariantOf                           | integer       | if Streamtype is Video, create a new Variant for the given Video.                                                                                                         |
| autoPublish                           | boolean       | if set, the Media Item will be automatically published/not published. If omitted, the Domain Settings will be applied.                                                    |
| refnr                                 | string        | an internal Reference for the calling Domain                                                                                                                              |
| origin                                | string        | a 3Q nexx Reference for an Origin Source.                                                                                                                                 |
| originReference                       | string        | if given a valid 3Q nexx Origin Source and this Source has its own Reference Ids, this can be defined here.                                                               |
| filename                              | string        | if the original Filename should be stored, send it with this Parameter                                                                                                    |
| language                              | 2-Letter Code | if set and valid, the Media Item (if Video or Audio) will use this Language as Source Language. This may have Effects on automatic Captions and/or Video Detail Analysis. |
| notes                                 | string        | optional Hints and Notes for this Upload for later Inspection                                                                                                             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /fromdata

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/fromdata`

will create a new Media Item of the given Streamtype,  if the Streamtype is not based on a File (like an Article for example).

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |

#### Request Body

| Name                                    | Type    | Description                                                                                                            |
| --------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------- |
| title<mark style="color:red;">\*</mark> | string  | the Title of the new Item                                                                                              |
| autoPublish                             | boolean | if set, the Media Item will be automatically published/not published. If omitted, the Domain Settings will be applied. |
| refnr                                   | string  | an internal Reference for the calling Domain                                                                           |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Please notice, that the Streamtypes "**Person**" and "**Group**" needs slightly different Parameters:

**name** or **artistname** instead of **title**

**gender** \[m, f, n] (only if Person)

**type** \[PersonType Enum] optional, will default to Domain default Type, if omitted
{% endhint %}

## /fromtopic

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/fromtopic`

will create a new Media Item of the given Streamtype,  if the Streamtype is a valid Single-Streamtype Container (Playlist, Album, Audio Album and Magazine are currently supported). \
\
In Contrast to the /fromdata Endpoint, the Result of this Method is a Topic Container. A Topic Container is a Container, which contains of Elements, that were appended automatically by a certain Logic.

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |

#### Request Body

| Name         | Type    | Description                                                                                                                                                                               |
| ------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| title        | string  | the Title of the new Item                                                                                                                                                                 |
| itemSource   | string  | if a topic is defined, Source for the Entries is Media Search, otherwise, itemSource is obligatory \[topitems, topitemsexternal, mostliked, mostcommented, bestrated, mostactive, picked] |
| topic        | string  | the Key Words for the Search for Items in this Container - only necessary, if itemSource is empty.                                                                                        |
| duration     | integer | the target Duration in Minutes of the Container (only for Playlists and Audio Albums)                                                                                                     |
| items        | integer | the target Amount of Container Items (only for Albums and Magazines)                                                                                                                      |
| searchMode   | string  | the desired Way of Searching for finding optimal Items \[classicwithand, classicwithor, fulltext]                                                                                         |
| searchFields | string  | if set, the Search will only be performed on the given List of Attribute (comma seperated), otherwise, all Attributes will be searched                                                    |
| channel      | integer | an optional Restriction for the selected Child Items                                                                                                                                      |
| format       | integer | an optional Restriction for the selected Child Items                                                                                                                                      |
| category     | iteger  | an optional Restriction for the selected Child Items                                                                                                                                      |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /update

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/update`

will update the general Metadata of a Media Item.&#x20;

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

The List of all supported Attributes and possible Values can always be found via API on the **/system/editableattributesfor/:streamtype** Endpoint.

{% content-ref url="/pages/-M9bgUcvD9Y6VAlUluo9" %}
[System Data](/management-api/endpoints/system-endpoint)
{% endcontent-ref %}

## /updaterestrictions

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updaterestrictions`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

The List of all supported Attributes and possible Values can always be found via API on the **/system/editablerestrictionsfor/:streamtype** Endpoint.

{% content-ref url="/pages/-M9bgUcvD9Y6VAlUluo9" %}
[System Data](/management-api/endpoints/system-endpoint)
{% endcontent-ref %}

## /updatefile

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updatefile`

will restart all File Procesing. In Contrast to the /**fromurl** Method, this Method will always be performed via Queue.

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name | Type   | Description                             |
| ---- | ------ | --------------------------------------- |
| url  | string | the URL to download the new Source from |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /updatecontent

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updatecontent`

only necessary for TTS Audio. This endpoint will re-create the Audio File on the current TTS Content. It is also possible to update the Text Content, if the corresponding Parameters are set.

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Request Body

| Name        | Type                   | Description                                                                                                                                                            |
| ----------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| title       | string                 | will be used in Speech, if set                                                                                                                                         |
| subtitle    | string                 | will be used in Speech, if set                                                                                                                                         |
| teaser      | string                 | will be used in Speech, if set                                                                                                                                         |
| textcontent | String                 | will be used in Speech, if set                                                                                                                                         |
| language    | 2-Letter Language Code |                                                                                                                                                                        |
| voice       | Voice ID               | if set, will override the currently used Voice. You can find a List of all Voices on /system/ttsvoices - please notice, that the "ID" of these Voices are not numeric! |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /updateaudiorepresentation

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updateaudiorepresentation`

only necessary for Articles. This Endpoint will create/update an Audio Representation of the Article for "reading" Purposes. The correseponding Audio is not a valid Audio Object itself. &#x20;

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Request Body

| Name             | Type | Description                    |
| ---------------- | ---- | ------------------------------ |
| includeTitle     | bool | will be used in Speech, if set |
| includeSubtitle  | bool | will be used in Speech, if set |
| includeTeaser    | bool | will be used in Speech, if set |
| includeFragments | bool | will be used in Speech, if set |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /approve

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/approve`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name                     | Type    | Description                                                                                                                                            |
| ------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| andClaim                 | boolean | only valid on UGC Elements. If an Approval also claims the Media Item, the Item will lose its UGC Flag and become an "standard" Media Item afterwards. |
| reason                   | string  | a free Text as Reason                                                                                                                                  |
| restrictToAge            | integer | restrict the Item to a dedicated Age Class (verify the Age Class Constants under **/updaterestrictions**)                                              |
| contentModerationAspects | string  | flag the Item with certain Warning (verify the Constants under **/updaterestrictions**)                                                                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /reject

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/reject`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name   | Type   | Description                                                                                 |
| ------ | ------ | ------------------------------------------------------------------------------------------- |
| reason | string | a free Text as Reason                                                                       |
| action | string | \[delete, archive, block, newversion] how to handle the rejected Media Item after Rejection |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /publish

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/publish`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /unpublish

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/unpublish`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name                  | Type    | Description                                                                                                  |
| --------------------- | ------- | ------------------------------------------------------------------------------------------------------------ |
| blockFuturePublishing | boolean | if set to 1, any call to the **/publish** Method will fail, unless the **/unblock** Endpoint has been called |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /unblock

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/unblock`

enables a previously blocked Item to Publishing again.

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /transfertodomain

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/transfertodomain/:domainid`

this Method copies (or moves) a Media Item to another Domain (in the same Network or in a List of previously defined Target Domains)

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name              | Type    | Description                                                                                           |
| ----------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| andDeleteOriginal | boolean | if set to 1, the Copy Operation will become a Move Operation and removes the original File afterwards |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /pick

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/pick`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name  | Type    | Description                                                            |
| ----- | ------- | ---------------------------------------------------------------------- |
| index | integer | \[1-31] to create an Order between picked Elements, set this Parameter |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /unpick

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/unpick`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /setasnew

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/setasnew`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /reorder

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/reorder`

Only valid for Container Elements

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name               | Type   | Description                                                                                                                                                                                                                                                                  |
| ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| itemlist           | string | a Comma seperated List of the new Item IDs in the desired new Order. Please notice, that for Collections and Sets, the Item IDs are NOT the Media Item IDs, but the Reference IDs within the current Container (as they can hold various Streamtypes, the ID is not enough). |
| autoorder          | string | \[title, subtitle, created, uploaded, releasedate, runtime, filesize, random] automatically order the Container by the given Child Attribute (or shuffle it by random)                                                                                                       |
| autoorderdirection | string | \[ASC, DESC] if using AutoOrder, set the Sort Order                                                                                                                                                                                                                          |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /reencode

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/reencode`

For Videos and Audio Files - keep the current File, but start Transcoding again.

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name   | Type   | Description                                                     |
| ------ | ------ | --------------------------------------------------------------- |
| reason | string | a human readable Explanation, why the Transcoding was restarted |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /analyzedetails

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/analyzedetails`

For Videos and Audio Files - start a Detail Analysis Process.

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /archive

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/archive`

only supported on Videos

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/terminate

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/:item/terminate`

only supported on LiveStreams

#### Path Parameters

| Name | Type    | Description        |
| ---- | ------- | ------------------ |
| item | integer | the target Item ID |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/updateplaybackstate

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/:item/updateplaybackstate`

only supported on LiveStreams

#### Path Parameters

| Name | Type    | Description        |
| ---- | ------- | ------------------ |
| item | integer | the target Item ID |

#### Request Body

| Name  | Type   | Description                                   |
| ----- | ------ | --------------------------------------------- |
| state | string | \[on,. pause] the new State of the LiveStream |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/startrecording

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/:item/startrecording`

only supported on LiveStreams

#### Path Parameters

| Name | Type    | Description        |
| ---- | ------- | ------------------ |
| item | integer | the target Item ID |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/stoprecording

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/:item/stoprecording`

only supported on LiveStreams

#### Path Parameters

| Name | Type    | Description        |
| ---- | ------- | ------------------ |
| item | integer | the target Item ID |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /remove

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/remove`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Streamtype specific Media Creation

## /videos/fromvideo

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/videos/fromvideo/:videoid`

extracts a new Highlight Video from a given Video

#### Path Parameters

| Name                                      | Type    | Description      |
| ----------------------------------------- | ------- | ---------------- |
| videoid<mark style="color:red;">\*</mark> | integer | a valid Video ID |

#### Request Body

| Name         | Type    | Description                                                         |
| ------------ | ------- | ------------------------------------------------------------------- |
| duration     | number  | the target Duration of the Highlight Video                          |
| includeAudio | boolean | set to 1, if Audio from the Source Video should be included         |
| purpose      | boolean | \[video, variant, trailer, bonus] the Purpose/Type of the new Video |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/fromliveconnection

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/fromliveconnection/:liveconnectionid`

creates a new LiveStream for a given, native LiveConnection

#### Path Parameters

| Name                                               | Type    | Description               |
| -------------------------------------------------- | ------- | ------------------------- |
| liveconnectionid<mark style="color:red;">\*</mark> | integer | a valid LiveConnection ID |

#### Request Body

| Name  | Type   | Description                                 |
| ----- | ------ | ------------------------------------------- |
| title | string | the Title of the LiveStream                 |
| type  | string | \[event,247] the Type of the new LiveStream |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/fromautoliveconnection

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/fromautoliveconnection`

creates a new LiveStream without an explicit LiveConnection(will be created automatically). This Endpoint is only available, if the calling Domain has "automatic LiveConnection" Feature enabled.

#### Request Body

| Name       | Type    | Description                                               |
| ---------- | ------- | --------------------------------------------------------- |
| title      | string  | the Title of the new LiveStream                           |
| type       | string  | \[event, 247] - the Type of the new LiveStream            |
| sourceType | string  | \[rtmp, srt] - the sourceType for the new LiveStream      |
| enableDVR  | boolean | if set to 1, the new LiveStream will support DVR Features |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/fromremote

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/fromremote`

creates a new LiveStream from a given external Streaming URL

#### Request Body

| Name               | Type    | Description                                                |
| ------------------ | ------- | ---------------------------------------------------------- |
| hlsURL             | string  | the HLS URL of the Source Stream                           |
| dashURL            | string  | the DASH URL of the Source Stream                          |
| title              | string  | the Title of the LiveStream                                |
| type               | string  | \[event,247] the Type of the new LiveStream                |
| supportsLowLatency | \[0, 1] | if the Stream supports LowLatency, set this Parameter to 1 |
| supportsDVR        | \[0, 1] | if the Stream supports DVR, set this Parameter to 1        |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /live/fromvideo

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/live/fromvideo:videoid`

creates a new LiveStream by streaming an existing Video at a specific time

#### Path Parameters

| Name                                      | Type | Description                 |
| ----------------------------------------- | ---- | --------------------------- |
| videoid<mark style="color:red;">\*</mark> | int  | the ID of an existing Video |

#### Request Body

| Name                                             | Type   | Description                                                           |
| ------------------------------------------------ | ------ | --------------------------------------------------------------------- |
| title                                            | string | the Title of the LiveStream, the Video Title will be used otherwise   |
| liveConnection<mark style="color:red;">\*</mark> | int    | the ID of an existing LiveConnection, the LiveStream should start on. |
| start<mark style="color:red;">\*</mark>          | int    | the timestamp where the LiveStream will start publically.             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /scenes/fromvideo

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/scenes/fromvideo/:videoid`

create a new Scene of the given Video

#### Path Parameters

| Name    | Type    | Description      |
| ------- | ------- | ---------------- |
| videoid | integer | a valid Video ID |

#### Request Body

| Name    | Type   | Description                                                                      |
| ------- | ------ | -------------------------------------------------------------------------------- |
| from    | number | start Point of the Scene (in Seconds)                                            |
| until   | number | end Point of the Scene (in Seconds)                                              |
| title   | string | the Scene Title                                                                  |
| purpose | string | \[opening, recap, chapter, credits] the Type of Scene, defaults to "**chapter**" |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /audio/fromvideo

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/audio/fromvideo/:videoid`

extracts a new Audio File from a given Video

#### Path Parameters

| Name    | Type    | Description      |
| ------- | ------- | ---------------- |
| videoid | integer | a valid Video ID |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /audio/fromcaption

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/audio/fromcaption/:captionid`

create a new Audio File by Text-to-Speech AI of the given Caption (of any kind of Media)

#### Path Parameters

| Name      | Type    | Description        |
| --------- | ------- | ------------------ |
| captionid | integer | a valid Caption ID |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /audio/fromtext

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/audio/fromtext`

create a new Audio File by Text-to-Speech AI of the given Text.

#### Request Body

| Name                                          | Type     | Description                                                                                                                                                            |
| --------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| language                                      | string   | interpret the Text in the given Language (defaults to Domain Default Language, if omitted)                                                                             |
| voice                                         | Voice ID | if set, will override the currently used Voice. You can find a List of all Voices on /system/ttsvoices - please notice, that the "ID" of these Voices are not numeric! |
| textcontent<mark style="color:red;">\*</mark> | String   | will be used in Speech, if set                                                                                                                                         |
| teaser                                        | String   | will be used in Speech, if set                                                                                                                                         |
| subtitle                                      | String   | will be used in Speech, if set                                                                                                                                         |
| title                                         | String   | will be used in Speech, if set                                                                                                                                         |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /radio/fromliveconnection

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/radio/fromliveconnection/:liveconnectionid`

creates a new Radio for a given, native LiveLink.

#### Path Parameters

| Name       | Type    | Description        |
| ---------- | ------- | ------------------ |
| livelinkid | integer | a valid LiveLinkID |

#### Request Body

| Name  | Type   | Description                            |
| ----- | ------ | -------------------------------------- |
| title | string | the Title of the Radio                 |
| type  | string | \[event,247] the Type of the new Radio |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /radio/fromautoliveconnection

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/radio/fromautoliveconnection`

creates a new Radio without a n explicit LiveLink (will be created automatically). This Endpoint is only available, if the calling Domain has the "automatic LiveLink" Feature enabled.

#### Request Body

| Name  | Type   | Description            |
| ----- | ------ | ---------------------- |
| title | string | the Title of the Radio |
| type  | string | \[event,247] the Type  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /radio/fromremote

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/radio/fromremote`

creates a new Radio from a given external URL

#### Request Body

| Name    | Type   | Description                            |
| ------- | ------ | -------------------------------------- |
| mp3URL  | string | the URL of the (MP3) Stream            |
| title   | string | the Title of the Radio                 |
| type    | string | \[event,247] the Type of the new Radio |
| opusURL | string | the URL of the (OPUS) Stream           |
| aacURL  | string | the URL of the (AAC) Stream            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /images/fromvideo

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/images/fromvideo/:videoid`

extracts a new Image from a given Video

#### Path Parameters

| Name    | Type    | Description      |
| ------- | ------- | ---------------- |
| videoid | integer | a valid Video ID |

#### Request Body

| Name       | Type    | Description                                                             |
| ---------- | ------- | ----------------------------------------------------------------------- |
| from       | number  | take the Image on the given Time (in Seconds)                           |
| until      | number  | create an animated Gif, if this Parameter is set (in Seconds)           |
| title      | string  | the Image Title                                                         |
| useAsCover | boolean | if set to 1, apply the created Image as Cover for the referenced Video. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /posts/fromtext

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/posts/fromtext`

as the Streamtype "post" only includes external Contents, this Endpoint is closely related to a Media Export. Technically, this Endpoint posts the given Content directly to the given Account and creates a nexxOMNIA Social Post Item out of it. Supported Accounts are Accounts of the Types \[**facebook**, **twitter**]

#### Request Body

| Name      | Type    | Description                                                  |
| --------- | ------- | ------------------------------------------------------------ |
| account   | string  | the ID of a valid Domain Account                             |
| postText  | integer | the Text of the Post                                         |
| postImage | integer | the (optional) ID of an existing Image to attach to the Post |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
There is also an Endpoint to implicitely create Posts by sharing the Link of a Media Item to a Platform instead of physically exporting it. You will find the **/exportaspost** Endpoint under **Media Export Management.**
{% endhint %}

## Cover Management

## /cover

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/cover`

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Query Parameters

| Name          | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url           | string  | the URL to download the Cover from                                                                                                             |
| decription    | string  | an optional Description for the Cover                                                                                                          |
| fromTime      | number  | obligatory, if url is empty. If Streamtype is Video, Variant or Scene, take a Screenshot from the given Timestamp of the File itself.          |
| assetLanguage | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright     | string  | additional Copyright Information for the Cover                                                                                                 |
| isAIGenerated | \[0, 1] | if set to 1, the System will assume, that this Asset has been generated by an AI                                                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /alternativecover

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/alternativecover`

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Query Parameters

| Name          | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url           | string  | the URL to download the Cover from                                                                                                             |
| description   | string  | an optional Description for the Cover                                                                                                          |
| fromTime      | string  | obligatory, if url is empty. If Streamtype is Video, Variant or Scene, take a Screenshot from the given Timestamp of the File itself.          |
| assetLanguage | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright     | string  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated | \[0, 1] | if set to 1, the System will assume, that this Asset has been generated by an AI                                                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /abtestalternative

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/abtestalternative`

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Query Parameters

| Name          | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url           | string  | the URL to download the Cover from                                                                                                             |
| description   | string  | an optional Description for the Cover                                                                                                          |
| fromTime      | number  | obligatory, if url is empty. If Streamtype is Video, Variant or Scene, take a Screenshot from the given Timestamp of the File itself.          |
| assetLanguage | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright     | string  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated | \[0, 1] | if set to 1, the System will assume, that this Asset has been generated by an AI                                                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /actionshot

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/actionshot`

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Query Parameters

| Name          | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url           | string  | the URL to download the Cover from                                                                                                             |
| description   | string  | an optional Description for the Cover                                                                                                          |
| fromTime      | number  | obligatory, if url is empty. If Streamtype is Video, Variant or Scene, take a Screenshot from the given Timestamp of the File itself.          |
| assetLanguage | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright     | string  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated | \[0, 1] | if set to 1, the System will assume, that this Asset has been generated by an AI                                                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /quadcover

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/quadcover`

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Query Parameters

| Name          | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url           | string  | the URL to download the Cover from                                                                                                             |
| description   | string  | an optional Description for the Cover                                                                                                          |
| fromTime      | number  | obligatory, if url is empty. If Streamtype is Video, Variant or Scene, take a Screenshot from the given Timestamp of the File itself.          |
| assetLanguage | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright     | string  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated | \[0, 1] | if set to 1, the System will assume, that this Asset has been generated by an AI                                                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /banner

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/banner`

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Query Parameters

| Name          | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url           | string  | the URL to download the Cover from                                                                                                             |
| description   | string  | an optional Description for the Cover                                                                                                          |
| fromTime      | number  | obligatory, if url is empty. If Streamtype is Video, Variant or Scene, take a Screenshot from the given Timestamp of the File itself.          |
| assetLanguage | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright     | string  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated | \[0, 1] | if set to 1, the System will assume, that this Asset has been generated by an AI                                                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /artwork

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/artwork`

An Artwork must be a transparent PNG File, that represents the Title. Therefore, a description and a creation from a Timestamp is not possible.

#### Path Parameters

| Name                                         | Type   | Description                       |
| -------------------------------------------- | ------ | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | number | the target Item ID                |

#### Query Parameters

| Name          | Type    | Description                                                                                                                                    |
| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url           | string  | the URL to download the Cover from                                                                                                             |
| assetLanguage | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| description   | string  | an optional Description for the Cover                                                                                                          |
| copyright     | string  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated | \[0, 1] | if set to 1, the System will assume, that this Asset has been generated by an AI                                                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Multi Language Management

### TextTracks

## /texttrackfromurl

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/texttrackfromurl`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |

#### Request Body

| Name     | Type                                 | Description                                             |
| -------- | ------------------------------------ | ------------------------------------------------------- |
| url      | string                               | the URL to download the Caption File from               |
| language | string                               | valid 2-Letter-Code of the Language of the Caption File |
| title    | string                               | the Title of this Caption (defaults to Language Name)   |
| role     | \["subtitles", "captions", "forced"] | the role for the uploaded Caption Data                  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /texttrackfromspeech

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/texttrackfromspeech`

This Endpoint will create a new Text Track via AI from the spoken Audio.

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /translatetexttrackto

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/translatetexttrackto/:language`

will translate the main Translations (of the Source Langauge) automatically and create a new Text Track in the target Language.

#### Path Parameters

| Name       | Type    | Description                                   |
| ---------- | ------- | --------------------------------------------- |
| streamtype | string  | the Streamtype of the target Item             |
| item       | integer | the target Item ID                            |
| language   | integer | 2-Letter-Code of the Language to translate to |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removetexttrack

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removetexttrack`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Request Body

| Name     | Type   | Description                                                                                                         |
| -------- | ------ | ------------------------------------------------------------------------------------------------------------------- |
| language | string | the 2-Letter-Code of the Language of the Captions, that shall be removed                                            |
| role     | string | the TextTrack with the given Language AND the given Role will be removed (role defaults to "subtitles", if omitted) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Translations

## /translateto

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/translateto/:language`

will translate the textual Media Metadata automatically and add a corresponding MultiLanguage Attribute on the Item.

#### Path Parameters

| Name       | Type    | Description                                   |
| ---------- | ------- | --------------------------------------------- |
| streamtype | string  | the Streamtype of the target Item             |
| item       | integer | the target Item ID                            |
| language   | integer | 2-Letter-Code of the Language to translate to |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addtranslation

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addtranslation`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |

#### Request Body

| Name        | Type   | Description                                                           |
| ----------- | ------ | --------------------------------------------------------------------- |
| language    | string | the 2-Letter Code of the Langage for the MultiLanguage Item to create |
| title       | string | the translated Title                                                  |
| subtitle    | string | the translated Subtitle                                               |
| teaser      | string | the translated Teaser                                                 |
| description | string | the translated Description (or Text Content)                          |
| orderhint   | string | the translated Orderhint                                              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The Streamtype "**article**" has no "**description**", but a "**textcontent**". If the target Streamtype is "**article**", use "**textcontent**" instead of "**description**".
{% endhint %}

## /updatetranslation

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updatetranslation`

This Endpoint will update a specific MultiLanguage Set. It takes the same Parameter as the /addtranslation Endpoint, but will update the corresponding Set, if found.

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Query Parameters

| Name                                       | Type   | Description                                                          |
| ------------------------------------------ | ------ | -------------------------------------------------------------------- |
| language<mark style="color:red;">\*</mark> | string | the 2-Letter-Code of the Language of the MultiLanguage Set to update |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removetranslation

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removetranslation`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Query Parameters

| Name                                       | Type   | Description                                                          |
| ------------------------------------------ | ------ | -------------------------------------------------------------------- |
| language<mark style="color:red;">\*</mark> | string | the 2-Letter-Code of the Language of the MultiLanguage Set to delete |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Container Management

## /addtocontainer

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addtocontainer/:containerid`

add the given Item to the given Container - Container in this Case is the default Container Streamtype.

#### Path Parameters

| Name        | Type    | Description                       |
| ----------- | ------- | --------------------------------- |
| streamtype  | string  | the Streamtype of the target Item |
| item        | integer | the target Item ID                |
| containerid | integer | the Container ID                  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addtocollection

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addtocollection/:collectionid`

add the given Item to the given Collection - Collections support only Video, Audio, Image, Articles and Files as Child Streamtype.

#### Path Parameters

| Name         | Type    | Description                       |
| ------------ | ------- | --------------------------------- |
| streamtype   | string  | the Streamtype of the target Item |
| item         | integer | the target Item ID                |
| collectionid | integer | the Collection ID                 |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addtoset

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addtoset/:setid`

add the given Item to the given Set - Sets support only Videos and Scenes as Child Streamtype.

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| setid      | integer | the Set ID                        |

#### Query Parameters

| Name    | Type   | Description                                                                      |
| ------- | ------ | -------------------------------------------------------------------------------- |
| purpose | String | optional Purpose (must be one of \[teaser,makingof,behindthescenes,highlights ]) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addtorack

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addtorack/:rackid`

add the given Item to the given Rack - Rackssupport only Videos and Live Streams as Child Streamtype (and those cannot be mixed)

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |
| rackd<mark style="color:red;">\*</mark>      | integer | the Rack ID                       |

#### Query Parameters

| Name    | Type  | Description                                                                                                                                                                     |
| ------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| purpose | Sting | optonal Description of this Item. Can be free String, if the Rack handles Video Alternatives, must be a valid 2-Letter-Language  Code, if the Rack contains Audio Alternatives. |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /addtobundle

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addtobundle/:bundleid`

add the given Item to the given Bundle

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| bundleid   | integer | the Bundle ID                     |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromcontainer

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removefromcontainer/:containerid`

removes the given Item from the given Container, if it was added to that before.

#### Path Parameters

| Name        | Type    | Description                       |
| ----------- | ------- | --------------------------------- |
| streamtype  | string  | the Streamtype of the target Item |
| item        | integer | the target Item ID                |
| containerid | integer | the Container ID                  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromcollection

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removefromcollection/:collectionid`

removes the given Item from the given Collection, if it was added to that before.

#### Path Parameters

| Name         | Type    | Description                       |
| ------------ | ------- | --------------------------------- |
| streamtype   | string  | the Streamtype of the target Item |
| item         | integer | the target Item ID                |
| collectionid | integer | the Collection ID                 |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromset

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removefromset/:setid`

removes the given Item from the given Set, if it was added to that before.

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| setid      | integer | the Set ID                        |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromrack

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removefromrack/:rackid`

removes the given Item from the given Rack, if it was added to that before.

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |
| rackd<mark style="color:red;">\*</mark>      | integer | the Rack ID                       |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefrombundle

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removefrombundle/:bundleid`

removes the given Item from the given Bundle, if it was added to that before.

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| bundleid   | integer | the Bundle ID                     |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Media Connections

### HotSpots

## /addhotspot

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addhotspot`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Request Body

| Name                                   | Type    | Description                                                                                                     |
| -------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------- |
| type<mark style="color:red;">\*</mark> | string  | \[text, link, interstitial, video, banner, seek] the Type of the new HotSpot                                    |
| autoPosition                           | boolean | if set to 1, the HotSpot will be automatically placed. If set to 0, an X/Y Position must be given               |
| from<mark style="color:red;">\*</mark> | int     | the Start for the new HotSpot in Seconds within the Duration of the target Media                                |
| to<mark style="color:red;">\*</mark>   | int     | the End for the new HotSpot in Seconds within the Duration of the target Media                                  |
| xPos                                   | int     | the center of the HotSpot should be positioned at xPos % of the Player Width                                    |
| yPos                                   | int     | the center of the HotSpot should be positioned at yPos % of the Player Height                                   |
| maxWidth                               | int     | if type is "banner", this is the maximal Width in % of the Banner to occupy within the Player                   |
| linkedVideo                            | int     | the ID of a valid, existing Video - only necessary, if type if "video"                                          |
| showCover                              | int     | if type is "video", set this to 1 to show the Cover of the Video within the HotSpot                             |
| title                                  | String  | the visible Title of the HotSpot                                                                                |
| subtitle                               | String  | the visible second Line of the HotSpot                                                                          |
| link                                   | String  | if type of the HotSpot is "link", the Target URL of this HotSpot (can optionally also be used on type "banner)  |
| detailText                             | String  | if type of the HotSpot is "interstitial", the raw Text to show on the Detail Page after Click (HTML is allowed) |
| imageURL                               | String  | if Type of the HotSpot is "banner", this is the URL of the Image to show                                        |
| seekTarget                             | Float   | if Type of the HotSpot is "seek", this is target time within the Media Runtime to seek on Click                 |
| detailTitle                            | String  | if type of the HotSpot is "interstitial", the Title of the Detail Page after Click                              |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /updatehotspot

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updatehotspot`

This Endpoint will update a specific HotSpot. It takes the same Parameter as the /addhotspot Endpoint, but will update the corresponding HotSpot, if found.

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Query Parameters

| Name                                        | Type    | Description                     |
| ------------------------------------------- | ------- | ------------------------------- |
| hotspotid<mark style="color:red;">\*</mark> | integer | the ID of the HotSpot to update |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removehotspot

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removehotspot`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Query Parameters

| Name                                        | Type    | Description                     |
| ------------------------------------------- | ------- | ------------------------------- |
| hotspotid<mark style="color:red;">\*</mark> | integer | the ID of the HotSpot to delete |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Awards

## /addaward

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addaward`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Request Body

| Name                                    | Type   | Description                                                      |
| --------------------------------------- | ------ | ---------------------------------------------------------------- |
| award<mark style="color:red;">\*</mark> | string | the Name of the new Award                                        |
| category                                | string | the Name of a Category within the Award                          |
| state                                   | string | \[nominee,winner] the Status of this Award, defaults to "winner" |
| date                                    | string | \[YYYY-MM-DD] the Date, the Award was given or announced         |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /updateaward

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updateaward`

This Endpoint will update a specific Award. It takes the same Parameter as the /addaward Endpoint, but will update the corresponding Award, if found.

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Query Parameters

| Name                                      | Type    | Description                   |
| ----------------------------------------- | ------- | ----------------------------- |
| awardid<mark style="color:red;">\*</mark> | integer | the ID of the Award to update |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removeaward

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removeaward`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Query Parameters

| Name                                      | Type    | Description                   |
| ----------------------------------------- | ------- | ----------------------------- |
| awardid<mark style="color:red;">\*</mark> | integer | the ID of the Award to delete |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### License Notes

## /addlicensenote

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addlicensenote`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Request Body

| Name                                   | Type   | Description                     |
| -------------------------------------- | ------ | ------------------------------- |
| note<mark style="color:red;">\*</mark> | string | the Note itself as (plain) Text |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /removelicensenote

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removelicensenote`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |

#### Query Parameters

| Name                                            | Type    | Description                          |
| ----------------------------------------------- | ------- | ------------------------------------ |
| licensenoteid<mark style="color:red;">\*</mark> | integer | the ID of the License Note to delete |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### existing Media

## /connectlink

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/connectlink/:linkid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| linkid     | integer | the  target Link ID               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /connectfile

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/connectfile/:fileid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| fileid     | integer | the  target File ID               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /connectperson

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/connectperson/:personid`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |
| personid<mark style="color:red;">\*</mark>   | integer | the  target Person ID             |

#### Query Parameters

| Name    | Type   | Description                                                                                  |
| ------- | ------ | -------------------------------------------------------------------------------------------- |
| purpose | String | optional Description for this Person on that Media (e.g. a Role in case of an Actor/Actress) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /connectgroup

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/connectgroup/:groupid`

#### Path Parameters

| Name                                         | Type    | Description                       |
| -------------------------------------------- | ------- | --------------------------------- |
| streamtype<mark style="color:red;">\*</mark> | string  | the Streamtype of the target Item |
| item<mark style="color:red;">\*</mark>       | integer | the target Item ID                |
| groupid<mark style="color:red;">\*</mark>    | integer | the  target Group ID              |

#### Query Parameters

| Name    | Type   | Description                                       |
| ------- | ------ | ------------------------------------------------- |
| purpose | String | optional Description for this Group on that Media |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /connectshow

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/connectshow/:showid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| showid     | integer | the  target Show ID               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /connectplace

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/connectplace/:placeid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| placeid    | integer | the  target Place ID              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /connectproduct

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/connectproduct/:productid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| productid  | integer | the  target Product ID            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removelink

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removelink/:linkid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| linkid     | integer | the  target Link ID               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefile

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removefile/:fileid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| fileid     | integer | the  target File ID               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removeperson

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removeperson/:personid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| personid   | integer | the  target Person ID             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removegroup

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removegroup/:groupid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| groupid    | integer | the  target Group ID              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removeshow

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removeshow/:showid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| showid     | integer | the  target Show ID               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removeplace

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removeplace/:placeid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| placeid    | integer | the  target Place ID              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removeproduct

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removeproduct/:productid`

#### Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| streamtype | string  | the Streamtype of the target Item |
| item       | integer | the target Item ID                |
| productid  | integer | the  target Place ID              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Media Export Management

&#x20;With the Media Export Management Endpoints, it is possible to manage the Lifecycle of nexxOMNIA Media Items on 3rd Party Platforms. Additionally, for Sharing and Review Processes, the Preview Links are manageable here.

## External Platforms

{% hint style="info" %}
Please notice, that nexxOMNIA can also create simple, text-based Posts without a Media Item. The Streamtype "**post**" is reserved for this kind of Media. As the Creation of a Post is not really an Export, but a direct Media Creation, you will find this Endpoint (**/posts/fromtext**) under "**Media Management**".
{% endhint %}

## /export

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/export`

An Export physically transfers the Media Item to the 3rd Party Plaform. Supported are only the Streamtypes "**video**", "**live**", "**image**" and "**scene**". Supported Accounts are Accounts of Type \[**youtube**, **facebook**, **instagram**, **vimeo**, **twitter, tiktok**]

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name             | Type    | Description                                                                                                                                                      |
| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| account          | integer | the ID of a valid Domain Account                                                                                                                                 |
| externalCategory | string  | the ID/Name of the Category of the 3rd Party Platform - necessary for **Facebook** and **YouTube** (but can be set on the Media Item directly too)               |
| externalState    | string  | \[public, unlisted, private] the State of the new Item on the 3rd Party Platform                                                                                 |
| publicationDate  | integer | UNIX Timestamp for the Publication Date on the 3rd Party Platform. If used, externalState must be "**private**".                                                 |
| inVariant        | number  | If the Export should use  an existing Variant, add the Variant ID here.                                                                                          |
| postText         | string  | As **Mastodon, Threads and Instagram** only supports "posts", add an (optional) Posting Text here, if the Target Platform is **Mastodon, Threads or Instagram**. |
| list             | integer | the ID of a valid Playlist in the given Account                                                                                                                  |
| platformContext  | string  | \[default, reel, short, story] if Streamtype and Platform support it, add a hint on how to present the Media on the target Platform                              |
| metadataLanguage | string  | optional Language for Metadata and Covers, in case the Domain uses multiple Languages                                                                            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /exportaspost

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/exportaspost`

An Post Export creates a Post Media Item in nexxOMNIA, while posting the given Text/Link/Image on the target Platform. Supported are all linkable Streamtypes. Supported Accounts are Accounts of Type \[**facebook**, **twitter**]

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name         | Type    | Description                                                                                                            |
| ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------- |
| account      | integer | the ID of a valid Domain Connection (Account)                                                                          |
| postURL      | string  | the URL of the Media Item on the Domain Frontend. Can be omitted, if nexxOMNIA can create the Link to the Item itself. |
| postText     | string  | the Post Text                                                                                                          |
| postImage    | integer | an ID of an exisiting Image within nexxOMNIA. If omitted, the Media Cover will be used as Image.                       |
| postWithLink | boolean | only needed on Streamtype "article" (see Info below).                                                                  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Please notice, that the Streamtype "article" behaves differently. An Article can serve as Post Source for a Link to this Article - or can be the Post itself. In this Case, no Link will be included in the created Post.
{% endhint %}

## /updateexport

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/updateexport`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name              | Type   | Description                                                                                          |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| item              | string | must be set, if externalReference is not set. item is the Export ID from nexxOMNIA                   |
| externalReference | string | must be set, if item is not set. externalReference is the ID of the Export on the 3rd Party Platform |
| partToUpdate      | string | \[all, metadata, texttracks, cover, video] what Part should be updated                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removeexport

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removeexport`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name              | Type   | Description                                                                                          |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| item              | string | must be set, if externalReference is not set. item is the Export ID from nexxOMNIA                   |
| externalReference | string | must be set, if item is not set. externalReference is the ID of the Export on the 3rd Party Platform |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## PreviewLinks

## /addpreviewlink

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/addpreviewlink`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name                 | Type    | Description                                                                               |
| -------------------- | ------- | ----------------------------------------------------------------------------------------- |
| language             | string  | if set to a valid 2-Letter Language Code, the Frontend will be presented in that Language |
| maxStarts            | integer | if set, the maximal Number of Access to this Link is limited to this Number               |
| showAnnotations      | boolean | if set to 1, the User will be able to see existing Annotations                            |
| allowAnnotations     | boolean | if set to 1, the User will be able to add Annotations                                     |
| allowSnapshots       | boolean | if set to 1, the Player will offer a Possibility to create and download Snapshots         |
| allowSourceDownloads | boolean | if set to 1, the Player will allow the Download of the Source Video                       |
| code                 | string  | if set to a valid String, this will be the Code, any User has to enter before access      |
| useDomainStyle       | boolean | if set to 1, the PreviewLink UI will use the Domain Colors and Icons.                     |
| title                | string  | the Title of the new PreviewLink                                                          |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removepreviewlink

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removepreviewlink/:previewlinkid`

#### Path Parameters

| Name          | Type   | Description                                |
| ------------- | ------ | ------------------------------------------ |
| streamtype    | string | the Streamtype of the target Item          |
| item          | string | the target Item ID                         |
| previewlinkid | number | the ID of a valid PreviewLink of this Item |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## DownloadLinks

## /adddownloadlink

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/adddownloadlink`

#### Path Parameters

| Name       | Type   | Description                       |
| ---------- | ------ | --------------------------------- |
| streamtype | string | the Streamtype of the target Item |
| item       | number | the target Item ID                |

#### Request Body

| Name              | Type    | Description                                                                                                                                                                                                                                                       |
| ----------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| language          | string  | if set to a valid 2-Letter Language Code, the Frontend will be presented in that Language                                                                                                                                                                         |
| maxStarts         | integer | if set, the maximal Number of Access to this Link is limited to this Number                                                                                                                                                                                       |
| code              | string  | if set to a valid String, this will be the Code, any User has to enter before ac                                                                                                                                                                                  |
| useDomainStyle    | boolean | if set to 1, the DownloadLink UI will use the Domain Colors and Icons.                                                                                                                                                                                            |
| title             | string  | the Title of the new DownloadLink                                                                                                                                                                                                                                 |
| fileType          | string  | if omitted or set to "source", the Source File will be downloaded. For Audio, it can be set to \[mp3, aac, opus] to offer the transcoded Version in the corresponding Format. For Video, the Options depend on the Transcoding Settings (ask 3Q nexx for details) |
| includeTextTracks | boolean | if set to 1, the DownloadLink will also contain TextTracks of the Media Item (if available)                                                                                                                                                                       |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removedownloadlink

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtype/:item/removedownloadlink/:downloadlinkid`

#### Path Parameters

| Name           | Type   | Description                                 |
| -------------- | ------ | ------------------------------------------- |
| streamtype     | string | the Streamtype of the target Item           |
| item           | string | the target Item ID                          |
| downloadlinkid | number | the ID of a valid DownloadLink of this Item |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Domain Management

## Domain Management

To use the Domain Management APIs, the calling Domain must be part the Partner Management Group of 3Q. Contact the Support, if this is needed.

## /domains/clonefornetwork

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/domains/clonefornetwork`

#### Request Body

| Name                                          | Type   | Description                                                                          |
| --------------------------------------------- | ------ | ------------------------------------------------------------------------------------ |
| title<mark style="color:red;">\*</mark>       | string | the Title of the new registered Domain                                               |
| url<mark style="color:red;">\*</mark>         | string | the URL of the new registered Domain                                                 |
| networkmode<mark style="color:red;">\*</mark> | string | \[mixed, master, own, all] defines the Rights on Network Contents for the new Domain |
| refnr                                         | string | an internal Reference Number of the Client                                           |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /domains/:domainid/markfordeletion

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/domains/:domainid/markfordeletion`

will mark the given Domain for Deletion. The given Domain cannot be the calling Domain and must be part of the same Network. Contents of the target Domain will not be deleted.

#### Path Parameters

| Name                                       | Type    | Description                                            |
| ------------------------------------------ | ------- | ------------------------------------------------------ |
| domainid<mark style="color:red;">\*</mark> | integer | a valid Domain ID of the Network of the calling Domain |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Domain References

Domain References handles Objects and Structures, that are not considered as "Media", but belong to the Domain and serve as References.

## /channels/add

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/channels/add`

all Parameters of the **/channels/update** Methods are supported.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /channels/:channelid/update

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/channels/:channelid/update`

#### Path Parameters

| Name                                        | Type    | Description                               |
| ------------------------------------------- | ------- | ----------------------------------------- |
| channelid<mark style="color:red;">\*</mark> | integer | the ID of a Channel of the calling Domain |

#### Request Body

| Name                                    | Type    | Description                                                                               |
| --------------------------------------- | ------- | ----------------------------------------------------------------------------------------- |
| title<mark style="color:red;">\*</mark> | string  |                                                                                           |
| subtitle                                | string  |                                                                                           |
| refnr                                   | string  |                                                                                           |
| teaser                                  | string  |                                                                                           |
| description                             | string  |                                                                                           |
| parent                                  | integer | if the Channel shall be a Sub Channel of a parent Channel, add the parent Channel ID here |
| pos                                     | integer | an optional Sorting Parameter for publically visible Channels                             |
| color                                   | string  |                                                                                           |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /channels/:channelid/cover

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/channels/:channelid/cover`

&#x20;&#x20;

#### Path Parameters

| Name                                        | Type    | Description                               |
| ------------------------------------------- | ------- | ----------------------------------------- |
| channelid<mark style="color:red;">\*</mark> | integer | the ID of a Channel of the calling Domain |

#### Query Parameters

| Name                                  | Type    | Description                                                                                                                                    |
| ------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | String  | the URL to the Image, that should be used as Cover                                                                                             |
| description                           | String  | an optional Description of the Cover                                                                                                           |
| assetLanguage                         | string  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright                             | String  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated                         | \[0, 1] | if set to 1, the System will assume, that this Asset has been created by an AI.                                                                |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /channels/:channelid/actionshot

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/channels/actionshot`

&#x20;&#x20;

#### Path Parameters

| Name                                        | Type    | Description                               |
| ------------------------------------------- | ------- | ----------------------------------------- |
| channelid<mark style="color:red;">\*</mark> | integer | the ID of a Channel of the calling Domain |

#### Query Parameters

| Name                                  | Type    | Description                                                                                                                                    |
| ------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | String  | the URL to the Image, that should be used as ActionShot                                                                                        |
| description                           | String  | an optional Description of the Cover                                                                                                           |
| assetLanguage                         | String  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright                             | String  | an optional Copyright for the Cover.                                                                                                           |
| isAIGenerated                         | \[0, 1] | if set to 1, the System will assume, that this Asset has been created by an AI.                                                                |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /channels/:channelid/remove

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/channels/:channelid/remove`

#### Path Parameters

| Name                                        | Type    | Description                               |
| ------------------------------------------- | ------- | ----------------------------------------- |
| channelid<mark style="color:red;">\*</mark> | integer | the ID of a Channel of the calling Domain |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /formats/add

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/formats/add`

all Parameters of the **/formats/update** Methods are supported.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /formats/:formatid/update

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/formats/:formatid/update`

#### Path Parameters

| Name     | Type    | Description                               |
| -------- | ------- | ----------------------------------------- |
| formatid | integer | the ID of a Channel of the calling Domain |

#### Request Body

| Name                                    | Type   | Description |
| --------------------------------------- | ------ | ----------- |
| title<mark style="color:red;">\*</mark> | string |             |
| subtitle                                | string |             |
| refnr                                   | string |             |
| teaser                                  | string |             |
| description                             | string |             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /formats/:formatid/cover

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/formats/:formatid/cover`

&#x20;&#x20;

#### Path Parameters

| Name                                       | Type    | Description                              |
| ------------------------------------------ | ------- | ---------------------------------------- |
| formatid<mark style="color:red;">\*</mark> | integer | the ID of a Format of the calling Domain |

#### Query Parameters

| Name                                  | Type    | Description                                                                                                                                    |
| ------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | String  | the URL to the Image, that should be used as Cover                                                                                             |
| description                           | String  | an optional Description of the Cover                                                                                                           |
| assetLanguage                         | String  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright                             | String  | an optional Copyright for the Cover.                                                                                                           |
| isAIGenerated                         | \[0, 1] | if set to 1, the System will assume, that this Asset has been created by an AI.                                                                |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /formats/:formatid/actionshot

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/formats/:formatid/actionshot`

&#x20;&#x20;

#### Path Parameters

| Name                                       | Type    | Description                              |
| ------------------------------------------ | ------- | ---------------------------------------- |
| formatid<mark style="color:red;">\*</mark> | integer | the ID of a Format of the calling Domain |

#### Query Parameters

| Name                                  | Type    | Description                                                                                                                                    |
| ------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | String  | the URL to the Image, that should be used as Cover                                                                                             |
| description                           | String  | an optional Description of the Cover                                                                                                           |
| assetLanguage                         | String  | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright                             | String  | an optional Copyright for the Cover                                                                                                            |
| isAIGenerated                         | \[0, 1] | if set to 1, the System will assume, that this Asset has been created by an AI.                                                                |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /formats/:formatid/remove

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/formats/:formatid/remove`

#### Path Parameters

| Name      | Type    | Description                               |
| --------- | ------- | ----------------------------------------- |
| channelid | integer | the ID of a Channel of the calling Domain |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /:streamtypecategories/add

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtypecategories/add`

all Parameters of the **/channels/update** Methods are supported.

#### Path Parameters

| Name                                                   | Type   | Description                                                                                                                                  |
| ------------------------------------------------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| streamtypecategories<mark style="color:red;">\*</mark> | string | \[videocategories, audiocategories, imagecategories, filecategories, articlecategories, eventcategories, placecategories, productcategories] |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /:streamtypecategories/:categoryid/update

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtypecategories/:categoryid/update`

#### Path Parameters

| Name                                                   | Type    | Description                                                                                                                                  |
| ------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| streamtypecategories<mark style="color:red;">\*</mark> | string  | \[videocategories, audiocategories, imagecategories, filecategories, articlecategories, eventcategories, placecategories, productcategories] |
| categoryid<mark style="color:red;">\*</mark>           | integer | the ID of a Category of the given Type of the calling Domain                                                                                 |

#### Request Body

| Name                                    | Type   | Description                     |
| --------------------------------------- | ------ | ------------------------------- |
| title<mark style="color:red;">\*</mark> | string |                                 |
| subtitle                                | string |                                 |
| color                                   | string | only valid for Event Categories |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /:streamtypecategories/:categoryid/cover

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtypecategories/:categoryid/cover`

&#x20;&#x20;

#### Path Parameters

| Name                                                   | Type    | Description                                                                                                                                  |
| ------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| categoryid<mark style="color:red;">\*</mark>           | integer | the ID of a Category of the given Type of the calling Domain                                                                                 |
| streamtypecategories<mark style="color:red;">\*</mark> | String  | \[videocategories, audiocategories, imagecategories, filecategories, articlecategories, eventcategories, placecategories, productcategories] |

#### Query Parameters

| Name                                  | Type   | Description                                                                                                                                    |
| ------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark> | String | the URL to the Image, that should be used as Cover                                                                                             |
| description                           | String | an optional Description of the Cover                                                                                                           |
| assetLanguage                         | String | if the Domain supports MultiLanguage Assets, this Cover will be used only in Contexts with this given Language and not override the main Cover |
| copyright                             | String | an optional Copyright of the Cover                                                                                                             |

{% tabs %}
{% tab title="200 " %}

{% endtab %}
{% endtabs %}

## /:streamtypecategories/:categoryid/remove

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/:streamtypecategories/:categoryid/remove`

#### Path Parameters

| Name                                                   | Type    | Description                                                                                                                                  |
| ------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| streamtypecategories<mark style="color:red;">\*</mark> | string  | \[videocategories, audiocategories, imagecategories, filecategories, articlecategories, eventcategories, placecategories, productcategories] |
| categoryid<mark style="color:red;">\*</mark>           | integer | the ID of a Category of the given Type of the calling Domain                                                                                 |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## UploadLinks

UploadsLinks are dynamic URLs, that allow external Users to upload Files to a specific nexxOMNIA Account.

## /uploadlinks/add

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/manage/uploadlinks/add`

#### Request Body

| Name                                                  | Type    | Description                                                                                                         |
| ----------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------- |
| title<mark style="color:red;">\*</mark>               | string  | a Title for the new UploadLink                                                                                      |
| selectedStreamtypes<mark style="color:red;">\*</mark> | string  | a comma-seperated List of Streamtypes, that can be uploaded via this Link. Possible is \[video, audio, image, file] |
| language<mark style="color:red;">\*</mark>            | string  | a 2-Letter coded Language for the Frontend. Currently supported is \[de, en, es, fr]                                |
| maxUsages                                             | integer | if the UploadLink shall be restricted in Usage, use this Parameter for the maximal Number of Usages.                |
| code                                                  | string  | if desired, an optional code for further Protection of the Link.                                                    |
| useDomainStyle                                        | boolean | if set to 1, the UploadLink UI will use the target Domain Colors and Icons.                                         |
| askForNotes                                           | boolean | if set to 1, the UploadLink will force the User to add some "Notes" as addiitonal Info for this Upload              |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /uploadlinks/:uploadlinkid/remove

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/manage/uploadlinks/:uploadlinkid/remove`

#### Path Parameters

| Name         | Type    | Description                                   |
| ------------ | ------- | --------------------------------------------- |
| uploadlinkid | integer | the ID of an UploadLink of the calling Domain |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Statistics

The Statistics Endpoint allows you to query all statistical Data from all nexxOMNIA/nexxPLAY Environments by API. All Endpoints return an Object with "**day**" as Key and "**KPI**" as Value, unless otherwise indicated.

{% hint style="info" %}
Please notice, that this Endpoint uses a different Set of Parameters as the usual Media Endpoints. Please make sure, that the mandatory Parameters are set.

You will find the full List of Parameters for all Statistic Endpoints at the End of this Section.
{% endhint %}

## Media Performance

## /displaysbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/displaysbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /playerstartsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/playerstartsbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /viewsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/viewsbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /downloadsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/downloadsbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /clicksbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/clicksbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
You can replace "**byday**" for Displays, PlayerStarts, Views, Downloads and Clicks with "**byhour**" or "**byweekday**" if you need the Results to be grouped by the respective timeframe.
{% endhint %}

## /viewsexternalbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/viewsexternalbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /viewtimebyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/viewtimebyday`

the returned KPI is the absolute View Time (in Minutes)

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /viewtimeaveragebyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/viewtimeaveragebyday`

the returned KPI is the average View Time (in Minutes)

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /viewprogressbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/viewprogressbyday`

the returned KPI is an Object with the predefined Progress Slides per Day

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /itemlist

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/itemlist`

the returned KPI is an Object with Media ID as Key and KPI Value as Value. The Result Set will include all Media Items, that had a Performance > 0 on that KPI of the given Period.

#### Path Parameters

| Name | Type   | Description                                                                                                                                                                                  |
| ---- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| kpi  | string | the target KPI \[display, playerstart, view, viewtime, viewtimeaverage, viewexternal, download, click, progress25, progress50, progress75, progress95, progress100, adrequest, adimpression] |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Charts

The Chart Endpoints return an Object with **Media ID** as Key and **KPI** as Value.

## /chartsbydisplays

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbydisplays`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /chartsbyplayerstarts

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbyplayerstarts`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /chartsbyviews

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbyviews`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /chartsbyviewsexternal

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbyviewsexternal`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /chartsbyviewtime

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbyviewtime`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /chartsbyviewtimeaverage

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbyviewtimeaverage`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /chartsbycompletion

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbycompletion`

{% tabs %}
{% tab title="200 " %}

```


```

{% endtab %}
{% endtabs %}

## /chartsbydownloads

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbydownloads`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /chartsbyclicks

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/chartsbyclicks`

#### Path Parameters

| Name | Type   | Description |
| ---- | ------ | ----------- |
|      | string |             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Distribution

The Distribution Endpoints return an Object with Distribution Item (for exmaple, Country Code) as Key and Number of Occurences as Value.

## /distributionbygateway

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbygateway`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbydevice

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbydevice`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbyos

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbyos`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbybrowser

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbybrowser`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbydeliverydomain

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbydeliverydomain`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbyslug

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbyslug`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbypodcastapp

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbypodcastapp`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbycountry

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbycountry`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbychannel

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbychannel`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbyformat

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbyformat`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /distributionbylicensor

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/distributionbylicensor`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## RealTime Performance

The RealTime Endpoints will return an Object with Performance KPIs per **Gateway** (or per **Media ID** in case of the RealTime Chart Endpoints) for the given Period.

{% hint style="info" %}
The RealTime Endpoints will not respect any of the given Standard Statistics Parameters below (except "**streamtype**").
{% endhint %}

## /realtime

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/realtime`

#### Query Parameters

| Name      | Type    | Description                                                                                                                  |
| --------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| timeFrame | integer | the desired Timeframe to group the Deliveries by. Computed in Minutes backwards from now \[5, 10, 15, 30, 60, 120, 180, 240] |
| limit     | integer | return only the most active LIMIT Elements                                                                                   |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /realtimeexternal

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/realtimeexternal`

#### Query Parameters

| Name      | Type    | Description                                                                                                                  |
| --------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| timeFrame | integer | the desired Timeframe to group the Deliveries by. Computed in Minutes backwards from now \[5, 10, 15, 30, 60, 120, 180, 240] |
| limit     | integer | return only the most active LIMIT Elements                                                                                   |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /realtimecharts

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/realtimecharts`

#### Query Parameters

| Name      | Type    | Description                                                                                                                  |
| --------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| timeFrame | integer | the desired Timeframe to group the Deliveries by. Computed in Minutes backwards from now \[5, 10, 15, 30, 60, 120, 180, 240] |
| limit     | integer | return only the most active LIMIT Elements                                                                                   |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /realtimechartsexternal

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/realtimechartsexternal`

#### Query Parameters

| Name      | Type    | Description                                                                                                                  |
| --------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| timeFrame | integer | the desired Timeframe to group the Deliveries by. Computed in Minutes backwards from now \[5, 10, 15, 30, 60, 120, 180, 240] |
| limit     | integer | return only the most active LIMIT Elements                                                                                   |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Ad Performance

## /adrequestsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/adrequestsbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /adimpressionsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/adimpressionsbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /adclicksbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/adclicksbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /aderrorsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/aderrorsbyday`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
You can replace "**byday**" in all Cases with "**byhour**" or "**byweekday**" if you need the Results to be grouped by the respective timeframe.
{% endhint %}

## User / Session Performance

## /registrationsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/registationsbyday`

#### Query Parameters

| Name     | Type   | Description                                                                       |
| -------- | ------ | --------------------------------------------------------------------------------- |
| provider | string | only return Registrations of the given Provider \[facebook, google, twitter, aad] |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /loginsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/loginsbyday`

#### Query Parameters

| Name     | Type   | Description                                                                 |
| -------- | ------ | --------------------------------------------------------------------------- |
| provider | string | only return Logins via the given Provider \[facebook, google, twitter, aad] |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Payment Performance

## /revenuebyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/revenuebyday`

#### Query Parameters

| Name | Type   | Description                                                                                         |
| ---- | ------ | --------------------------------------------------------------------------------------------------- |
| type | string | only include Sales of a specific Type into the Amount \[subscription, rebill, ppv, ownage, deposit] |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /subscriptionsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/subscriptionsbyday`

the returned KPI is "active Subscriptions" (total) on any given Day

#### Query Parameters

| Name              | Type    | Description                                        |
| ----------------- | ------- | -------------------------------------------------- |
| onlyPremium       | boolean | only return Premium Subscriptions                  |
| onlyStandard      | boolean | only return Standard Subscriptions                 |
| excludeTerminated | boolean | only return not-terminated/cancelled Subscriptions |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /subscriptionterminationsbyday

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/statistics/subscriptionterminationsbyday`

#### Query Parameters

| Name   | Type   | Description                                                                                                                        |
| ------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| reason | string | only return Terminations, that were processed due to the given reason \[byuser, incms, inappapi, rechargeproblem, paymentcanceled] |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Special Parameters

| Parameter                 | Values                                                                                                | Description                                                                                                                                                                              |
| ------------------------- | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **includeNetworkDomains** | \[0, 1]                                                                                               | if the calling Domain is Network Domain, and all Results from all Network Domains shall be combined, set this Parameter to 1                                                             |
| **streamtype**            | Streamtype                                                                                            | the target Media Streamtype **(mandatory)**                                                                                                                                              |
| **from**                  | Date (YYYY-MM-DD)                                                                                     | Starting Day of the Analysis **(mandatory)**                                                                                                                                             |
| **to**                    | Date (YYYY-MM-DD)                                                                                     | End Day of the Analysis **(mandatory)**                                                                                                                                                  |
| **gateway**               | \[desktop, mobile, amp, fbia, tablet, ios, android, smarttv, androidtv, podcast]                      | The Analysis will only respect Results from this Gateway.                                                                                                                                |
| **timezone**              | TimeZone Name                                                                                         | The Analysis will consider from/to and Day Borders as Dates in the given Timezone. If skipped, the Domain Default Timezone will be used.                                                 |
| **device**                | \[pc, mobile, tablet, tv, smart]                                                                      | The Analysis will only respect Results by items of this Device Type                                                                                                                      |
| **item**                  | int                                                                                                   | The Analysis will focus only on a specific Media item (if item is set, and streamtype is set to "**allmedia**", item will be interpreted as GlobalID)                                    |
| **itemReference**         | \[ID, GID, hash, refnr, externalReference]                                                            | If Media Items are used as Keys for the Result Items, by default, their "ID" is returned. Setting this Parameter to another Item Property will change this Key to the desired Attribute. |
| **limit**                 | int                                                                                                   | in contrast to the Media API, the limit can be set on this Endpoint to 100.000 if necessary. This can make sense on all Methods, that return long lists of Media Items.                  |
| **channel**               | int                                                                                                   | The Analysis will only respect Results in this Channel                                                                                                                                   |
| **format**                | int                                                                                                   | The Analysis will only respect Results in this Format                                                                                                                                    |
| **deliveryPartner**       | int                                                                                                   | The Analysis will only respect Results from this Delivery Partner                                                                                                                        |
| **affiliatePartner**      | int                                                                                                   | The Analysis will only respect Results from this Affiliate Partner                                                                                                                       |
| **campaign**              | int                                                                                                   | The Analysis will only respect Results from this Campaign                                                                                                                                |
| **licensor**              | int                                                                                                   | The Analysis will only respect Results by items of this Licensor                                                                                                                         |
| **platformVariant**       | string                                                                                                | The Analysis will onyl respect Results on the given platformVariant                                                                                                                      |
| **pageIntegration**       | \[js, embed, wc, native]                                                                              | The Analysis will only respect Results by items of Media, that was included by this Type of integration.                                                                                 |
| **browser**               | \[firefox, chrome, edge, explorer, safari, opera, samsung browser]                                    | The Analysis will only respect Results by Media, that was delivered on the given Browser                                                                                                 |
| **os**                    | \[windows, macOS, linux, ios, android, chromeOS]                                                      | The Analysis will only respect Results by Media, that was delivered on the given Operating System                                                                                        |
| **countryCode**           | 2-Letter Country Code                                                                                 | The Analysis will only respect Results by Media, that was delivered in the given Country                                                                                                 |
| **subdivisionCode**       | String                                                                                                | The Analytics will only respect Results by Media, that was delivered in the given Country Subdivision                                                                                    |
| **manufacturer**          | String                                                                                                | The Analysis will only respect Results by Media, that was delivered by Devices from the given Manufacturer.                                                                              |
| **deliveryDomain**        | String                                                                                                | The Analysis will only respect Results by Media, that was delivered on the given Domain                                                                                                  |
| **consentEnvironment**    | \[none, onlystring, 1, 2]                                                                             | The Analysis will only respect Results by Media, that were delivered in the given User Consent Environment                                                                               |
| **playbackMode**          | \[bumper, preview, pseudolive, scenesplit, story, presentation, endless, premiere, mini, micro, hero] | The Analysis will only respect Results by Media, that was delivered in this PlaybackMode                                                                                                 |
| **dataMode**              | \[api, static, offline]                                                                               | The Analysis will only respect Results by Media, that was delivered in this DataMode                                                                                                     |
| **mediaOrigin**           | \[own, remote]                                                                                        | The Analysis will only respect Results by Media, that are managed by nexxOMNIA (or are Remote Media)                                                                                     |
| **startCondition**        | \[autoplay, autoplaymuted, manual, manualmuted]                                                       | The Analysis will only respect Results by Media, that was started as defined.                                                                                                            |
| **viewCount**             | \[onlyfirst, afterfirst]                                                                              | The Analysis will only respect Results, where the View was the initial Media in the Player ("onlyfirst") or came later ("afterfirst")                                                    |


# Frontend API

The Frontend API is designed to control complex Workflows without the need to use the nexxOMNIA API. Its Usage is more advanced than the Media or Frontend APIs and often requires additional Permissions.

Learn more about the Frontend API Usage in general:

{% content-ref url="/pages/-M9bhBkhKNMQjK\_sBMYv" %}
[Usage](/frontend-api/usage)
{% endcontent-ref %}

The Frontend API offers different Sections and Endpoints for Session, User and Payment Operations. Find an Overview here:

{% content-ref url="/pages/-M9d6RKeGbe5Q7PbcSQr" %}
[Endpoints](/frontend-api/endpoints)
{% endcontent-ref %}


# Usage

The Frontend API works in many Ways similar to the Media APIs. Many of the common Parameters are valid here also, wherever possible.

{% hint style="info" %}
Please notice, that all the following Endpoints are intended for Frontend Operations and need a valid Session.
{% endhint %}

To control an API Session, you will need the following Endpoints:

{% content-ref url="/pages/-M9bgIaAG6MxGVRdvLvk" %}
[Session Management](/frontend-api/endpoints/session-endpoint)
{% endcontent-ref %}

In many Cases, Users interact with Media Objects (like, comment, rate etc). To handle these Cases, use the Media Interaction API:

{% content-ref url="/pages/-M9bgBxbOnBPT1XiALLJ" %}
[Media Interactions](/frontend-api/endpoints/interaction-endpoint)
{% endcontent-ref %}

If your Domain uses a nexxOMNIA User Model, the registered User has a lot of Options for his Profile and Activities:

{% content-ref url="/pages/-M9bgK\_52KjU9VI1bm\_m" %}
[User Endpoint](/frontend-api/endpoints/user-endpoint)
{% endcontent-ref %}

If your Domain uses a nexxOMNIA Payment Model, the Payment Processing Endpoints can be found here:

{% content-ref url="/pages/-M9bgMjFmPNSDxtrlddF" %}
[Payment Processing](/frontend-api/endpoints/payment-endpoint)
{% endcontent-ref %}


# Endpoints

Frontend Operations can take place in easy or complex Scenarios. In any Case, you must have a valid Frontend Session:

{% content-ref url="/pages/-M9bgIaAG6MxGVRdvLvk" %}
[Session Management](/frontend-api/endpoints/session-endpoint)
{% endcontent-ref %}

If you only want to enable simple User Interactions like Rating or Comments, start with Media Interactions:

{% content-ref url="/pages/-M9bgBxbOnBPT1XiALLJ" %}
[Media Interactions](/frontend-api/endpoints/interaction-endpoint)
{% endcontent-ref %}

If you are using the nexxOMNIA User Model too, you will need the User Endpoint for Profile Management and User defined Content:

{% content-ref url="/pages/-M9bgK\_52KjU9VI1bm\_m" %}
[User Endpoint](/frontend-api/endpoints/user-endpoint)
{% endcontent-ref %}

And in the most complex Cases, you will also use the nexxOMNIA Payment APIs. You will find the Details of them here:

{% content-ref url="/pages/-M9bgMjFmPNSDxtrlddF" %}
[Payment Processing](/frontend-api/endpoints/payment-endpoint)
{% endcontent-ref %}


# Media Interactions

Media Interactions are Part of the Frontend API. They describe the Interaction between an existing Media Item and a User (who can be anonymous in certain Cases). Media Interactions need a valid Session (and most of them also a valid, loggedin User) to be processed.

## Common Interactions

## /addcomment

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addcomment`

#### Query Parameters

| Name        | Type    | Description                                                                               |
| ----------- | ------- | ----------------------------------------------------------------------------------------- |
| item        | integer | the Media ID                                                                              |
| streamtype  | string  | the Media Streamtype                                                                      |
| text        | string  | the Comment itself                                                                        |
| parent      | number  | if the Comment is a Reply to another Comment, the parent Comment ID                       |
| username    | number  | if the User is anonymous, the given Username                                              |
| timestamp   | number  | if related to a nexxPLAY Delivery, the current Media Timestamp                            |
| currentitem | integer | the ID of the currently active Item - if the target Streamtype is a Container Streamtype. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addrate

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addrate`

#### Query Parameters

| Name        | Type    | Description                                                                               |
| ----------- | ------- | ----------------------------------------------------------------------------------------- |
| item        | string  | the Media ID                                                                              |
| streamtype  | integer | the Media Streamtype                                                                      |
| rating      | integer | the Rating itself (1-5)                                                                   |
| timestamp   | number  | if related to a nexxPLAY Delivery, the current Media Timestamp                            |
| currentitem | integer | the ID of the currently active Item - if the target Streamtype is a Container Streamtype. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addreaction

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addreaction`

#### Query Parameters

| Name        | Type    | Description                                                                               |
| ----------- | ------- | ----------------------------------------------------------------------------------------- |
| item        | string  | the Media ID                                                                              |
| streamtype  | integer | the Media Streamtype                                                                      |
| reaction    | integer | the Reaction itself \[haha, love, shock, sad, angry]                                      |
| timestamp   | number  | if related to a nexxPLAY Delivery, the current Media Timestamp                            |
| currentitem | integer | the ID of the currently active Item - if the target Streamtype is a Container Streamtype. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addlike

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addlike`

#### Query Parameters

| Name        | Type    | Description                                                                               |
| ----------- | ------- | ----------------------------------------------------------------------------------------- |
| item        | integer | the Media ID                                                                              |
| streamtype  | string  | the Media Streamtype                                                                      |
| timestamp   | number  | if related to a nexxPLAY Delivery, the current Media Timestamp                            |
| currentitem | integer | the ID of the currently active Item - if the target Streamtype is a Container Streamtype. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addtofavourites

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addtofavourites`

#### Query Parameters

| Name        | Type    | Description                                                                               |
| ----------- | ------- | ----------------------------------------------------------------------------------------- |
| item        | integer | the Media ID                                                                              |
| streamtype  | string  | the Media Streamtype                                                                      |
| timestamp   | number  | if related to a nexxPLAY Delivery, the current Media Timestamp                            |
| currentitem | integer | the ID of the currently active Item - if the target Streamtype is a Container Streamtype. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addtowatchlist

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addtowatchlist`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addtocart

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addtocart`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /expressinterest

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/expressinterest`

#### Query Parameters

| Name        | Type    | Description                                                                               |
| ----------- | ------- | ----------------------------------------------------------------------------------------- |
| item        | integer | the Media ID                                                                              |
| streamtype  | string  | the Media Streamtype                                                                      |
| message     | string  | an optional Message, given by the User                                                    |
| timestamp   | number  | if related to a nexxPLAY Delivery, the current Media Timestamp                            |
| currentitem | integer | the ID of the currently active Item - if the target Streamtype is a Container Streamtype. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removecomment

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removecomment`

#### Query Parameters

| Name | Type    | Description           |
| ---- | ------- | --------------------- |
| item | integer | the ID of the Comment |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Please notice, that this Method needs the **Comment ID** as item, not as usual the Media ID as item (as every User may leave multiple Comments on a Media Item)
{% endhint %}

## /removerate

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removerate`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removelike

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removelike`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removereaction

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removereaction`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromfavourites

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removefromfavourites`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromwatchlist

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removefromwatchlist`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromcart

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removefromcart`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Advanced Interactions

## /addtowatched

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/addtowatched`

This Methods fills the serverside Watch History of a User. The User must be loggedin for this Method. Besides non-Player Media Types, this Method should only be called by nexxPLAY directly.

#### Query Parameters

| Name            | Type    | Description                                                    |
| --------------- | ------- | -------------------------------------------------------------- |
| item            | string  | the Media ID                                                   |
| streamtype      | string  | the Media Streamtype                                           |
| mediasession    | string  | the Media Session                                              |
| payContext      | string  | the Reason for Playback on a Pay Element                       |
| parentContext   | string  | the parent Streamtype, if available                            |
| parentItem      | number  | the parent Media ID, if available                              |
| isPreview       | boolean | set to 1, if the Playback was a Pay Preview                    |
| isBumper        | boolean | set to 1, if Media is a Bumper                                 |
| isMuted         | boolean | set to 1, if Media started muted                               |
| isLocalPlayback | boolean | set to 1, if the Playback happend on a locally downloaded Item |
| playbackTime    | number  | the Timest                                                     |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /flagcomment

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/flagcomment`

#### Query Parameters

| Name | Type    | Description           |
| ---- | ------- | --------------------- |
| item | integer | the ID of the Comment |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Please notice, that this Method needs the **Comment ID** as item, not as usual the Media ID as item.
{% endhint %}

## /finishcart

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/finishcart`

#### Query Parameters

| Name  | Type    | Description                           |
| ----- | ------- | ------------------------------------- |
| title | integer | an optional Name for the current Cart |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /joinevent

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/joinevent`

#### Query Parameters

| Name | Type    | Description                 |
| ---- | ------- | --------------------------- |
| item | integer | the ID of the Event to join |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /jointeam

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/jointeam`

#### Query Parameters

| Name | Type    | Description                |
| ---- | ------- | -------------------------- |
| item | integer | the ID of the Team to join |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /unjoinevent

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/unjoinevent`

#### Query Parameters

| Name | Type    | Description                  |
| ---- | ------- | ---------------------------- |
| item | integer | the ID of the Event to leave |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /unjointeam

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/unjointeam`

#### Query Parameters

| Name | Type    | Description                 |
| ---- | ------- | --------------------------- |
| item | integer | the ID of the Team to leave |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removefromhistory

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removefromhistory`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /registerclickedlink

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/registerclickedlink`

#### Query Parameters

| Name | Type   | Description     |
| ---- | ------ | --------------- |
| url  | string | the clicked URL |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /createclip

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/createclip`

#### Query Parameters

| Name       | Type   | Description                        |
| ---------- | ------ | ---------------------------------- |
| item       | string | the Media ID                       |
| streamtype | string | the Media Streamtype               |
| from       | number | the desired Start of the new Scene |
| to         | number | the desired End of the new Scene   |
| title      | string | the desired Scene Title            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /preparedownload

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/preparedownload`

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /prepareofflinedownload

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/prepareofflinedownload`

This Method needs a valid Session, that has been created in an App Context.

#### Query Parameters

| Name        | Type    | Description                                    |
| ----------- | ------- | ---------------------------------------------- |
| item        | number  | the Media ID                                   |
| streamtype  | string  | the Media Streamtype                           |
| protection  | integer | the desired Protection \[drm, plain]           |
| triggeredBy | string  | the Way the Download was started \[sdk, media] |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /finishofflinedownload

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/finishofflinedownload`

This Method needs a valid Session, that has been created in an App Context.

#### Query Parameters

| Name        | Type    | Description                                             |
| ----------- | ------- | ------------------------------------------------------- |
| item        | string  | the Media ID                                            |
| streamtype  | string  | the Media Streamtype                                    |
| operationid | number  | the Operation ID from the prepareofflinedownload Method |
| bytes       | integer | the received Size of the File                           |
| result      | string  | \[ok, error]                                            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /removeofflinedownload

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/interactions/removeofflinedownload`

This Method needs a valid Session, that has been created in an App Context.

#### Query Parameters

| Name       | Type    | Description          |
| ---------- | ------- | -------------------- |
| item       | integer | the Media ID         |
| streamtype | string  | the Media Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Template Interactions

## /sendform

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/sendform`

All Form Elements, that are marked as mandatory must be sent via POST Parameters, as filled out by the User.

#### Query Parameters

| Name           | Type    | Description                          |
| -------------- | ------- | ------------------------------------ |
| item           | integer | the Form ID                          |
| currentHistory | string  | the current Referrer URL             |
| attachedFile   | integer | the ID of an existing nexxOMNIA File |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /sendpoll

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/sendpoll`

As the Poll can be canceled anytime, the Result here is a Key/Value Object with the Question ID as Key and the User Input as value. JSON encode this Object and send it via the "**result**" Parameter.

#### Query Parameters

| Name   | Type    | Description                        |
| ------ | ------- | ---------------------------------- |
| item   | integer | the Poll ID                        |
| result | string  | JSON encoded Set of current Result |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /sendvoting

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/interactions/sendvoting`

#### Query Parameters

| Name   | Type    | Description        |
| ------ | ------- | ------------------ |
| item   | integer | the Voting ID      |
| voting | string  | the selected Value |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Session Management

The Session Endpoint handles all Operations, needed to initiate, maintain, modify and finish a Session.

## Session Lifecycle

## /init

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/session/init`

This Call does not need a Session Authorization Object.

#### Query Parameters

| Name             | Type    | Description                                |
| ---------------- | ------- | ------------------------------------------ |
| addDomainData    | boolean | include Domain Public Details              |
| addAdModel       | boolean | include Ad Configuration                   |
| addPriceModel    | boolean | include Pay / Price Configuration          |
| addTextTemplates | boolean | include nexxPLAY Text Templates            |
| addChannels      | boolean | include publically visible Channel Details |
| addFormats       | boolean | include publically visible Format Details  |
| addCampaigns     | boolean | include all active Domain Campaigns        |

#### Request Body

| Name                   | Type    | Description                                                                       |
| ---------------------- | ------- | --------------------------------------------------------------------------------- |
| explicitLanguage       | string  | the 2-Letter Code of the Session Language                                         |
| gateway                | string  | a 3Q nexx defined Code for the Gateway/Platform for this Session                  |
| nxp\_devh              | string  | a consistent Device ID                                                            |
| nxp\_userh             | string  | a valid User Hash, if User Login is active                                        |
| currentSession         | number  | a previously used Session ID (for Re-use if still valid)                          |
| deliveryPartner        | integer | the ID of a Domain Delivery Partner                                               |
| nxp\_afpc              | string  | a valid Code of an exisiting Affiliate Partner                                    |
| deviceName             | string  | the Device Name, if known (for statistical Purposes)                              |
| adGateway              | string  | a 3Q nexx defined Call for the Ad Capabilities Platform for this Session          |
| portal                 | string  | a 3Q nexx defined Call for a Sub Gateway (for Example a specific App Store)       |
| linkOrigin             | string  | the Origin for this Session (not Referrer)                                        |
| forcePersistantSession | boolean | only needed, if a nexxPLAY only Domain needs a persistent Session for some Reason |
| externalUserReference  | string  | an externally managed User Reference                                              |
| lat                    | float   | if available, the current Device Geo Latitude                                     |
| lng                    | flat    | if available, the current Device Geo Longitude                                    |
| affiliatePartner       | integer | the ID of a Domain Affiliate Partner                                              |
| campaign               | integer | the ID of a Domain Campaign                                                       |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /generateentraidloginurl

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/session/generateentraidloginurl`

#### Query Parameters

| Name | Type   | Description                                                           |
| ---- | ------ | --------------------------------------------------------------------- |
| host | String | if sent, the given Hostname will be used as Callback URL for Entra ID |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /login

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/session/login`

#### Request Body

| Name        | Type   | Description                                                                                                                  |
| ----------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- |
| provider    | string | One of the following Ways to handle a Login: \[facebook, twitter, google, aad, apple, hash, broadcast, secondscreen, manual] |
| token       | string | the Identification Token, given by the Provider, if not used manual Login                                                    |
| username    | string | if manual Login is used, the given Username                                                                                  |
| password    | string | if manual Login is used, the given Password                                                                                  |
| vouchercode | string | a valid Voucher Code, the User used during Login                                                                             |
| host        | string | necessary, if the Domain is using a 2-Factor Login via U2F, optional in all other Cases                                      |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /keepalive

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/session/keepalive`

should be called every 10-15 Minutes in order to keep the Session alive and protect it from being invalidated.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /logout

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/session/logout`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Session Helpers

## /staticdetails

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/session/staticdetails`

in Case of a static Session (by nexxPLAY only), some Aspects for statistical Purposes must still be computed by the Session API, even if not inited.

#### Query Parameters

| Name             | Type   | Description                                                                  |
| ---------------- | ------ | ---------------------------------------------------------------------------- |
| gateway          | string | the Platform/Gateway, as computed by the Frontend Controller                 |
| nxp\_devh        | string | the Device ID, computed by the Frontend Controller                           |
| deliveryPartner  | number | the ID of a valid Delivery Partner, the Frontend Controller was inited with  |
| lng              | float  | if available, the current Device Geo Longitude                               |
| lat              | float  | if available, the current Device Geo Latitude                                |
| affiliatePartner | number | the ID of a valid Affiliate Partner, the Frontend Controller was inited with |
| nxp\_afpc        | String | a valid Code of an exisiting Affiliate Partner                               |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /reporttoken

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/session/reporttoken`

returns the current Reporting Authorization Token (for **Samaritan** Reporting)

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /currentweather

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/session/currentweather`

#### Query Parameters

| Name | Type   | Description                                                                   |
| ---- | ------ | ----------------------------------------------------------------------------- |
| lat  | number | the Latitude of a Geo Position (the Session Value will be used, if omitted)   |
| lng  | number | the Longitude of a Geo Position (the Sesson Value wilkll be used, if omitted) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# User Endpoint

The User Endpoint handles all User-related Functionalities within a valid Frontend Session. It does not handle User Interaction, you can find those Endpoints here:

{% content-ref url="/pages/-M9bgBxbOnBPT1XiALLJ" %}
[Media Interactions](/frontend-api/endpoints/interaction-endpoint)
{% endcontent-ref %}

## Account Management

## /register

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/register`

This Endpoint registers a User. All User entered Details must be valid POST Attributes (like username, firstname etc).

#### Request Body

| Name                       | Type    | Description                                                                                                                                                                                                                                            |
| -------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| provider                   | string  | \[facebook, google, twitter, aad, external] The User was registered via a Social Connector                                                                                                                                                             |
| vouchercode                | string  | if given, the Voucher will be consumed automatically after successfull Registration.                                                                                                                                                                   |
| affiliatepartner           | string  | in Case the User originally came from an Affilaite Session but decided to register in a later Session, this Parameter will be the Code an (existing) Affiliate Partner for this User Registration.                                                     |
| affiliateparam             | string  | in Case of a given Affilate Partner ID, this is a Partner Specific Code, which may be used later in Payment Transactions.                                                                                                                              |
| connectedForm              | integer | if the Registration Form was built with a nexxOMNIA Form, the Form ID should be sent here. This will ensude automatic Validation based on the Form Rules.                                                                                              |
| paymentRegistrationService | string  | if set and equals a valid 3Q nexx Payment Subscriber Code, the User will be connected to this Service internally.                                                                                                                                      |
| skipLogin                  | boolean | if set to 1 and Login would be possible afterwards (=automatic Authorization), the User will not be logged in. Instead, the API will return an **itemupdate** Object.                                                                                  |
| isPreRegister              | boolean | if set to 1 and Login would be possible afterwards, the User will not be logged in (like "skipLogin" Parameter). In this Case though, the User will also receive a different Confirmation Email for his Login, as the target Platform is not live yet. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /registeranonymous

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/registeranonymous`

This Endpoint registers an anonymous User. All User-related Details may be sent via POST (all Attributes are valid except Username).

#### Request Body

| Name  | Type   | Description                   |
| ----- | ------ | ----------------------------- |
| email | string | The Email Address to register |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /verifyaccountdetailsunique

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/verifyaccountdetailsunique/:item`

This Endpoint validates a Username and/or Email Address for Uniqueness.

#### Path Parameters

| Name | Type   | Description                |
| ---- | ------ | -------------------------- |
| item | string | the given User Information |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /verifytokenunique

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/verifytokenunique/:token`

This Endpoint validates a 3rd Party Connector Token for Uniqueness.

#### Path Parameters

| Name  | Type   | Description               |
| ----- | ------ | ------------------------- |
| token | string | the given Connector Token |

#### Request Body

| Name     | Type   | Description                                                      |
| -------- | ------ | ---------------------------------------------------------------- |
| provider | string | \[google, twitter, facebook] the 3Q nexx Code for the Connector. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /authorize

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/authorize/:token`

This Endpoint represents the final Step in a Registration Process (if AutoAuthorize is disabled).

#### Request Body

| Name  | Type   | Description             |
| ----- | ------ | ----------------------- |
| token | string | the Authorization Token |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /authorizedevice

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/authorizedevice`

will verify a new Device for a User with 2FA Login.

#### Request Body

| Name | Type   | Description                                               |
| ---- | ------ | --------------------------------------------------------- |
| code | string | The SMS Code, sent to the User and Device                 |
| type | string | \[sms, app] the Type of Code submitted, defaults to "sms" |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /authorizelogin

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/authorizelogin`

will verify a Login for a User with U2F Device

#### Request Body

| Name  | Type   | Description                                                                  |
| ----- | ------ | ---------------------------------------------------------------------------- |
| token | string | the U2F Challenge, given as JSON Object, created by the Browser (or ARC SDK) |
| host  | string | the current Domain Host                                                      |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /prepareavsupdate

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/prepareavsupdate`

#### Request Body

| Name     | Type    | Description                         |
| -------- | ------- | ----------------------------------- |
| provider | string  | a 3Q nexx AVS Provider Code         |
| ageclass | integer | \[16, 18] the desired new Age Class |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /finishavsupdate

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/finishavsupdate`

#### Request Body

| Name              | Type    | Description                                                               |
| ----------------- | ------- | ------------------------------------------------------------------------- |
| transaction       | number  | The ID of the /startavsupdate Process                                     |
| transactionresult | boolean | The Result from the AVS Provider. If set to 1, the Age Class will be set. |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /registerdeviceforpush

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/registerdeviceforpush`

marks the Device as willing to receive Push Messages

#### Request Body

| Name  | Type   | Description                             |
| ----- | ------ | --------------------------------------- |
| token | string | the unique Token for the current Device |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /prepareregisteru2fdevice

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/prepareregisteru2fdevice`

will create the Challenge for a new U2F Request

#### Request Body

| Name | Type   | Description             |
| ---- | ------ | ----------------------- |
| host | string | the current Domain Host |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /finishregisteru2fdevice

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/finishregisteru2fdevice`

#### Request Body

| Name  | Type   | Description                                                                  |
| ----- | ------ | ---------------------------------------------------------------------------- |
| token | string | the U2F Challenge, given as JSON Object, created by the Browser (or ARC SDK) |
| host  | string | the current Domain Host                                                      |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /prepareregisterauthenticator

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/prepareregisterauthenticator`

will create the Challenge for a new U2F Request

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /finishregisterauthenticator

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/finishregisterauthenticator`

#### Request Body

| Name    | Type | Description                                                  |
| ------- | ---- | ------------------------------------------------------------ |
| process | int  | the Process ID, obtained from the corresponding prepare Call |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /requesttakeout

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/requesttakeout`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /resetpassword

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/resetpassword/:token`

will reset the User Password to a self-given new Value. This is only valid for a predefined Password Reset Link, which Token must be given too.

#### Path Parameters

| Name  | Type   | Description                              |
| ----- | ------ | ---------------------------------------- |
| token | string | the Token of a valid Password Reset Link |

#### Request Body

| Name        | Type   | Description      |
| ----------- | ------ | ---------------- |
| newpassword | string | the new Password |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /resendwelcomemail

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/resendwelcomemail`

will resent the User Welcome Email (needs the Eternal Session and a Backend Process).

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /verifypassword

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/verifywelcome`

will verify, that the given Password matches the stored User Password

#### Path Parameters

| Name     | Type   | Description                                |
| -------- | ------ | ------------------------------------------ |
| password | string | the User entered Password for Verification |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /profile

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/profile`

#### Query Parameters

| Name         | Type    | Description                            |
| ------------ | ------- | -------------------------------------- |
| addEventData | boolean | also include the last 25 joined Events |
| addGroupData | boolean | also include the last 25 joined Groups |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /requestpass

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/requestpass`

will try to find a registered and authorized User and sends an Email with new Login Details to that Account.

#### Query Parameters

| Name  | Type   | Description                                                  |
| ----- | ------ | ------------------------------------------------------------ |
| token | string | the given User Information (Email, Username or Phone Number) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /requestkeycode

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/requestkeycode`

will invalidate all open 2FA Codes and generates a new Code for the given Device.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /changepassword

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/user/changepassword`

#### Request Body

| Name            | Type   | Description                 |
| --------------- | ------ | --------------------------- |
| currentpassword | string | the currently used Password |
| newpassword     | string | the new Password            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /updatestatus

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/user/updatestatus`

#### Request Body

| Name   | Type   | Description           |
| ------ | ------ | --------------------- |
| status | string | the new Status Update |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /updatechannelsubscriptions

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/user/updatechannelsubscriptions`

updates a User Notification Preferences for new Media in a given Channel.

#### Query Parameters

| Name    | Type    | Description                                          |
| ------- | ------- | ---------------------------------------------------- |
| channel | integer | the target Channel                                   |
| viamail | boolean | set to 1, if the User wants to be informed via Email |
| viapush | boolean | set to 1, if ths User wants to be informed via Push  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /updatedata

<mark style="color:orange;">`PUT`</mark> `https://api.nexx.cloud/v3.1/user/updatedata`

will update all User Details (except Password, Username and Status). All given User Details must be sent via PUT Parameters as in the /register Endpoint.

#### Request Body

| Name          | Type    | Description                                                                                               |
| ------------- | ------- | --------------------------------------------------------------------------------------------------------- |
| connectedForm | integer | if handled via a nexxOMNIA Form, Auto Validation will take Place based on the Rules for the given Form ID |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /unsubscribe

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/user/unsubscribe`

unsubscribe from all Newsletters

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /unregister

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/user/unregister`

will remove the User completey. This Operation cannot be undone, so use with extreme Care.

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Media Item Lists

Media Item List Endpoints return Lists of Media Items, that the User interacted in any Way.&#x20;

| Parameter          | Values        | Description                                                                                                                                                                               |
| ------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **forUserID**      | valid User ID | if omitted, the currently loggedin User is the target User. If coming from a Backend Process with the "eternal Session", this Parameter can be set for querying for statistical Purposes. |
| **mediaDataLevel** | \[flat, null] | as the returned Lists can become very long, set this Parameter to "flat" in order to only retrieve minimal Media Informations                                                             |

## /history

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/history`

#### Query Parameters

| Name             | Type    | Description                                  |
| ---------------- | ------- | -------------------------------------------- |
| streamtype       | string  | reduce returned List to the given Streamtype |
| excludeCompleted | boolean | <p>dont include fully watched Items<br></p>  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /historyformerge

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/historyformerge`

This special Endpoint is designed for History Synchronization on Login. It only returnes the Media IDs and will always return ALL of them - Paging is not supported in this Case.

#### Query Parameters

| Name             | Type    | Description                                                                                                                             |
| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| streamtypes      | string  | a Comma seperated List of Streamtypes to be included in the Result Set                                                                  |
| includeProgress  | boolean | if set to 1, the Result Set will contain a maximally reached Progress for each Media Item (for Streamtypes, that have a Time Dimension) |
| excludeCompleted | boolean | dont include fully watched Items                                                                                                        |
| maxDays          | integer | if set, include only Items, watched during the last maxDays Days.                                                                       |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /searchhistory

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/searchhistory`

#### Query Parameters

| Name       | Type   | Description                                  |
| ---------- | ------ | -------------------------------------------- |
| streamtype | string | reduce returned List to the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /purchaseditems

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/purchaseditems`

#### Query Parameters

| Name           | Type    | Description                                                       |
| -------------- | ------- | ----------------------------------------------------------------- |
| streamtype     | string  | reduce returned List to the given Streamtype                      |
| excludeExpired | boolean | <p>dont include PPV Items, that are not available anymore<br></p> |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /favourites

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/favourites`

#### Query Parameters

| Name       | Type   | Description                                  |
| ---------- | ------ | -------------------------------------------- |
| streamtype | string | reduce returned List to the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /watchlist

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/watchlist`

#### Query Parameters

| Name       | Type   | Description                                  |
| ---------- | ------ | -------------------------------------------- |
| streamtype | string | reduce returned List to the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /cart

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/cart`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /itemsininterest

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/itemsininterest`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /likes

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/likes`

#### Query Parameters

| Name       | Type   | Description                                  |
| ---------- | ------ | -------------------------------------------- |
| streamtype | string | reduce returned List to the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /ratings

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/ratings`

#### Query Parameters

| Name       | Type   | Description                                  |
| ---------- | ------ | -------------------------------------------- |
| streamtype | string | reduce returned List to the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /comments

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/comments`

#### Query Parameters

| Name       | Type   | Description                                  |
| ---------- | ------ | -------------------------------------------- |
| streamtype | string | reduce returned List to the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /clips

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/clips`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /uploads

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/uploads`

#### Request Body

| Name       | Type   | Description                            |
| ---------- | ------ | -------------------------------------- |
| streamtype | string | return Uploads of the given Streamtype |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /teams

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/teams`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /events

<mark style="color:blue;">`GET`</mark> `https://api.nexx.cloud/v3.1/user/events`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## User Media

## /prepareupload

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/prepareupload`

This Endpoint will return Upload URLs, Tokens and Filenames for all file based UGC Uploads.

#### Request Body

| Name         | Type    | Description                                                     |
| ------------ | ------- | --------------------------------------------------------------- |
| file         | string  | the Name of the File to upload                                  |
| fromCapture  | boolean | if set to 1, this File has been taken by Camera (or Microphone) |
| forUserStory | boolean | if set to 1, the File will be added to the Users own Story      |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /finishupload

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/finishupload`

This Endpoint will return Upload URLs, Tokens and Filenames for all file based UGC Uploads.

#### Request Body

| Name             | Type    | Description                                                                                                                            |
| ---------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| file             | string  | The Server Filename, received from /prepareupload                                                                                      |
| originalFile     | string  | the original Filename                                                                                                                  |
| context          | string  | The Purpose of the Upload \[profilepicture, profilebackground, image, video, videocover, articlecover, playlistcover, collectioncover] |
| item             | number  | in Case the uploaded File is a Cover, set the ID of the target Media Item here                                                         |
| forUserStory     | boolean | if set to 1, the File will be added to the Users own Story                                                                             |
| lat              | number  | the Latitude of the Users Geo Position                                                                                                 |
| lng              | number  | the Longitude of the Users Geo Position                                                                                                |
| mediaTitle       | string  | the Title of the Media Item (only usefull if context is image or video)                                                                |
| mediaDescription | string  | the Description of the Media Item (only usefull if contexts is image or video)                                                         |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addarticle

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/addarticle`

This Endpoint will create a UGC Media Item of Streamtype "article".

#### Request Body

| Name        | Type    | Description                                                                             |
| ----------- | ------- | --------------------------------------------------------------------------------------- |
| title       | string  | the Title of the new Article                                                            |
| subtitle    | string  | an optional Subtitle of the new Article                                                 |
| teaser      | string  | an optional Teaser for the new Article                                                  |
| text        | string  | the Contents of the Article (should be HTML)                                            |
| autoPublish | boolean | if set to 1, automatically post the Article (unless Domain UGC Restrictions are active) |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addplaylist

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/addplaylist`

Thsi Endpoint will create a UGC Media Item of Streamtype "playlist".

#### Request Body

| Name        | Type    | Description                                                                             |
| ----------- | ------- | --------------------------------------------------------------------------------------- |
| title       | string  | the Title of the new Playlist                                                           |
| subtitle    | string  | an optional Subtitle of the new Playlist                                                |
| teaser      | string  | an optional Teaser for the new Playlist                                                 |
| description | string  | an optional Description for the new Playlist                                            |
| autoPublish | boolean | if set to 1, automatically post the Playlist (unless Domain UGC Restrictions are active |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /addcollection

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/user/addcollection`

This Endpoint will create a UGC Media Item of Streamtype "collection"

#### Request Body

| Name        | Type    | Description                                                                               |
| ----------- | ------- | ----------------------------------------------------------------------------------------- |
| title       | string  | the Title of the new Collection                                                           |
| subtitle    | string  | an optional Subtitle of the new Collection                                                |
| teaser      | string  | an optional Teaser for the new Collection                                                 |
| description | string  | an optional Description for the new Collection                                            |
| autoPublish | boolean | if set to 1, automatically post the Collection (unless Domain UGC Restrictions are active |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Payment Processing

Payment Processing can be handled directly via nexxOMNIA or via a Third-Party Platform. In the first Case, the Frontend must handle the Internal API Methods. If everything is handled via another Operator, the Frontend can just use the "**addexternalsubscription**" Operation (possible even via Backend).

In both Cases, Subscriptions can be managed afterwards.

## Internal Payment Management

## /itemstate

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/payment/itemstate`

#### Query Parameters

| Name                         | Type    | Description                                                                                                     |
| ---------------------------- | ------- | --------------------------------------------------------------------------------------------------------------- |
| item                         | integer | the Media ID                                                                                                    |
| streamtype                   | string  | the Media Streamtype                                                                                            |
| performTransactionIfPossible | boolean | if set to 1, and the User can watch the Item (for example via Subscription), automatically register this "buy". |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /redeemvoucher

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/payment/redeemvoucher`

The Methods needs "vouchercode" OR "referencecode" to be valid and set - not both.

#### Query Parameters

| Name          | Type   | Description                        |
| ------------- | ------ | ---------------------------------- |
| vouchercode   | string | the given Voucher Code             |
| referencecode | string | the ID of an external Voucher Code |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /preparetransaction

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/payment/preparetransaction`

#### Query Parameters

| Name                           | Type    | Description                                                                                             |
| ------------------------------ | ------- | ------------------------------------------------------------------------------------------------------- |
| operation                      | string  | the Type of Transaction  \[subscription, ppv, ownage, deposit,...]                                      |
| item                           | number  | the Media ID (not applicable on all Contexts)                                                           |
| streamtype                     | string  | the Media Streamtype (not applicable on all Contexts)                                                   |
| reference                      | string  | in Case the Provider already returned a Transaction Reference                                           |
| amount                         | number  | the Amount of Money for this Operation (in the Subunit of the Currency (for example - Cents for Euro))  |
| currency                       | string  | the used Currency                                                                                       |
| provider                       | string  | 3Q nexx Code for the Provider Type                                                                      |
| paymentType                    | string  | 3Q nexx Code for the Payment Type (for exmaple "creditcard") (can also be defined later)                |
| affiliateParam                 | string  | If the Operation is driven by an Affiliate Partner, add the Parameter to store it for later Processing. |
| subscriptionDuration           | number  | Subscription Duration (in Months)                                                                       |
| subscriptionIsPremium          | boolean | Default or Premium Subscription                                                                         |
| subscriptionWillRenew          | boolean | will the Subscription renew automatically                                                               |
| subscriptionCanRenew           | boolean | can the Subscription be renewed after Expiry                                                            |
| subscriptionWillBePayedMonthly | boolean | will the Subscription be payed every Month or in full upfront.                                          |
| capturePaymentOn               | number  | if the Payment is for a Trial Phase, capture the Money on the given Timestamp                           |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /finishtransaction

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/payment/finishtransaction`

#### Query Parameters

| Name                         | Type    | Description                                                                                                                        |
| ---------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| transactionID                | number  | the Transaction ID from the **preparetransaction** Method                                                                          |
| token                        | string  | the used Payment Security Token                                                                                                    |
| reference                    | string  | the Payment Provider Transaction ID                                                                                                |
| paymentType                  | string  | the Type of Payment (if not set before)                                                                                            |
| finalPayment                 | number  | the finally payed Price (could be different from the Start due to Payment Specials)                                                |
| isLatePremium                | boolean | the Subscription is a Premium Subscription (this could have been upgraded during the Payment Process)                              |
| externalUserID               | string  | the User Reference of the Payment Provider                                                                                         |
| externalTransactionReference | string  | the Reference of the nexxOMNIA Transaction for the Payment Provider, if its Design needs a different Type of Transaction Reference |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /verifyinapptransaction

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/payment/verifyinapptransaction`

inApp Payment cannot be handled by the usual prepare/finish Approach and needs therefore be treated differently.

#### Query Parameters

| Name             | Type    | Description                                                                                            |
| ---------------- | ------- | ------------------------------------------------------------------------------------------------------ |
| operation        | string  | the Type of Transaction  \[subscription, ppv, ownage, deposit,...]                                     |
| item             | number  | the Media ID (not applicable on all Contexts)                                                          |
| streamtype       | string  | the Media Streamtype (not applicable on all Contexts)                                                  |
| provider         | string  | 3Q nexx Code for the Provider  \[io, go, am]                                                           |
| amount           | number  | the Amount of Money for this Operation (in the Subunit of the Currency (for example - Cents for Euro)) |
| currency         | string  | the used Currency                                                                                      |
| amount\_original | number  | the Amount, as given by the App Store                                                                  |
| isPremium        | boolean | the Subscription will be Default or Premium                                                            |
| receipt          | string  | the App Store Receipt (as encoded JSON) for Serverside Verification                                    |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## External Payment Management

## /addexternalsubscription

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/payment/addexternalsubscription`

will add a Subscription to a given User. The target User must have been registered also externally. This Call is only needed if User- and Payment Management are handled outside of nexxOMNIA.

#### Query Parameters

| Name       | Type    | Description                                                                    |
| ---------- | ------- | ------------------------------------------------------------------------------ |
| validUntil | number  | Timestamp for the Period, nexxOMNIA should consider the Subscription as active |
| isPremium  | boolean | Default/Premium Subscriptio                                                    |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Subscription Lifecycle Management

## /upgradesubscription

<mark style="color:green;">`POST`</mark> `https://api.nexx.cloud/v3.1/payment/upgradesubscription`

will replace the current Default Subscription into a Premium Subscripion (without changing the Timings of this Subscription)

#### Query Parameters

| Name          | Type   | Description                                                           |
| ------------- | ------ | --------------------------------------------------------------------- |
| transactionID | string | the Transaction ID for the additional Payment of the Payment Provider |
| amount        | number | the Costs for this Upgrade                                            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## /cancelsubscription

<mark style="color:red;">`DELETE`</mark> `https://api.nexx.cloud/v3.1/payment/cancelsubscription`

#### Query Parameters

| Name              | Type    | Description                                                                                                                                                                                                                      |
| ----------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| transactionID     | number  | the ID of the original Transaction                                                                                                                                                                                               |
| cancelTransaction | boolean | if set to 1, the complete Transaction will be deleted - this should only happen, if the original Transaction itself failed during Processing. In all other Cases, this Value should be 0 (=the Subscription wont extend anymore) |
| skipEmail         | boolean | if set to 1, nexxOMNIA wont send a Confirmation Email                                                                                                                                                                            |
| reasonText        | string  | an optional Reason for this Cancelation (entered by the User)                                                                                                                                                                    |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# API Clients

For easier Integreation of the nexxOMNIA API, 3Q provides official API Clients/SDKs for the following Programming Languages:

{% content-ref url="/pages/-MfbORKnT1Q8lEnXDUT2" %}
[PHP](/api-clients/php)
{% endcontent-ref %}


# PHP

## Introduction

You can find all necessary Code for Download and Changelogs always here:

{% embed url="<https://github.com/3qnexx/APIClient-PHP>" %}

The PHP SDK for the nexxOMNIA API needs at least PHP 7.4 as Environment.

It works best when integrated via Composer 2.

```
composer require nexxomnia/apiclient-php
```

A very simple Example could be

```php
use nexxomnia\apiclient;
use nexxomnia\apicalls\mediacall;
use nexxomnia\enums\streamtypes;

$apiclient = new apiclient();
$apiclient->configure(999,"API-SECRET","SESSION-ID");

$apicall = new mediacall(streamtypes::VIDEO);
$apicall->latest();

$result=$apiclient->call($apicall);

echo $result->getResultIterator(TRUE)->current()->getGeneral()->getID(); // outputs the ID of the first Element
```

## General Usage

For any API Call, two Classes have to be instantiated. The **`apiclient`**&#x68;as to be created only once and configured with the target Domain ID, the Domain Secret and (in most Cases) a valid Session ID - in most cases, that would be the Management Session ID.

The **`apiclient`**&#x77;ill execute a valid **`apicall`**. There are many different **`apicall`**&#x43;lasses for different Aspects of the API, but they all work in a similar Way.

All API Methods, as described in this Documentation, are available on the corresponding **`apicall`**&#x43;lass. In most cases, the **`apicall`**&#x43;lass Method is "humanized" and the Naming is less technical.

Nearly every API Method can be configured by Parameters and/or Modifiers. Consequently, each **`apicall`** Class exposes a **`getParameters()`** and a **`getModifiers()`** Method, which return Helper Classes for easier accessing the correct Parameters here:

```php
$apicall = new mediacall(streamtypes::VIDEO);
$apicall->getParameters()->setLimit(50);
$apicall->getParameters()->set("limit",50);
```

In this simple Example, the basic Way to set Parameters is shown (the **`set`**&#x4D;ethod). Every valid Parameter though has also an explicit Setter (here **`setLimit`**), which additionally check Consistency and Validity of the given Parameter.

Methods with unique Parameters (like in the **/manage** API Endpoint), expose these Parameters directly on the Method and handle the necessary Parameter Logic themselves.

The call Method of the **`apiclient`** takes the configured API Call and directly starts it. It returns an Instance of the **`result`** Class then, which can be handled like this:

```php
$result = $apiclient->call($apicall);

if($result->isSuccess()){

    $result->getRawResponse();
    $result->getResult();
    
    if($result->supportsResultObject()){
        $result->getResultObject();
    }
    
    if($result->supportsIterator()){
        $result->getResultIterator(TRUE);
    }

}else{
    echo $result->getMetadata()->getErrorHint();
}
```

The **`result`**&#x43;lass can directly return the received JSON via **`getRawResponse`**- or, only the "result" Part of the Response via **`getResult`**.

For more advanced Usage, it can also return an Instance of the **`resultobject`**&#x43;lass, which allows to query the JSON in a more human Way:

```php
$id = $result->getRawResponse()["result"]["general"]["ID"];
$id = $result->getResultObject()->getGeneral()->getID();
```

Especially the media API returns very often Lists of Media Objects. For Iterating directly over the JSON Array, the result Class exposes an Iterator via **`getResultIterator`**. The Iterator itself can return the pure JSON Objects or **`resultobject`** Class Instances as above.

## Creating new Elements

### Media Creation via API

The SDK allows also to create new Media. Technically, there are Media Types, that need an initial File (like a Video), and Media Types, that exist of Data alone (an Article for example).

File-driven Media Types can be created by giving a URL, that the API will use to download and process the Input and create an Item from it:

```php
use nexxomnia\apicalls\mediamanagementcall;
use nexxomnia\enums\streamtypes;

$videoURL="https://example.com/video.mp4";

$apicall = new mediamanagementcall();
$apicall->setStreamtype(streamtypes::VIDEO);
$apicall->createFromURL($videoURL);

$result = $apiclient->call($apicall);

if($result->isSuccess()){
    // the ID of the new Video via ResultObject:
    $videoID = $result->getResultObject()->getGeneratedID();

    // or via JSON Objects: 
    $videoID = $result->getResult()['itemupdate']['generatedID'];
}
```

Data-driven Media Types will be created like this:

```php
use nexxomnia\apicalls\mediamanagementcall;
use nexxomnia\enums\streamtypes;

$apicall = new mediamanagementcall();
$apicall->setStreamtype(streamtypes::ARTICLE);
$apicall->createFromData("Article Title","Article Refnr");

$result = $apiclient->call($apicall);

if($result->isSuccess()){
    // the ID of the new Article via ResultObject:
    $articleID = $result->getResultObject()->getGeneratedID();

    // or via JSON Objects: 
    $articleID = $result->getResult()['itemupdate']['generatedID'];

}
```

###

### Creating Structure Elements

Structure Elements like Channels, Formats and Categories are not Media Items. They exist on the Domain Level only and can be created like Data-driven Elements via API:

```php
use nexxomnia\apicalls\domainmanagementcall;


$apicall = new domainmanagementcall();
$apicall->addChannel(['title'=>'Channel','refnr'=>'123','parent'=>0,'pos'=>1]);

$result = $apiclient->call($apicall);

if($result->isSuccess()){
    // the ID of the new Channel
    $channelID = $result->getResultObject()->getGeneratedID();

    // or via JSON Objects: 
    $channelID = $result->getResult()['itemupdate']['generatedID'];

}
```

The Attributes for this Example are listed in the Domain Management API:

{% content-ref url="/pages/-MB8ibHaXhUUan\_QumBK" %}
[Domain Management](/management-api/endpoints/domain-management)
{% endcontent-ref %}

### Media Creation via UploadHandler

Alternatively, you can upload a local File directly with the **`uploadhandler`**&#x43;lass:

```php
use nexxomnia\uploadhandler;
use nexxomnia\enums\streamtypes;

$localPath="/var/www/myfolder/video.mp4";

$uploadhandler = new uploadhandler();
$uploadhandler->setAPIClient($apiclient);
$apiresult = $uploadhandler->uploadMedia($localPath,streamtypes::VIDEO);

//the UploadHandler returns an API Result, that can be used as usual
$videoID = $apiresult->getResultObject()->getGeneratedID();
```

### Using the UploadHandler

Besides the pure Upload of new Media Files, the UploadHandler offers even more Helpers for all API Endpoints, that need a phsyical File (like Covers and Captions):

```php
use nexxomnia\uploadhandler;
use nexxomnia\enums\streamtypes;
use nexxomnia\enums\covertypes;

$coverPath="/var/www/myfolder/cover.jpg";
$captionPath="/var/www/myfolder/caption.vtt";

$uploadhandler = new uploadhandler();
$uploadhandler->setAPIClient($apiclient);
$uploadhandler->setMediaCover($coverPath,streamtypes::VIDEO,$videoID,covertypes::COVER);
$uploadhandler->addMediaCaptions($captionPath,streamtypes::VIDEO,$videoID,"es");
```

## Available APICall Classes

### Media API

The most important Difference to other Classes here is the need for setting the target Streamtype (in the Constructor or via explicit Method). By default, the Class uses "video" as Streamtype. You can use the Enum Class **`nexxomnia\enums\streamtypes`** to be sure or just use a String.

```php
$apicall->setStreamtype(streamtypes::IMAGE);
```

The Media API offers by far the highest Amount of Modifiers and Parameters, which are exposed as described above. It also nearly always returns Lists of Media, which implies using the Interator Object on the result Class.

Very often, it is necessary to get all possible Results in one Array. The API itself does not return more than 100 Elements per Call, but if all possible Results are needd, the **`call`**&#x4D;ethod of the **`apiclient`**&#x6F;ffers a second Parameter, which will handle the Parameters and Interating over the API Responses to construct a **`result`**&#x4F;bject with indeed all Result Objects.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

###

### Management APIs

As the Management API offers by far the most Methods, the API Client offers mediamanagement and domainmanagement Classes for the corresponding Method Helpers.

Like the Media API, the Classes offer a **`setStreamtype`**&#x61;nd a **`setItem`**&#x4D;ethod, which is extremely helpfull especially on Media Management, where one specific Media Item of a specific Streamtype should be modified.

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

{% content-ref url="/pages/-MB8jPtCtYiQowvQkXkp" %}
[Media Export Management](/management-api/endpoints/media-export-management)
{% endcontent-ref %}

{% content-ref url="/pages/-MB8ibHaXhUUan\_QumBK" %}
[Domain Management](/management-api/endpoints/domain-management)
{% endcontent-ref %}

### Statistics API

The Statistics API returns in nearly every case lists of Key=>Value Pairs. Therefore, the Usage of the **`getResult`**&#x4D;ethod of the **`response`**&#x4F;bject is is most cases sufficient.

Please notice, that some Methods can return huge Lists. As Paging is not supported in this API, you can set the Limit to higher Values (like 100000). Furthermore, this API might take longer than all other APIs, as it returns realtime Data. The apiclient therefore sets a Timeout of 30 Seconds by default, it Endpoints of this API are called. It is possible though to raise this Value even more:

```php
$apiclient->setTimeout(60);
```

{% content-ref url="/pages/-M9bgPXYeyhijTC7FW9Q" %}
[Statistics](/management-api/endpoints/statistics-endpoint)
{% endcontent-ref %}

### Domain API

The Domain API exposes various structural Objects, that are connected to a Domain. The classic Example is a List of Channels via **`getChannels`**. In most Cases, the response should be iterated over with an Iterator, but as most Lists are very short and Paging is (in most Cases) not supported, the **`getResult`**&#x4D;ethod is enough.

{% content-ref url="/pages/-M9bgEP47HYrSjbJd8c\_" %}
[Domain Data](/management-api/endpoints/domain-endpoint)
{% endcontent-ref %}

### System API

The System API is very straight forward, as it basically only returns Objects/Arrays of System Constants. The Usage of the **`getResult`**&#x4D;ethod of the **`response`**&#x4F;bject is is most cases sufficient.

{% content-ref url="/pages/-M9bgUcvD9Y6VAlUluo9" %}
[System Data](/management-api/endpoints/system-endpoint)
{% endcontent-ref %}

### Session API

The Session API is available in the SDK, but in nearly every Case, this Backend SDK should use the constant "Management Session", given by 3Q. Nevertheless, it is possible to start and extend Sessions with this Class, if needed.

{% content-ref url="/pages/-M9bgIaAG6MxGVRdvLvk" %}
[Session Management](/frontend-api/endpoints/session-endpoint)
{% endcontent-ref %}

### Processing API

The most important Method of the Processing API is the MultiTask Method, which allows to query multiple API Endpoints at the same time. To make sure, the Parameters are built correctly, each Task, that is given to the Method is itself a Class. It is used like this:

```php
use nexxomnia\apicalls\processingcall;
use nexxomnia\apicalls\helpers\task;
use nexxomnia\enums\streamtypes;

$apicall = new processingcall();

$tasks = [];
$task = new task("task-1");
$task->setEndpoint(streamtypes::AUDIO);
$task->setMethod("byid");
$task->setItem(999);
array_push($tasks,$task);

$apicall->multiTask($tasks);
```

{% content-ref url="/pages/-M9bgX-oF0Pbx0fJewf6" %}
[Processing](/media-api/endpoints/processing-endpoint)
{% endcontent-ref %}

## Custom APICall

For advanced Usage, you can omit all predefined Methods and Helpers and use a custom APICall. Please notice, that in this Case, you have to be very sure about the right Endpoints, Methods, HTTP Verbs and Parameters.

```php
use nexxomnia\apicalls\customcall;
use nexxomnia\enums\defaults;
use nexxomnia\enums\streamtypes;

$apicall = new customcall();
$apicall->setVerb(defaults::VERB_GET);
$apicall->setPath("/videos/byid/123");
$apicall->getParameters()->set("additionalFields","channel");
```


# NodeJS

## Introduction

You can find all necessary Code for Download and Changelogs always here:

{% embed url="<https://github.com/3qnexx/APIClient-NodeJS>" %}

The NodeJS SDK for the nexxOMNIA API needs at least NodeJS 16.\* as Environment.

{% hint style="info" %}
Starting with Version 1.5.0, the SDK needs NodeJS 18.\* as Environment, **18.15+** is highly recommended.

The last Version supporting V16 is Version **1.3.1**. Install this Version, if your Environment uses a NodeJS Version < 18.0.
{% endhint %}

```javascript
npm install nexxomnia-api-nodejs
```

```javascript
const {APIClient} = require("nexxomnia-api-nodejs");
```

A very simple Example could be

```javascript
const {APIClient, MediaCall, streamtypes} = require("nexxomnia-api-nodejs");

let apiclient = new APIClient();
apiclient.configure(999,"API-SECRET","SESSION-ID");

let apicall = new MediaCall(streamtypes.VIDEO);
apicall.latest();

let result = await apiclient.call(apicall);

let obj=result.getResultIterator(true);
for(let el of obj){
    console.log(el.getGeneral().getID());
}
```

## General Usage

For any API Call, two Classes have to be instantiated. The **`APIClient`**&#x68;as to be created only once and configured with the target Domain ID, the Domain Secret and (in most Cases) a valid Session ID - in most cases, that would be the Management Session ID.

The **`APIClient`**&#x77;ill execute a valid **`APICall`**. There are many different **`APICall`**&#x43;lasses for different Aspects of the API, but they all work in a similar Way.

All API Methods, as described in this Documentation, are available on the corresponding **`APICall`**&#x43;lass. In most cases, the **`APICall`**&#x43;lass Method is "humanized" and the Naming is less technical.

Nearly every API Method can be configured by Parameters and/or Modifiers. Consequently, each **`APICall`** Class exposes a **`getParameters()`** and a **`getModifiers()`** Method, which return Helper Classes for easier accessing the correct Parameters here:

```javascript
let apicall = new MediaCall(streamtypes.VIDEO);
apicall.getParameters().setLimit(50);
apicall.getParameters().set("limit",50);
```

In this simple Example, the basic Way to set Parameters is shown (the **`set`**&#x4D;ethod). Every valid Parameter though has also an explicit Setter (here **`setLimit`**), which additionally check Consistency and Validity of the given Parameter.

Methods with unique Parameters (like in the **/manage** API Endpoint), expose these Parameters directly on the Method and handle the necessary Parameter Logic themselves.

The call Method of the **`APIClient`** takes the configured API Call and directly starts it. It returns an Instance of the **`APIResult`** Class then, which can be handled like this:

```javascript
let result = apiclient.call(apicall);

if(result.isSuccess()){

    result.getRawResponse();
    result.getResult();
    
    if(result.supportsResultObject()){
        result.getResultObject();
    }
    
    if(result.supportsIterator()){
        result.getResultIterator(true);
    }

}else{
    console.log(result.getMetadata().getErrorHint());
}
```

The **`APIResult`**&#x43;lass can directly return the received JSON via **`getRawResponse`**- or, only the "result" Part of the Response via **`getResult`**.

For more advanced Usage, it can also return an Instance of the **`ResultObject`**&#x43;lass, which allows to query the JSON in a more human Way:

```javascript
id = result.getRawResponse()["result"]["general"]["ID"];
id = result.getResultObject().getGeneral().getID();
```

Especially the media API returns very often Lists of Media Objects. For Iterating directly over the JSON Array, the result Class exposes an Iterator via **`getResultIterator`**. The Iterator itself can return the pure JSON Objects or **`ResultObject`** Class Instances as above.

## Creating new Elements

### Media Creation via API

The SDK allows also to create new Media. Technically, there are Media Types, that need an initial File (like a Video), and Media Types, that exist of Data alone (an Article for example).

File-driven Media Types can be created by giving a URL, that the API will use to download and process the Input and create an Item from it:

```javascript
let videoURL="https://example.com/video.mp4";

let apicall = new MediaManagementCall();
apicall.setStreamtype(streamtypes.VIDEO);
apicall.createFromURL(videoURL);

let result = apiclient.call(apicall);

if(result.isSuccess()){
    // the ID of the new Video via ResultObject:
    videoID = result.getResultObject().getGeneratedID();

    // or via JSON Objects: 
    videoID = result.getResult()['itemupdate']['generatedID'];
}
```

Data-driven Media Types will be created like this:

```php
let apicall = new MediaManagementCall();
apicall.setStreamtype(streamtypes.ARTICLE);
apicall.createFromData("Article Title","Article Refnr");

let result = apiclient.call(apicall);

if(result.isSuccess()){
    // the ID of the new Article via ResultObject:
    articleID = result.getResultObject().getGeneratedID();

    // or via JSON Objects: 
    articleID = result.getResult()['itemupdate']['generatedID'];

}
```

###

### Creating Structure Elements

Structure Elements like Channels, Formats and Categories are not Media Items. They exist on the Domain Level only and can be created like Data-driven Elements via API:

```javascript
let apicall = new DomainManagementCall();
apicall.addChannel({'title':'Channel','refnr':'123','parent':0,'pos':1});

let result = apiclient.call(apicall);

if(result.isSuccess()){
    // the ID of the new Channel
    channelID = result.getResultObject().getGeneratedID();

    // or via JSON Objects: 
    channelID = result.getResult()['itemupdate']['generatedID'];

}
```

The Attributes for this Example are listed in the Domain Management API:

{% content-ref url="/pages/-MB8ibHaXhUUan\_QumBK" %}
[Domain Management](/management-api/endpoints/domain-management)
{% endcontent-ref %}

### Media Creation via UploadHandler

Alternatively, you can upload a local File directly with the **`UploadHandler`**&#x43;lass:

```javascript
const {APIClient, UploadHandler} = require("nexxomnia-api-nodejs");

let localPath="/var/www/myfolder/video.mp4";

let uploadhandler = new UploadHandler();
uploadhandler.setAPIClient(apiclient);

let apiresult = uploadhandler->uploadMedia(localPath,streamtypes.VIDEO);

//the UploadHandler returns an API Result, that can be used as usual
let videoID = apiresult.getResultObject().getGeneratedID();
```

### Using the UploadHandler

Besides the pure Upload of new Media Files, the UploadHandler offers even more Helpers for all API Endpoints, that need a phsyical File (like Covers and Captions):

```javascript
let coverPath="/var/www/myfolder/cover.jpg";
let captionPath="/var/www/myfolder/caption.vtt";

let uploadhandler = new UploadHandler();
uploadhandler.setAPIClient(apiclient);

uploadhandler.setMediaCover(coverPath,streamtypes.VIDEO,videoID);
uploadhandler.addMediaCaptions(captionPath,streamtypes.VIDEO,videoID,"es");
```

## Available APICall Classes

### Media API

The most important Difference to other Classes here is the need for setting the target Streamtype (in the Constructor or via explicit Method). By default, the Class uses "video" as Streamtype. You can use the Enum Class **`streamtypes`** to be sure or just use a String.

```javascript
apicall.setStreamtype(streamtypes.IMAGE);
```

The Media API offers by far the highest Amount of Modifiers and Parameters, which are exposed as described above. It also nearly always returns Lists of Media, which implies using the Interator Object on the result Class.

Very often, it is necessary to get all possible Results in one Array. The API itself does not return more than 100 Elements per Call, but if all possible Results are needd, the **`call`**&#x4D;ethod of the **`APIClient`**&#x6F;ffers a second Parameter, which will handle the Parameters and Interating over the API Responses to construct a **`APIResult`**&#x4F;bject with indeed all Result Objects.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

### Management APIs

As the Management API offers by far the most Methods, the API Client offers MediaManagement and DomainManagement Classes for the corresponding Method Helpers.

Like the Media API, the Classes offer a **`setStreamtype`**&#x61;nd a **`setItem`**&#x4D;ethod, which is extremely helpfull especially on Media Management, where one specific Media Item of a specific Streamtype should be modified.

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

{% content-ref url="/pages/-MB8jPtCtYiQowvQkXkp" %}
[Media Export Management](/management-api/endpoints/media-export-management)
{% endcontent-ref %}

{% content-ref url="/pages/-MB8ibHaXhUUan\_QumBK" %}
[Domain Management](/management-api/endpoints/domain-management)
{% endcontent-ref %}

### Statistics API

The Statistics API returns in nearly every case lists of Key=>Value Pairs. Therefore, the Usage of the **`getResult`**&#x4D;ethod of the **`response`**&#x4F;bject is is most cases sufficient.

Please notice, that some Methods can return huge Lists. As Paging is not supported in this API, you can set the Limit to higher Values (like 100000). Furthermore, this API might take longer than all other APIs, as it returns realtime Data. The apiclient therefore sets a Timeout of 30 Seconds by default, it Endpoints of this API are called. It is possible though to raise this Value even more:

```javascript
apiclient.setTimeout(60);
```

{% content-ref url="/pages/-M9bgPXYeyhijTC7FW9Q" %}
[Statistics](/management-api/endpoints/statistics-endpoint)
{% endcontent-ref %}

###

### Domain API

The Domain API exposes various structural Objects, that are connected to a Domain. The classic Example is a List of Channels via **`getChannels`**. In most Cases, the response should be iterated over with an Iterator, but as most Lists are very short and Paging is (in most Cases) not supported, the **`getResult`**&#x4D;ethod is enough.

{% content-ref url="/pages/-M9bgEP47HYrSjbJd8c\_" %}
[Domain Data](/management-api/endpoints/domain-endpoint)
{% endcontent-ref %}

###

### System API

The System API is very straight forward, as it basically only returns Objects/Arrays of System Constants. The Usage of the **`getResult`**&#x4D;ethod of the **`APIResponse`**&#x4F;bject is is most cases sufficient.

{% content-ref url="/pages/-M9bgUcvD9Y6VAlUluo9" %}
[System Data](/management-api/endpoints/system-endpoint)
{% endcontent-ref %}

###

### Session API

The Session API is available in the SDK, but in nearly every Case, this Backend SDK should use the constant "Management Session", given by 3Q. Nevertheless, it is possible to start and extend Sessions with this Class, if needed.

{% content-ref url="/pages/-M9bgIaAG6MxGVRdvLvk" %}
[Session Management](/frontend-api/endpoints/session-endpoint)
{% endcontent-ref %}

### Processing API

The most important Method of the Processing API is the MultiTask Method, which allows to query multiple API Endpoints at the same time. To make sure, the Parameters are built correctly, each Task, that is given to the Method is itself a Class. It is used like this:

```javascript
let apicall = new ProcessingCall();

let tasks = [];
let task = new Task("task-1");
task.setEndpoint(streamtypes.AUDIO);
task.setMethod("byid");
task.setItem(999);
tasks.push(task);

apicall.multiTask(tasks);
```

{% content-ref url="/pages/-M9bgX-oF0Pbx0fJewf6" %}
[Processing](/media-api/endpoints/processing-endpoint)
{% endcontent-ref %}

## Custom APICall

For advanced Usage, you can omit all predefined Methods and Helpers and use a custom APICall. Please notice, that in this Case, you have to be very sure about the right Endpoints, Methods, HTTP Verbs and Parameters.

```javascript
let apicall = new CustomCall();
apicall.setVerb(defaults.VERB_GET);
apicall.setPath("/videos/byid/123");
apicall.getParameters().set("additionalFields","channel");
```


# Notification Gateway

## Concept

nexxOMNIA enables all connected Domains to use a Notification Gateway in order to sync an external system with any change, that happens to any content element within nexxOMNIA. In order to enable this setting, a connected User with the “settings” right need to configure the “**Notification Gateway URLs**” within the Domain Settings Overlay.

After that Setting is made, nexxOMNIA will automatically start to push a Notification to the defined URLs after every modification of every Media Item.

## Ping Receiver

nexxOMNIA pushes the data structure as raw JSON via **POST** to the defined Endpoint. The Endpoint therefore should not take care of any REQUEST Variable, instead take the complete REQUEST Data and interpret it as JSON.

A simple example for a PHP Backend would be:

```php
$pingdata = json_decode(file_get_contents(“php://input”),TRUE)
```

Besides some Metadata, the Payload offers the "data" Object. Here you find the complete Metadata of the Media Item. This Object is rbasically a Representation of a successful API Call wit&#x68;**`additionalfields=all`** and **`addPublishingDetails=1`**. If the Notification occurred due to an Export Event, the Parameter **`addExportDetails=1`** is internally applied for a more convenient Representation of the current Export States.

## Ping Data Structure

| Key         | Property   | Desription                                                                  |
| ----------- | ---------- | --------------------------------------------------------------------------- |
| **trigger** | event      | the "reason" for this Trigger                                               |
|             | user       | the User ID, that changed the Media Item (or 0, if created by nexxOMNIA)    |
|             | session    | the Session ID, that changed the Media Item (or 0, if created by nexxOMNIA) |
|             | created    | the Timestamp of the Change                                                 |
|             | sent       | the Timestamp of the Trigger Processing                                     |
|             | secret     | the computed Secret for Comparison (if enabled)                             |
| **item**    | ID         | the ID of the Media Item                                                    |
|             | GID        | the GlobalID of the Media Item                                              |
|             | refnr      | the external Reference of the Media Item                                    |
|             | domain     | the Domain of the Media Item                                                |
|             | streamtype | the Streamtpe of the Media Item                                             |
| **data**    |            | API Result                                                                  |

{% hint style="info" %}
Per default, each Notification Gateway will receive ALL Events. If you are only interested in some of them, the Notification Gateway Settings allows to restrict the Event Reasons to only those, you are interested in.
{% endhint %}

## Ping Event Triggers

| **Reason**          | Description                                                                    |
| ------------------- | ------------------------------------------------------------------------------ |
| **encoded**         | the Item has been encoded for a Gateway                                        |
| **thumb**           | the URL of a Cover attribute has been changed                                  |
| **caption**         | the associated Caption Files have been changed                                 |
| **metadata**        | the general Metadata of the Item has been modified                             |
| **connecteditems**  | the similar Elements / Recommendation Elements have been changed               |
| **expired**         | the Media Item has reached the time, where it should deactivate itself.        |
| **deactivate**      | the Media Item has been deactivated (or deactivated itself)                    |
| **delete**          | the Media Item has been deleted (or deleted itself)                            |
| **archive**         | the Media Item has been archived                                               |
| **restore**         | the Media Item was deleted/deactivated/archived, but has been restored         |
| **tocoldstorage**   | the Media Item was moved to cold Storage                                       |
| **fromcoldstorage** | the Media Item was moved from cold Storage                                     |
| **approved**        | the Media Item was approved by API or a Approval Process                       |
| **claimed**         | the Media Item was UGC, but has been claimed by the API or an Approval Process |
| **rejected**        | the Media Item was rejected by API or a Approval Process                       |
| **newversion**      | the Media Item has been updated with a new file                                |
| **childrenchanged** | on a Container Item, the Child Elements have been changed                      |
| **linkhasdata**     | on Live Items, the connected Source receives Input Data                        |
| **linkhasnodata**   | on Live Items, the connected Source does not receive Input Data anymore        |
| **exportcompleted** | an Export to a third-Party Platform has been completed successfully.           |
| **exportupdated**   | an Export to a third-Party Platform has been updated successfully.             |
| **exportdeleted**   | an Export to a third-Party Platform has been removed                           |

## Security

Per Default, the Ping will be sent raw to the Receivers. If necessary, a Security Check can be integrated. nexxOMNIA will show a "**Secret**" for each Notification Gateway. Each Ping contains a trigger.secret Attribute, which is the Result of

```php
md5(item.ID,trigger.created,trigger.sent,SECRET)
```

As the Receiver should know the Value of **SECRET**, it is easy to verify, that this Ping was originally sent by nexxOMNIA.


# Changelog

## 2023-09-26

All Media APIs now support the  /withawards Endpoint

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

## 2023-09-13

The DownloadLink Endpoints now also support optional TextTrack Handling, if available.

{% content-ref url="/pages/-MB8jPtCtYiQowvQkXkp" %}
[Media Export Management](/management-api/endpoints/media-export-management)
{% endcontent-ref %}

## 2023-08-09

The /manage Endpoints for LiveStreams and Radio Creation now also support DVR, LowLatency, AAC and OPUS Endpoint Parameters

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2023-06-14

The /playlists and /audioalbums Endpoints now support Filtering by Podcast Source.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

## 2023-05-22

The Statistics Endpoint now supports platformVariant Parameters.

{% content-ref url="/pages/-M9bgPXYeyhijTC7FW9Q" %}
[Statistics](/management-api/endpoints/statistics-endpoint)
{% endcontent-ref %}

## 2023-03-07

The Media Management Endpoint now supports Methods for managing License Notes.

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2023-02-23

The User Endpoint now supports various Methods to handle Login with 2FA Authenticator Apps.

{% content-ref url="/pages/-M9bgK\_52KjU9VI1bm\_m" %}
[User Endpoint](/frontend-api/endpoints/user-endpoint)
{% endcontent-ref %}

## 2023-01-12

All Session, Domain and Statistics Endpoints now support the new Campaign System.

{% content-ref url="/pages/-M9bgEP47HYrSjbJd8c\_" %}
[Domain Data](/management-api/endpoints/domain-endpoint)
{% endcontent-ref %}

{% content-ref url="/pages/-M9bgIaAG6MxGVRdvLvk" %}
[Session Management](/frontend-api/endpoints/session-endpoint)
{% endcontent-ref %}

{% content-ref url="/pages/-M9bgPXYeyhijTC7FW9Q" %}
[Statistics](/management-api/endpoints/statistics-endpoint)
{% endcontent-ref %}

## 2022-11-11

The Media Export Management API now supports DownloadLinks on all relevant Levels. Its Syntax and Options are closely aligned to the already existing PreviewLink APIs.

{% content-ref url="/pages/-MB8jPtCtYiQowvQkXkp" %}
[Media Export Management](/management-api/endpoints/media-export-management)
{% endcontent-ref %}

## 2022-10-26

All Management Items, which allow creation of Media by a remote URL accept now an optional "notes" Parameter, which will be stored in nexxOMNIA for further inspection.&#x20;

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2022-10-09

Captions are finally referred to as "TextTrack". That means, that all API Endpoints (also in Management API) replace the Word "Caption" with "TextTrack".

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2022-09-29

Captions do not longer support the "**isAudioDescription**" Attribute on the **/media** and **/manage** Endpoints. Please use the "role" Attribute, if you want to emphasize the support for Audio Description.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2022-08-24

The "addVariantDetails" Output Modifier has been deprecated. Plase use "addConnectedMedia" with the desired Detail Level and "variants" as the desired Value.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

## 2022-07-27

The Media Export API now supports exporting Media to Instagram as Reel, not only to a Pages Feed.

{% content-ref url="/pages/-MB8jPtCtYiQowvQkXkp" %}
[Media Export Management](/management-api/endpoints/media-export-management)
{% endcontent-ref %}

## 2022-07-13

Added an Endpoint "currentviewsfor" on Media APIs to quickly and efficiently get current Views (or waiting Users in Case of a Premiere) for immediate Display.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

## 2022-05-27

The Methods to include "child items" to their respective Containers have been changed for consistency and simplicity.

* **addItemData** and **addItemDetails** have been removed. Instead, use the new **addChildMedia Parameter** , which now takes an comma-seperated List of the desired Types of Child Media, just like **addParentMedia**, **addConnectedMedia** or **addReferencingMedia** behave.
* The return Detail Level can now also be modifed with **childMediaDetails**
* as Scenes and Chapters are also "children" of their parent Video/Audio, the Methods "**addScenes**" and "**addChapters**" have been removed too. Instead, also use the **addChildMedia** Parameter here.

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

## 2022-05-21

* updating the Endpoints for TTS Support - especially "/manage/audiofromtext" and "/manage/updatecontent"

## 2022-05-15

* adding Support for "AssetLanguage" - every Cover Context Endpoint now supports Uploads for multiple Languages

## 2022-04-17

* adding Support for artwork Covers

## 2022-03-25

* adding Support for "Asset Descriptions" - every Cover Context Endpoint now accepts an optional "description" Parameter that describes the given Cover - for SEO or Accessibility Purposes.

## 2022-03-18

* adding Support for the new Container Streamtype "rack" on Media and Management Endpoints

## 2022-03-12

* adding Support for a System Incident Endpoint

{% content-ref url="/pages/-M9bgUcvD9Y6VAlUluo9" %}
[System Data](/management-api/endpoints/system-endpoint)
{% endcontent-ref %}

## 2022-03-03

* adding Support for Covers of Domain References (like Channel and Format)
* adding Support for Product Categories in all Domain References Calls

{% content-ref url="/pages/-MB8ibHaXhUUan\_QumBK" %}
[Domain Management](/management-api/endpoints/domain-management)
{% endcontent-ref %}

## 2021-12-17

* The "Meta" Response Field now includes a "notice" Field, which indicated, if the API Call contained some deprecated Attributes.
* Breaking Changes
  * **addParentReferences** has been renamed to **addParentMedia**. Like **addConnectedMedia**, it now takes an comma-seperated List of the desired Types of parent Medias, unlike before.
  * The return Detail Level can now also be modifed with **parentMediaDetails**
  * **addReferencingMedia** has been extended to the same Logic - it now takes a comma-seperated List of desired Types of referencing Media, the detail Level can also be influenced by **referencingMediaDetails.**

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

## 2021-11-20

* added Endpoints for managing LiveStream Recording manually

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2021-10-10

* added Endpoints for managing Awards and HotSpots

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2021-09-16

* added new Live PlaybackState Methods

{% content-ref url="/pages/-M9bhKTxy8lF8hSae8xw" %}
[Media Management](/management-api/endpoints/management-endpoint)
{% endcontent-ref %}

## 2021-09-02

* added Documentation for the new NodeJS SDK

{% content-ref url="/pages/-Mimcu-wAlyezdyKD4ai" %}
[NodeJS](/api-clients/nodejs)
{% endcontent-ref %}

## 2021-08-30

* Breaking Changes
  * **addLinkedMedia** Modifier has been renamed to **addConnectedMedia** with various new Options for more fine-tuned Details of the returned Media
  * **addPersonDetails, addShowDetails, addPlaceDetails** Modifiers have been removed and integrated to **addConnectedMedia**&#x20;
  * **addFileDetails** Modifier has been renamed to **addFileURLs**

{% content-ref url="/pages/-M9bgar7HEGQIS1H7fBE" %}
[Media API](/media-api)
{% endcontent-ref %}

## 2021-08-01

* added Documentation for the new PHP SDK

{% content-ref url="/pages/-MfbORKnT1Q8lEnXDUT2" %}
[PHP](/api-clients/php)
{% endcontent-ref %}

## 2021-07-16

* added new System Endpoints for exisiting, geo-related System Constants

{% content-ref url="/pages/-M9bgUcvD9Y6VAlUluo9" %}
[System Data](/management-api/endpoints/system-endpoint)
{% endcontent-ref %}

## 2021-05-19

* added new Streamtype "**bundle**" and various Management Methods for this Container Type.

## 2021-05-13

* added the new Media Endpoints
  * **/evergreens**
  * **/forkids**

## 2021-03-18

* added various new Methods in the **/statistics** Endpoint to cover Distribution Queries

{% content-ref url="/pages/-M9bgPXYeyhijTC7FW9Q" %}
[Statistics](/management-api/endpoints/statistics-endpoint)
{% endcontent-ref %}

## 2021-02-25

* added Support for various Item References and GlobalID in the **/statistics** Endpoint

## 2021-02-22

* added Support for new BroadcastLinks on **/domain** and **/STREAMTYPE** Level

## 2021-01-27

* Breaking Change.
  * Connections to social Accounts were named "**connection**" in the API, but "**account**" in nexxOMNIA
  * For Consistency, the API will use the name "**account**" now too.
  * Therefore, the Endpoint "**/domain/connections**" has been renamed to "**/domain/accounts**" and the Parameter "**addConnections**" is now "**addAccounts**"
  * Furthermore, the Export API now uses the Parameter "**account**" instead of "**connection**"

## 2021-01-26

* Breaking Change.
  * Persons have a Container now - "**Group**"
  * the previous "Group" Type of Persons was the virtual Gender "Group", this has been removed
  * the API Streamtype "**group**" is available now for all Operations
  * the new API Methods "**bygroup**" and "**bygroupid**" are available for all Streamtypes

## 2021-01-25

* Breaking Change.
  * the Container for **Users** is now **Team** (before: **Group**)
  * all API Methods and References are moved from "**group**" to "**team**"

## 2021-01-12

* added User Endpoint "**/user/searchhistory**"
* added User Endpoint "**/user/purchaseditems**"

## 2020-12-22

* added list/add/removal of **UploadLinks**
* added Support for the new Caption Attribute "**isAudioDescription**" in the corresponding Caption APIs

## 2020-11-10

* added various Methods for User and Intereactions, based on new "**Interest**" Interaction.

## 2020-11-07

* added "**bylivelink**" Endpoint for Video API

## 2020-08-27

* added "**stitchedmanifestfor**" Endpoint for Container Streamtypes

## 2020-08-19

* added various Endpoints to support the new "Reaction" Interaction Type

## 2020-08-02

* added the "**forUserStory**" Parameter for User Upload Endpoints

## 2020-07-28

* added the "**includeSubstringMatches**" Parameter for all /byquery API Methods

## 2020-07-14

* added various Methods and Keywords to bring Downloads and Clicks to the Statistic Endpoints

## 2020-07-10

* added "**forStreamtype**" Parameter for "**studio**" Media Endpoint

## 2020-07-01

* initial Version


