Release notes

2025r10

Point in time custom attributes in business API

Custom attributes are supported in the content, copyright, MAM, on-demand schedule, person and trailer API.

Previously, the following types were available:

  • Boolean

  • Date

  • Decimal number

  • Drop-down list

  • Drop-down list for multiselection

  • Duration

  • Integer

  • Reference

  • String

  • Text

  • Web

From this version, custom attributes of the type Point in time can also be used in these APIs.

In the GET calls, such as GET /program, the following suffixes can be added to the call to either get only specified attributes in the response or all custom attributes of the supported types:

  • ?customAttributes=attributeName,attributeName

  • ?customAttributes=allCustomAttributes

For each custom attribute, the attribute name, value, and type will be given. The new type will be included in the response as follows:

...
    "customAttributes": [
        {
            "attributeName": "embargoTimestamp",
            "value": "2025-12-14T20:00:00Z",
            "type": "Point in time field"
        }
    ]
...

The Point in time custom attribute will be considered as a local timestamp in the Mediagenix Base platform in the default timezone, which is Brussels. When a GET call is done, the timestamp of the custom attribute is converted to UTC time.

For example, the Embargo timestamp from the example is 14/12/25 21:00:00. This is considered in the default timezone, Belgium, which is currently on UTC+1. When doing the GET call, the timestamp is returned as 2025-12-14T20:00:00Z.

In POST or PUT calls, an array of custom attributes needs to be provided with their attribute name and value. The new type should be specified as follows:

    "customAttributes": {
        "embargoTimestamp": "2025-12-14T20:00:00Z"
    }

The timestamp is converted from UTC to the default time zone before being saved in Mediagenix Base platform. This custom attribute type should follow the ISO 8601 format, meaning YYYY-MM-DDTHH:MM:SSZ.

For example, if 2025-12-14T20:00:00Z is sent, this will be saved as 21:00:00.

If the correct format is not used, the following error message is returned:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "timestamp": "2025-12-02T09:23:41Z",
    "concept": "Program",
    "id": "9502146329",
    "errors": [
        {
            "errorCode": "CORE-00002",
            "description": "Parsing error. Use ISO 8601 format",
            "data": [
                null
            ]
        }
    ]
}

API developers

The YAMLs will be updated in an upcoming version. Until then, the changes above can already be entered manually.

2025r6

Simple material attributes in copyright API

In the copyright API, calls already existed to create and update simple materials. The simple material type is a one-size-fits-all type, meaning that you use the same properties for all materials, regardless of whether it is a song, an image, a film or anything else.

However, previously, the /simpleMaterials calls only contained the general properties shared by all material types, not those specific to the simple materials.

From this version, several calls have been adapted to include these properties.

POST and PUT /simpleMaterials

The missing properties were added as attributes to the body of both calls. None of the attributes are mandatory. They can be seen starting from the composer in the example of the full body of the POST call:

{
  "materialId": "08438748",
  "materialSubType": "string",
  "title": "MYSTERY",
  "code": "string",
  "source": "string",
  "live": false,
  "duration": "00:02:35",
  "remarks": "string",
  "cast": [
    {
      "personId": "string",
      "castFunction": "string",
      "castType": "string",
      "role": "string",
      "licence": "string"
    },
    {
      "personId": "string",
      "castFunction": "string",
      "castType": "string",
      "role": "string",
      "licence": "string"
    }
  ],
  "composer": "string",
  "productionCompany": "string",
  "albumTitle": "string",
  "scriptWriter": "string",
  "arranger": "string",
  "email": "string",
  "contactPerson": "string",
  "recordCompany": "stri",
  "country": "string",
  "isJingle": true,
  "recordingNumber": "string",
  "catalogueNumber": "string",
  "isInHouseProduction": false,
  "downloadSite": "string",
  "artist": "string",
  "person1": "string",
  "person2": "string",
  "person3": "string",
  "person4": "string",
  "company1": "string",
  "company2": "string",
  "description": "string"
}

The following attributes require extra calls or APIs:

  • country:
    Uses the API reference of the country, which can be retrieved using the existing GET /countries call.

  • person1-4:
    Uses the external reference of the person linked to the material. The person API can be used to retrieve this.

  • company1-2:
    Uses the external reference of the company linked to the material. The company API can be used to retrieve this.

When references are provided which are not found in the system, a 404 error is returned.

GET /materials/{materialID}

The same attributes as above have been added to the response of the GET /materials call when the ID of a simple material is provided in the URL.

An example of the response:

{
    "materialId": "1602493579",
    "materialType": "PSISimpleMaterial",
    "materialSubType": null,
    "title": "Intra",
    "code": null,
    "source": null,
    "live": false,
    "duration": null,
    "remarks": null,
    "cast": [
        {
            "personId": "4495719517",
            "castFunction": "Composer",
            "castType": "Crew",
            "role": null,
            "license": "copyRight"
        }
    ],
    "composer": "John Williams",
    "productionCompany": "WB",
    "albumTitle": null,
    "scriptWriter": "David Koepp",
    "arranger": "string",
    "email": null,
    "contactPerson": "PR guy",
    "recordCompany": null,
    "country": null,
    "isJingle": true,
    "recordingNumber": null,
    "catalogueNumber": null,
    "isInHouseProduction": false,
    "downloadSite": null,
    "artist": "John Williams",
    "person1": null,
    "person2": null,
    "person3": null,
    "person4": null,
    "company1": null,
    "company2": null,
    "description": null
}

API developers

The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.

Since the YAML contains both these changes and the changes for the custom attributes of a previous version, it is best to compare the new YAML with the previous one using TextCompare.