Rights
With Rights Management, you define how your release content can be used and distributed before delivering it to DSPs. These settings determine which services are available in the distribution queue.
Default Behavior
By default, all rights are set to true. If you want your release to be available for streaming, downloading, and
UGC on all platforms without restriction, no action is required on these endpoints.
Rights Types
| Right Type | Description |
|---|---|
| Streaming | Allows listeners to stream this content on consumer platforms (Spotify, Apple Music, etc.). |
| Download | Allows listeners to purchase or permanently download this content (iTunes, Amazon). |
| UGC | Allows distribution to User-Generated Content platforms (YouTube, TikTok, Facebook) for fingerprinting and monetization. |
Configuration Rules
1. Release vs. Asset Level
- Asset Level (Tracks and Videos): You can control all three rights (
streaming,download,ugc) individually per asset. - Release Level: You can only control
downloadrights.- Reasoning: A release can be purchased two ways—as a whole bundle (the release-level right) or track-by-track (each asset’s own right). Streaming has no equivalent “whole bundle” concept, since consumption is always per-track, and UGC platforms fingerprint individual recordings, not release bundles—so neither is exposed at the release level.
- Impact: If you set
download: falseat the Release level, the release can no longer be purchased as a whole bundle. Individual assets can still be purchased separately if their owndownloadright istrue—see the eligibility rules below for exactly how the two combine.
Release-level responses report each contained asset with its assetType, which is track or video depending on what
the release holds.
2. Store Eligibility Depends on the Right
A release can contain tracks and videos with different rights configurations. This is valid and does not prevent the rights from being saved. However, the combination of rights across the release determines whether it is eligible for distribution to destinations that require a particular right.
| Right | The release is eligible for a gated destination when… |
|---|---|
| UGC | Every contained track and video has ugc: true. |
| Streaming | At least one contained track or video has streaming: true. |
| Download | At least one of the release-level download right or a contained track/video’s download right is true. |
This is a distribution-time check, not a data constraint: the rights endpoints save the values you provide, even when their combination makes the release ineligible for some destinations.
Eligibility is evaluated when you call
GET /supply-chain/v1/releases/{releaseId}/deliver/validate.
3. Distribution Impact
A release may be eligible for some distribution destinations but not others depending on its configured rights. Validate Delivery reports any destinations for which the release does not meet the required rights.
The specific destinations affected by each right can vary by account and configuration, so use the Validate Delivery response rather than relying on a fixed list of destinations.
4. Identifying the Asset
Rights are addressed by assetId, not by trackId, videoId, or releaseId. Every endpoint below takes the
universal asset ID of the object whose rights you are reading or setting.
The read endpoints additionally accept the entity ID as an alternative, and each one notes the path below. Writes
accept assetId only—there is no PUT /catalog/v1/tracks/{trackId}/rights equivalent. Retrieving an object through
its regular catalog endpoint returns the assetId you need. See
Understanding Assets & IDs.
Get Track Rights
Also available by track ID. GET /catalog/v1/tracks/{trackId}/rights returns this exact payload, keyed by the
track’s trackId instead of its assetId. This alternative exists for reads only.
/catalog/v1/assets/tracks/{assetId}/rights Retrieves the current rights configuration for a specific track.
Path Parameters
| Parameter | Description |
|---|---|
assetId * integer | The Asset ID of the Track. |
Responses
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disabled (false) for the track./catalog/v1/assets/tracks/{assetId}/rights curl -X GET "https://platform.revelator.com/catalog/v1/assets/tracks/4419835/rights" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" curl -X GET "https://platform.revelator.com/catalog/v1/assets/tracks/4419835/rights" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" Example response 200
{
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": true
}
]
} {
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": true
}
]
} Set Track Rights
/catalog/v1/assets/tracks/{assetId}/rights Updates the rights configuration for a specific track.
Path Parameters
| Parameter | Description |
|---|---|
assetId * integer | The Asset ID of the Track. |
Request Body *
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disable (false) this right for the track.Responses
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disabled (false) for the track./catalog/v1/assets/tracks/{assetId}/rights curl -X PUT "https://platform.revelator.com/catalog/v1/assets/tracks/4419835/rights" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rights": [
{
"assetRightType": "streaming",
"value": false
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": false
}
]
}' curl -X PUT "https://platform.revelator.com/catalog/v1/assets/tracks/4419835/rights" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rights": [
{
"assetRightType": "streaming",
"value": false
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": false
}
]
}' Example response 200
{
"rights": [
{
"assetRightType": "streaming",
"value": false
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": false
}
]
} {
"rights": [
{
"assetRightType": "streaming",
"value": false
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": false
}
]
} Get Video Rights
Also available by video ID. GET /catalog/v1/videos/{videoId}/rights returns this exact payload, keyed by the
video’s videoId instead of its assetId. This alternative exists for reads only.
/catalog/v1/assets/videos/{assetId}/rights Retrieves the current rights configuration for a specific video.
Path Parameters
| Parameter | Description |
|---|---|
assetId * integer | The Asset ID of the Video. |
Responses
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disabled (false) for the video./catalog/v1/assets/videos/{assetId}/rights curl -X GET "https://platform.revelator.com/catalog/v1/assets/videos/4419901/rights" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" curl -X GET "https://platform.revelator.com/catalog/v1/assets/videos/4419901/rights" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" Example response 200
{
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": true
}
]
} {
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": true
}
]
} Set Video Rights
/catalog/v1/assets/videos/{assetId}/rights Updates the rights configuration for a specific video.
Path Parameters
| Parameter | Description |
|---|---|
assetId * integer | The Asset ID of the Video. |
Request Body *
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disable (false) this right for the video.Responses
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disabled (false) for the video./catalog/v1/assets/videos/{assetId}/rights curl -X PUT "https://platform.revelator.com/catalog/v1/assets/videos/4419901/rights" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": false
}
]
}' curl -X PUT "https://platform.revelator.com/catalog/v1/assets/videos/4419901/rights" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": false
}
]
}' Example response 200
{
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": false
}
]
} {
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": false
}
]
} Get Release Rights
Also available by release ID. GET /catalog/v1/releases/{releaseId}/rights returns this exact payload, keyed by the
release’s releaseId instead of its assetId. This alternative exists for reads only.
/catalog/v1/assets/releases/{assetId}/rights Retrieves the current rights configuration for a specific release and its assets.
Path Parameters
| Parameter | Description |
|---|---|
assetId * integer | The Asset ID of the Release. |
Responses
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes value boolean assetRights AssetRightItemDTO[] assetId integer assetType AssetTypes rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disabled (false) for the asset./catalog/v1/assets/releases/{assetId}/rights curl -X GET "https://platform.revelator.com/catalog/v1/assets/releases/4509643/rights" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" curl -X GET "https://platform.revelator.com/catalog/v1/assets/releases/4509643/rights" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" Example response 200
{
"assetRights": [
{
"assetId": 4419835,
"assetType": "track",
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": true
}
]
}
],
"rights": [
{
"assetRightType": "download",
"value": true
}
]
} {
"assetRights": [
{
"assetId": 4419835,
"assetType": "track",
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": true
},
{
"assetRightType": "ugc",
"value": true
}
]
}
],
"rights": [
{
"assetRightType": "download",
"value": true
}
]
} Set Release Rights
assetRights is a full replace, not a merge. Omitting it (or sending an empty array) resets every contained track
and video to the default rights (true for streaming, download, and ugc)—it does not leave their current rights
untouched. If you only want to change the release-level download right, echo back the current assetRights for every
contained asset in the same request; read them first with
GET /catalog/v1/assets/releases/{assetId}/rights if you don’t already have them.
/catalog/v1/assets/releases/{assetId}/rights Updates rights for the release (Download only) and all its contained assets.
Path Parameters
| Parameter | Description |
|---|---|
assetId * integer | The Asset ID of the Release. |
Request Body *
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes value boolean assetRights AssetRightItemDTO[] assetId integer assetType AssetTypes rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disable (false) this right for the asset.Responses
object rights AssetRightValueItemDTO[] assetRightType AssetRightTypes value boolean assetRights AssetRightItemDTO[] assetId integer assetType AssetTypes rights AssetRightValueItemDTO[] assetRightType AssetRightTypes streaming, download, ugc value boolean true) or disabled (false) for the asset./catalog/v1/assets/releases/{assetId}/rights curl -X PUT "https://platform.revelator.com/catalog/v1/assets/releases/4509643/rights" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"assetRights": [
{
"assetId": 4419835,
"assetType": "track",
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": true
}
]
}
],
"rights": [
{
"assetRightType": "download",
"value": true
}
]
}' curl -X PUT "https://platform.revelator.com/catalog/v1/assets/releases/4509643/rights" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"assetRights": [
{
"assetId": 4419835,
"assetType": "track",
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": true
}
]
}
],
"rights": [
{
"assetRightType": "download",
"value": true
}
]
}' Example response 200
{
"assetRights": [
{
"assetId": 4419835,
"assetType": "track",
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": true
}
]
}
],
"rights": [
{
"assetRightType": "download",
"value": true
}
]
} {
"assetRights": [
{
"assetId": 4419835,
"assetType": "track",
"rights": [
{
"assetRightType": "streaming",
"value": true
},
{
"assetRightType": "download",
"value": false
},
{
"assetRightType": "ugc",
"value": true
}
]
}
],
"rights": [
{
"assetRightType": "download",
"value": true
}
]
}