Revelator Logo API

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 TypeDescription
StreamingAllows listeners to stream this content on consumer platforms (Spotify, Apple Music, etc.).
DownloadAllows listeners to purchase or permanently download this content (iTunes, Amazon).
UGCAllows 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 download rights.
    • 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: false at the Release level, the release can no longer be purchased as a whole bundle. Individual assets can still be purchased separately if their own download right is true—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.

RightThe release is eligible for a gated destination when…
UGCEvery contained track and video has ugc: true.
StreamingAt least one contained track or video has streaming: true.
DownloadAt 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.

GET /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
assetRightType AssetRightTypes
The type of right.
Examples: streaming, download, ugc
value boolean
Whether this right is enabled (true) or disabled (false) for the track.
GET /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"
Example response 200
{
  "rights": [
      {
          "assetRightType": "streaming",
          "value": true
      },
      {
          "assetRightType": "download",
          "value": true
      },
      {
          "assetRightType": "ugc",
          "value": true
      }
  ]
}

Set Track Rights

PUT /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
assetRightType AssetRightTypes
The type of right being set.
Examples: streaming, download, ugc
value boolean
Whether to enable (true) or disable (false) this right for the track.

Responses

object
assetRightType AssetRightTypes
The type of right.
Examples: streaming, download, ugc
value boolean
Whether this right is enabled (true) or disabled (false) for the track.
PUT /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
      }
  ]
}'
Example response 200
{
  "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.

GET /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
assetRightType AssetRightTypes
The type of right.
Examples: streaming, download, ugc
value boolean
Whether this right is enabled (true) or disabled (false) for the video.
GET /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"
Example response 200
{
  "rights": [
      {
          "assetRightType": "streaming",
          "value": true
      },
      {
          "assetRightType": "download",
          "value": true
      },
      {
          "assetRightType": "ugc",
          "value": true
      }
  ]
}

Set Video Rights

PUT /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
assetRightType AssetRightTypes
The type of right being set.
Examples: streaming, download, ugc
value boolean
Whether to enable (true) or disable (false) this right for the video.

Responses

object
assetRightType AssetRightTypes
The type of right.
Examples: streaming, download, ugc
value boolean
Whether this right is enabled (true) or disabled (false) for the video.
PUT /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
      }
  ]
}'
Example response 200
{
  "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.

GET /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
assetRightType AssetRightTypes
Always returns 'download'.
value boolean
Whether the release can be purchased or downloaded as a whole entity.
assetId integer
The contained asset's universal asset ID.
assetType AssetTypes
Type of the contained asset: 'track' or 'video'.
assetRightType AssetRightTypes
The type of right.
Examples: streaming, download, ugc
value boolean
Whether this right is enabled (true) or disabled (false) for the asset.
GET /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"
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
      }
  ]
}

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.

PUT /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
assetRightType AssetRightTypes
Must be 'download'.
value boolean
Whether the release can be purchased or downloaded as a whole entity.
assetId integer
The contained asset's universal asset ID.
assetType AssetTypes
Type of the contained asset: 'track' or 'video'.
assetRightType AssetRightTypes
The type of right being set.
Examples: streaming, download, ugc
value boolean
Whether to enable (true) or disable (false) this right for the asset.

Responses

object
assetRightType AssetRightTypes
Always returns 'download'.
value boolean
Whether the release can be purchased or downloaded as a whole entity.
assetId integer
The contained asset's universal asset ID.
assetType AssetTypes
Type of the contained asset: 'track' or 'video'.
assetRightType AssetRightTypes
The type of right.
Examples: streaming, download, ugc
value boolean
Whether this right is enabled (true) or disabled (false) for the asset.
PUT /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
      }
  ]
}'
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
      }
  ]
}