Update Asset DDEX Metadata
curl --request PUT \
--url https://api.royalti.io/asset/{id}/ddex-metadata \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ddexMetadata": {
"releaseType": "Single",
"recordLabel": "Example Records"
},
"resourceReference": "A123456789",
"technicalResourceDetails": {
"fileFormat": "WAV",
"audioCodec": "PCM",
"bitrate": 1411,
"sampleRate": 44100,
"duration": "PT3M45S"
}
}
'import requests
url = "https://api.royalti.io/asset/{id}/ddex-metadata"
payload = {
"ddexMetadata": {
"releaseType": "Single",
"recordLabel": "Example Records"
},
"resourceReference": "A123456789",
"technicalResourceDetails": {
"fileFormat": "WAV",
"audioCodec": "PCM",
"bitrate": 1411,
"sampleRate": 44100,
"duration": "PT3M45S"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ddexMetadata: {releaseType: 'Single', recordLabel: 'Example Records'},
resourceReference: 'A123456789',
technicalResourceDetails: {
fileFormat: 'WAV',
audioCodec: 'PCM',
bitrate: 1411,
sampleRate: 44100,
duration: 'PT3M45S'
}
})
};
fetch('https://api.royalti.io/asset/{id}/ddex-metadata', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.royalti.io/asset/{id}/ddex-metadata",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'ddexMetadata' => [
'releaseType' => 'Single',
'recordLabel' => 'Example Records'
],
'resourceReference' => 'A123456789',
'technicalResourceDetails' => [
'fileFormat' => 'WAV',
'audioCodec' => 'PCM',
'bitrate' => 1411,
'sampleRate' => 44100,
'duration' => 'PT3M45S'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.royalti.io/asset/{id}/ddex-metadata"
payload := strings.NewReader("{\n \"ddexMetadata\": {\n \"releaseType\": \"Single\",\n \"recordLabel\": \"Example Records\"\n },\n \"resourceReference\": \"A123456789\",\n \"technicalResourceDetails\": {\n \"fileFormat\": \"WAV\",\n \"audioCodec\": \"PCM\",\n \"bitrate\": 1411,\n \"sampleRate\": 44100,\n \"duration\": \"PT3M45S\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.royalti.io/asset/{id}/ddex-metadata")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ddexMetadata\": {\n \"releaseType\": \"Single\",\n \"recordLabel\": \"Example Records\"\n },\n \"resourceReference\": \"A123456789\",\n \"technicalResourceDetails\": {\n \"fileFormat\": \"WAV\",\n \"audioCodec\": \"PCM\",\n \"bitrate\": 1411,\n \"sampleRate\": 44100,\n \"duration\": \"PT3M45S\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/asset/{id}/ddex-metadata")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ddexMetadata\": {\n \"releaseType\": \"Single\",\n \"recordLabel\": \"Example Records\"\n },\n \"resourceReference\": \"A123456789\",\n \"technicalResourceDetails\": {\n \"fileFormat\": \"WAV\",\n \"audioCodec\": \"PCM\",\n \"bitrate\": 1411,\n \"sampleRate\": 44100,\n \"duration\": \"PT3M45S\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "DDEX metadata updated successfully",
"data": {
"id": "<string>",
"ddexMetadata": {},
"resourceReference": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "Invalid request parameters"
}{
"status": "error",
"message": "Unauthorized"
}{
"message": "Asset not found"
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}Asset
Update Asset DDEX Metadata
PUT /asset//ddex-metadata
PUT
/
asset
/
{id}
/
ddex-metadata
Update Asset DDEX Metadata
curl --request PUT \
--url https://api.royalti.io/asset/{id}/ddex-metadata \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ddexMetadata": {
"releaseType": "Single",
"recordLabel": "Example Records"
},
"resourceReference": "A123456789",
"technicalResourceDetails": {
"fileFormat": "WAV",
"audioCodec": "PCM",
"bitrate": 1411,
"sampleRate": 44100,
"duration": "PT3M45S"
}
}
'import requests
url = "https://api.royalti.io/asset/{id}/ddex-metadata"
payload = {
"ddexMetadata": {
"releaseType": "Single",
"recordLabel": "Example Records"
},
"resourceReference": "A123456789",
"technicalResourceDetails": {
"fileFormat": "WAV",
"audioCodec": "PCM",
"bitrate": 1411,
"sampleRate": 44100,
"duration": "PT3M45S"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ddexMetadata: {releaseType: 'Single', recordLabel: 'Example Records'},
resourceReference: 'A123456789',
technicalResourceDetails: {
fileFormat: 'WAV',
audioCodec: 'PCM',
bitrate: 1411,
sampleRate: 44100,
duration: 'PT3M45S'
}
})
};
fetch('https://api.royalti.io/asset/{id}/ddex-metadata', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.royalti.io/asset/{id}/ddex-metadata",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'ddexMetadata' => [
'releaseType' => 'Single',
'recordLabel' => 'Example Records'
],
'resourceReference' => 'A123456789',
'technicalResourceDetails' => [
'fileFormat' => 'WAV',
'audioCodec' => 'PCM',
'bitrate' => 1411,
'sampleRate' => 44100,
'duration' => 'PT3M45S'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.royalti.io/asset/{id}/ddex-metadata"
payload := strings.NewReader("{\n \"ddexMetadata\": {\n \"releaseType\": \"Single\",\n \"recordLabel\": \"Example Records\"\n },\n \"resourceReference\": \"A123456789\",\n \"technicalResourceDetails\": {\n \"fileFormat\": \"WAV\",\n \"audioCodec\": \"PCM\",\n \"bitrate\": 1411,\n \"sampleRate\": 44100,\n \"duration\": \"PT3M45S\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.royalti.io/asset/{id}/ddex-metadata")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ddexMetadata\": {\n \"releaseType\": \"Single\",\n \"recordLabel\": \"Example Records\"\n },\n \"resourceReference\": \"A123456789\",\n \"technicalResourceDetails\": {\n \"fileFormat\": \"WAV\",\n \"audioCodec\": \"PCM\",\n \"bitrate\": 1411,\n \"sampleRate\": 44100,\n \"duration\": \"PT3M45S\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.royalti.io/asset/{id}/ddex-metadata")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ddexMetadata\": {\n \"releaseType\": \"Single\",\n \"recordLabel\": \"Example Records\"\n },\n \"resourceReference\": \"A123456789\",\n \"technicalResourceDetails\": {\n \"fileFormat\": \"WAV\",\n \"audioCodec\": \"PCM\",\n \"bitrate\": 1411,\n \"sampleRate\": 44100,\n \"duration\": \"PT3M45S\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "DDEX metadata updated successfully",
"data": {
"id": "<string>",
"ddexMetadata": {},
"resourceReference": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "Invalid request parameters"
}{
"status": "error",
"message": "Unauthorized"
}{
"message": "Asset not found"
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
"<string>"
]
}
}This endpoint requires authentication. Include your Bearer token in the Authorization header.
Description
PUT /asset//ddex-metadata Description: Update DDEX-specific metadata for an asset. This endpoint allows you to add or modify metadata fields required for DDEX delivery, including resource references, technical details, sound recording information, and musical work references. Authorization:- Required role:
adminor higher
PUT
Path Parameter:
| Parameter | Type | Description |
|---|---|---|
| id | string | The unique identifier of the asset |
| Parameter | Type | Description |
|---|---|---|
| ddexMetadata | object | DDEX metadata object |
| resourceReference | string | Resource reference identifier |
| technicalResourceDetails | object | Technical details of the resource |
| soundRecordingDetails | object | Sound recording specific details |
| musicalWorkReference | object | Musical work reference information |
- Prepare asset for DDEX delivery
- Update technical specifications
- Add sound recording details
- Link to musical work references
Code Examples
const response = await fetch('https://api.royalti.io/asset/example-id/ddex-metadata', {
method: 'PUT',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
"ddexMetadata": {},
"resourceReference": "A123456789",
"technicalResourceDetails": {
"fileFormat": "WAV",
"audioCodec": "PCM",
"bitrate": 1411,
"sampleRate": 44100,
"duration": "PT3M45S"
},
"soundRecordingDetails": {
"recordingDate": "2024-01-15",
"recordingLocation": "Abbey Road Studios",
"language": "en"
},
"musicalWorkReference": {
"workId": "work-123",
"iswc": "T-123456789-0"
}
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.put(
'https://api.royalti.io/asset/example-id/ddex-metadata',
headers={
'Authorization': f'Bearer {token}'
},
json={"ddexMetadata":{},"resourceReference":"A123456789","technicalResourceDetails":{"fileFormat":"WAV","audioCodec":"PCM","bitrate":1411,"sampleRate":44100,"duration":"PT3M45S"},"soundRecordingDetails":{"recordingDate":"2024-01-15","recordingLocation":"Abbey Road Studios","language":"en"},"musicalWorkReference":{"workId":"work-123","iswc":"T-123456789-0"}}
)
data = response.json()
print(data)
curl -X PUT https://api.royalti.io/asset/example-id/ddex-metadata \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ddexMetadata":{},"resourceReference":"A123456789","technicalResourceDetails":{"fileFormat":"WAV","audioCodec":"PCM","bitrate":1411,"sampleRate":44100,"duration":"PT3M45S"},"soundRecordingDetails":{"recordingDate":"2024-01-15","recordingLocation":"Abbey Road Studios","language":"en"},"musicalWorkReference":{"workId":"work-123","iswc":"T-123456789-0"}}'
Authorizations
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
Path Parameters
Asset ID
Body
application/json
DDEX metadata object
Resource reference identifier
Example:
"A123456789"
Technical details of the resource
Show child attributes
Show child attributes
Sound recording specific details
Show child attributes
Show child attributes
Musical work reference information
Show child attributes
Show child attributes
⌘I