A release is an album, EP, or single. Releases contain one or more tracks and various metadata. Use the
/content/release/save resource to create or edit releases. This endpoint allows you to:
Unless otherwise stated, the Revelator API does not support partial updates. When editing an object, the existing values of any omitted parameters will be deleted or overwritten, according to the designated behavior for a null value for that parameter. Consequently, we recommend you always query the object you want to edit and modify the JSON object to avoid partial update problems.
Before reviewing the request body, please read these key requirements and rules that affect release creation and validation.
As of November 26, 2025, a single trackId can be assigned to multiple releases. This includes using the same
track across singles, albums, compilations, and any other release types.
Current Behavior
trackId) can appear on any number of releases.Important Limitation: Locked Releases
A track becomes read-only when it belongs to a release in a fully locked distribution status (see
Distribution Statuses: -10, -11, -20, -21).
-20 (Pending Owner
Inspection).Using Locked Tracks on Other Releases
When assigning a fully locked track to another release:
How to Identify Which Releases Use a Track
When retrieving either a release or a track (GET /content/release/{releaseId} or GET /content/track/{trackId}), each
track includes a releaseTracks array that lists all release associations:
{
"tracks": [
{
"releaseTracks": [
{
"releaseId": 0,
"spotifyId": "string",
"appleId": 0,
"rdioId": "string",
"deezerId": "string"
}
]
}
]
}This object allows you to:
releaseId).spotifyId, appleId).UPCs must be unique across the entire Revelator system.
However, sandbox accounts are excluded from UPC uniqueness validation:
A compilation is a release that features multiple primary artists. Our system has specific validation rules to correctly identify and process these releases, often differentiating between the strict industry “Various Artists” standard and platform-specific flags.
Artists Must Exist and Be Provided For a compilation release to validate properly, all contributors (especially
primary artists using roleId = 49) must be provided as an object containing their existing artistId. You cannot
create new artists implicitly within a compilation release payload.
Compilation Validation Logic (Various Artists) Our system determines if a release qualifies as the industry
standard “Various Artists” compilation based on the absence of a main release artist and the count of primary artist
contributors (roleId = 49) across the release (at both the release and track levels).
artistId at the release level: The release is treated as a standard release by a
primary artist. You will receive an error if you also include more than four primary artist contributors
(roleId = 49).artistId at the release level: The release is treated as a “Various Artists”
compilation. You will receive an error if you include less than four primary artist contributors
(roleId = 49). This ensures the release meets the criteria for a compilation.isCompilation flag (detailed below) is
ignored, as the stricter “Various Artists” logic takes precedence.The isCompilation Flag (Platform-Specific) The isCompilation boolean flag (detailed in the Request Body)
allows you to mark a release as a compilation even if it does not meet the “Various Artists” threshold (e.g., a
“Best Of” by a single artist, or a release with 2-3 artists).
/content/release/saveEffective December 17, 2025, the data type for the upc property will change from number to string across
all endpoints.
Integrators must update their code to handle the UPC field as a string value to avoid potential parsing errors.
For full details, see the Changelog entry.
| Parameter | Type | Description |
|---|---|---|
name required | string | Title of the Release.
|
releaseId optional | integer | ID for the existing release you want to edit. This ID was returned in the response when the release was created.
|
artistName optional | string | Name of the release’s primary artist/band.
|
artistId optional | integer | ID for an existing artist to assign as the primary artist for the release.
|
releasesLocals optional | array of objects | Release details in different languages. Each object in the array represents the details in a different language. |
releasesLocals.name optional | string | Name (title) in the indicated language. If omitted, this localization entry is ignored. |
releasesLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
releasesLocals.version optional | string | Version in the indicated language. |
releasesLocals.phoneticVersion optional | string | Phonetic pronunciation of the version in the indicated language. |
releasesLocals.languageId optional | integer | Language ID indicating the language of the name. Each language can be used only once in the array. Updates to local names are based on this field. If omitted, this localization entry is ignored. Lookup up the languageId using the GET /common/lookup/languages resource. |
artistLocals optional | array of objects | Artist name(s) in different languages. Each object represents a name in a different language. |
artistLocals.name optional | string | Name in the indicated language. If omitted, this localization entry is ignored. |
artistLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
artistLocals.languageId optional | integer | Language ID indicating the language of the name. Each language can be used only once in the array. Updates to local names are based on this field. If omitted, this localization entry is ignored. Lookup up the languageId using the GET /common/lookup/languages resource. |
contributors required | array of objects | Additional key artists who should be given top level credit. Do not provide individual band member names. For example, “The Beatles” and, not John Lennon, Paul McCartney, George Harrison and Ringo Starr.
|
contributors.contributorId optional | UUID | ID for an existing contributor.
|
contributors.roleId required | integer | The artist’s role as a contributor. Look up roleIds with GET /common/lookup/contributorRoles.
|
contributors.artist required | object | The contributing artist. Unlike all other artists in Revelator, contributing artists with any role other than Primary Artist, Featuring, or Remixer do not require external artist IDs. In other words, contributing artists with the roles Primary Artist, Featuring, or Remixer require Apple and Spotify IDs (same as primary artists); contributing artists with other roles do not require these IDs (they are optional). See Artist Object |
version optional | string | Title version. For example, Remastered or Deluxe edition. Typically omitted unless the release is a new version of a previously released release. |
copyrightP required | string | The product copyright holder preceded by the year the rights were obtained. For example: 2008 Acme Inc. The product copyright holder is the person or entity that owns the exclusive rights to the complete product, including both sound recording and artwork. |
copyrightC required | string | The sound recording copyright holder preceded by the year the rights were obtained. For example: 2008 Acme Inc. The sound recording copyright holder is the person or entity that owns the exclusive rights to the sound recording. |
hasRecordLabel optional | boolean |
|
labelName optional | string |
|
labelId optional | integer | ID for an existing label to assign to the release.
|
artistExternalIds optional | array of objects | An array of external DSP profile IDs for the main primary artist of the release. This structured array is the required method for providing DSP profile IDs. See the comprehensive guide at Managing External Artist IDs. |
artistAppleId DEPRECATED | string | (DEPRECATED) This field is obsolete. Provide Apple Music profile IDs using the release.artistExternalIds array with distributorStoreId: 1 instead. See Managing External Artist IDs. |
artistSpotifyId DEPRECATED | string | (DEPRECATED) This field is obsolete. Provide Spotify profile IDs using the release.artistExternalIds array with distributorStoreId: 9 instead. See Managing External Artist IDs. |
previouslyReleased optional | boolean |
|
upc optional | integer | UPC/EAN/JAN code for the release.
|
releaseDate optional | string | Official date the release was previously released in the ISO format YYYY-MM-DD
|
primaryMusicStyleId required | integer | The primary music style ID for the release. See Music Style ID. |
secondaryMusicStyleId optional | integer | The secondary music style ID for the release. See Music Style ID. |
languageId required | integer | Language ID for the release’s meta data. This is not the language of the songs/lyrics, but the language of the information provided in this API request. Lookup up the languageId using the GET /common/lookup/languages resource. English is 1. |
description optional | string | Release description. |
isCompilation optional | boolean | Indicates if the release should be treated as a compilation. Defaults to false if omitted.
|
tracks required | array of objects | Tracks for the release.
|
image optional | object | Cover image for the release.
|
curl -X POST 'http://api.revelator.com/content/release/save' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer c1234562-5f45-4ab6-b8fb-812345c3e4d4' \
-d '{
"artistName": "Release_artist",
"contributors": [],
"artistExternalIds: []",
"copyrightC": "2025 companyC",
"copyrightP": "2025 companyP",
"hasRecordLabel": false,
"previouslyReleased": false,
"languageId": 1,
"name": "Single",
"primaryMusicStyleId": 60,
"releasesLocals": [],
"isCompilation": false,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"filename": "file123.jpg"
},
"tracks": [
{
"artistName": "TRACK_ARTIST",
"languageId": 1,
"name": "Single",
"contributors: []",
"artistExternalIds": [],
"explicit": false,
"wav": {
"filename": "file123.wav",
"fileId": "00000000-0000-0000-0000-000000000000"
},
"trackLength": 267,
"sampleRate": 44100,
"composerContentsDTO": [
{
"composerName": "John Doe",
"rightsId": 1,
"roleId": 2,
"share": 100,
"composerImageId": "00000000-0000-0000-0000-000000000000"
}
]
}
]
}' | Parameter | Type | Description |
|---|---|---|
name optional | string | Name of the artist.
|
artistId optional | integer | ID for an existing artist.
|
artistExternalIds optional | array of objects | External IDs for the artist. See the comprehensive guide at Managing External Artist IDs. |
artistLocals optional | array of objects | Artist name(s) in different languages. Each object represents a name in a different language. |
artistLocals.name optional | string | Name in the indicated language. If omitted, this localization entry is ignored. |
artistLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
artistLocals.languageId optional | integer | Language ID indicating the language of the name. Each language can be used only once in the array. Updates to local names are based on this field. If omitted, this localization entry is ignored. Lookup up the languageId using the GET /common/lookup/languages resource. |
| Parameter | Type | Description |
|---|---|---|
filename required | string | Name of the file, including the extension. |
fileId required | string | The ID for a file that has already been uploaded to the Revelator server. See Uploading Files |
Used within the trackRecordingVersions.audioFiles array.
| Parameter | Type | Description |
|---|---|---|
audioId required | string | The ID for a file that has already been uploaded to the Revelator server. See Uploading Files |
audioFilename required | string | Name of the audio file, including the extension. |
fileFormat required | string |
|
| Parameter | Type | Description |
|---|---|---|
name optional | string | Title of the track.
|
trackId optional | integer | The ID of an existing track to associate with the release. This ID was returned when the track was created.
|
artistName optional | string | Name of the track’s primary artist/band.
|
artistId optional | integer | ID for an existing artist to assign as the primary artist for the track.
|
tracksLocals optional | array of objects | Track details in different languages. Each object in the array represents the details in a different language. |
tracksLocals.name optional | string | Name (title) in the indicated language. If omitted, this localization entry is ignored. |
tracksLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
tracksLocals.version optional | string | Version in the indicated language. |
tracksLocals.phoneticVersion optional | string | Phonetic pronunciation of the version in the indicated language. |
tracksLocals.languageId optional | integer | Language ID indicating the language of the entry. Each language can be used only once in the array. Updates to local names are based on this field. If omitted, this localization entry is ignored. Lookup up the languageId using the GET /common/lookup/languages resource. |
artistLocals optional | array of objects | Artist name(s) in different languages. Each object represents a name in a different language. |
artistLocals.name optional | string | Name in the indicated language. If omitted, this localization entry is ignored. |
artistLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
artistLocals.languageId optional | integer | Language ID indicating the language of the name. Each language can be used only once in the array. Updates to local names are based on this field. If omitted, this localization entry is ignored. Lookup up the languageId using the GET /common/lookup/languages resource. |
contributors required | array of objects | Additional key artists who should be given top level credit. Do not provide individual band member names. For example, “The Beatles” and, not John Lennon, Paul McCartney, George Harrison and Ringo Starr.
|
contributors.contributorId optional | UUID | ID for an existing contributor.
|
contributors.roleId required | integer | The artist’s role as a contributor. Look up roleIds with GET /common/lookup/contributorRoles.
|
contributors.artist required | object | The contributing artist. Unlike all other artists in Revelator, contributing artists with any role other than Primary Artist, Featuring, or Remixer do not require external artist IDs. In other words, contributing artists with the roles Primary Artist, Featuring, or Remixer require Apple and Spotify IDs (same as primary artists); contributing artists with other roles do not require these IDs (they are optional). See Artist Object |
languageId required | integer | Language ID for the track’s lyrics. Lookup up the languageId using the GET /common/lookup/languages endpoint. English is 1. |
version optional | string | Version of the track. For example, Remix or Bonus Track. |
explicit required | boolean | Be sure that your user interface indicates the importance of properly identifying this content. Misidentifying this content can result in your distribution being disabled. Should be true when the song contains any of the following:
|
trackType required | integer | One of the following:
|
trackProperties required | array of integers | One or multiple of the following:
|
artistExternalIds optional | array of objects | An array of external DSP profile IDs for the main primary artist of the release. This structured array is the required method for providing DSP profile IDs. See the comprehensive guide at Managing External Artist IDs. |
artistAppleId DEPRECATED | string | (DEPRECATED) This field is obsolete. Provide Apple Music profile IDs using the track.artistExternalIds array with distributorStoreId: 1 instead. See Managing External Artist IDs. |
artistSpotifyId DEPRECATED | string | (DEPRECATED) This field is obsolete. Provide Spotify profile IDs using the track.artistExternalIds array with distributorStoreId: 9 instead. See Managing External Artist IDs. |
copyrightP optional | string | The product copyright holder preceded by the year the rights were obtained. For example: 2008 Acme Inc. The product copyright holder is the person or entity that owns the exclusive rights to the complete product, including both sound recording and artwork. |
copyrightC optional | string | The sound recording copyright holder preceded by the year the rights were obtained. For example: 2008 Acme Inc. The sound recording copyright holder is the person or entity that owns the exclusive rights to the sound recording. |
primaryMusicStyleId optional | integer | The primary music style ID for the track. See Music Style ID. |
secondaryMusicStyleId optional | integer | The secondary music style ID for the track. See Music Style ID. |
previewStartSeconds optional | integer | Preview/Clip Start Time. Indicate where your clip should start when people preview your track. If no value is entered, your clip will start at the 15th second. |
discNumber optional | integer | Specifies the disc number to which a track belongs within a disc release. Track numbering is independent for each disc. The order of tracks in the tracks array payload determines their sequential order on the release.
discNumber metadata is always included in the delivery; however, some DSPs may not support or display this information. |
composerContentsDTO required | array of objects | A list of publishing contributors(composers) for the track . The same composer cannot be added with the same role more than once. The uniqueness of each entry is validated by the combination of the composer’s identity (composerName or composerId) and their roleId. |
composerContentsDTO.composerName optional | string | Name of the composer.
|
composerContentsDTO.composerId optional | integer | ID for an existing composer to assign to the track.
|
composerContentsDTO.rightsId required | integer | Publishing type. One of the following:
|
composerContentsDTO.roleId required | integer | A role associated with the composer. Look up roleIds with GET /common/lookup/contributorRoles. Only roles from contributorRoleGroupId = 4 are relevant for composers. |
composerContentsDTO.share optional | string | Share percentage for the composer. The total percentage for all composers must be 100%. Note that this has nothing to do with contract splits, and publisher royalties are never paid through the Revelator platform. |
composerContentsDTO.publisherName optional | string | Name of the publisher to assign to the composer.
|
composerContentsDTO.publisherId optional* | integer | ID of the publisher to assign to the composer.
publisherId to 0 and provide a valid publisherName. |
composerContentsDTO.composersLocals optional | array of objects | A list of Composer’s name in different languages. |
composerContentsDTO.composersLocals.name required | string | Composer’s name in the indicated language. |
composerContentsDTO.composersLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
composerContentsDTO.composersLocals.languageId required | integer | Language ID indicating the language of the name. Each language can be used only once in the array. Updates to local names are based on this field. If you don’t include languageId withing an object, it will result in an error. |
lyrics optional | string | Lyrics for the track. Note that not all stores accept lyrics. |
compositions optional | array of objects | An array of Composition objects representing the underlying musical works for the track. This field is relevant for tracks of all types (Original, Cover, Public Domain) as it describes the fundamental composition. Important behavior during track type change: When updating a track and changing its trackType from 2 (Cover song) to 1 (Original song) or 3 (Public domain song), any existing compositions array will be automatically cleared. This indicates that for these trackType changes, the compositions data cannot be directly carried over or updated in the same request; it will be cleared. |
compositions.originalTitleoptional | string | The original title of the musical work/composition. |
compositions.originalComposersoptional | string | The names of the original composer(s) of the musical work. |
compositions.originalRecordingArtistoptional | string | The name(s) of the artist(s) who originally recorded this musical work. |
compositions.sourceAlbumTitleoptional | string | The title of the original album from which this musical work originates, if applicable. |
compositions.sourceMaterialTitleoptional | string | The title of the original source material (e.g., film, play, book) from which this musical work originates, if applicable. |
compositions.iswc optional | string | International Standard Musical Work Code (ISWC). A unique, international identifier for musical works. Format: T followed by 10 digits (e.g., T1234567890). Issued by national or regional ISWC agencies. |
compositions.urloptional | string | A URL relevant to the composition (e.g., a link to its original publisher or details). |
compositions.notesoptional | string | Internal notes or comments related to the composition. |
compositions.isPaidoptional | boolean | Indicates if royalties/payments for this composition have been settled or paid. |
isrc optional | string | This field is part of the old Track Recording model. See New track recording model for more information. ISRC code for the track. Hyphens and spaces will be automatically removed, and letters will be automatically capitalized.
|
wav optional | object | This field is part of the old Track Recording model. See New track recording model for more information. Audio file for the track in WAV format.
|
trackRecordingVersions optional | array of objects | This field is part of the new Track Recording model. See New track recording model for more information. If provided, this list needs to have
|
trackRecordingVersions.recordingVersionType required | integer | Type of the track version.
|
trackRecordingVersions.isrc required | string | A valid ISRC code for the track version.
null if the ISRC should be generated automatically (during distribution). |
trackRecordingVersions.audioFiles required | array of objects | When creating a new track, this array must contain a single object with a WAV (1) or a FLAC (2) fileFormat.
When editing an existing track:
|
With the release of support for Dolby Atmos, we have updated the track object adequately. The old model is going to remain supported with the goal of backwards compatibility; however, we strongly advise adapting to this new model (even if not utilizing Dolby Atmos).
New model (Supports Dolby Atmos)
Track object includes the following properties:
trackRecordingVersions[]
isrcrecordingVersionTypetrackRecordingVersions.audioFiles[] - audioFiles.audioId - audioFiles.audioFilename - audioFiles.fileFormatOld model (Does not support Dolby Atmos)
Track object includes the following properties:
isrcwav or flacOnly one of the two models should be used, failiure to do so will result in an error.
Refer to the track object table for coprehensive information on these fields
All files must be uploaded before being associated with a track or a release. This applies to both audio and image assets.
/media/audio/uploadUploads WAV or FLAC audio files.
All uploaded audio files must be longer than 2 seconds. Invalid files will be rejected.
The request must use the multipart/form-data content type.
| Form Field | Type | Description |
|---|---|---|
file required | binary | The audio file to upload. |
| Field | Type | Description |
|---|---|---|
fileId | string | The ID of the uploaded file, used to reference it within the application. |
filename | string | The name of the uploaded file. |
/media/audio/upload/wavUploads WAV audio files.
This endpoint has the same request, response, and requirements as POST /media/audio/upload.
The file field in the Form Data should contain the WAV audio file.
/media/audio/upload/flacUploads FLAC audio files.
This endpoint has the same request, response, and requirements as POST /media/audio/upload.
The file field in the Form Data should contain the FLAC audio file.
/media/image/uploadUploads image files.
The request must use the multipart/form-data content type.
If the uploaded image is a PNG and the cover query parameter is set to true, the image will be automatically
converted to JPG.
| Parameter | Type | Description |
|---|---|---|
cover optional | boolean | Whether the image is used as cover art. |
| Form Field | Type | Description |
|---|---|---|
file required | binary | The image file to upload. |
The response returns a single string - the ID of the uploaded file.
"2b0b8df2-9a9a-4e9a-91b3-f0d442dbb7b1"
/media/audio/pullexternal/wavUploads audio files directly from a publicly available URL. This can be useful if the file is already hosted or if you prefer not to handle the upload manually.
All uploaded audio files must be longer than 2 seconds. Invalid files will be rejected.
You can use expiring links for security purposes, as long as the file remains accessible at the time of upload.
| Parameter | Type | Description |
|---|---|---|
externalUrl required | string | A valid URL to a publicly available audio file. |
filename required | string | The name of the file. Must include the file extension (e.g., my-track.wav). |
| Field | Type | Description |
|---|---|---|
fileId | string | The ID of the uploaded file, used to reference it within the application. |
filename | string | The name of the uploaded file. |
Use the following endpoints to retrieve release data.
Effective December 17, 2025, the data type for the upc property will change from number to string across
all endpoints.
Integrators must update their code to handle the UPC field as a string value to avoid potential parsing errors.
For full details, see the Changelog entry.
By default, these endpoints return all releases the user has permission to view, not just the ones within the user’s own account. Parent account users will receive releases from all associated child accounts.
When using multiple filters of the same type, provide each property separately. For example: labels=2391&labels=8902.
In response you will receive releaseTypeId which is automatically set based on provided data across release and it’s
tracks.
1 - Album2 - Single4 - EP6 - CompilationSome endpoints may also include an additionalCounters object. This object contains counts of release types that match
the search criteria but were not included in the returned list due to pagination or applied filters.
/content/release/allRetrieves paginated list of all releases the user has permissions to view.
| Parameter | Type | Description |
|---|---|---|
pageNumber optional | integer | The page number of the results to retrieve. Default is 1. |
pageSize optional | integer | The number of items to return per page. Requires pageNumber query parameter to work properly. |
orderByProperty optional | string | The property to sort the results by. Available options:
|
orderByDescending optional | boolean | If false, orders the results in ascending order. If true or omitted, orders in descending order. |
searchText optional | string | A search term to filter releases by name. The search is case-insensitive. |
selectAll optional | boolean | If true, the response will only contain an array of releaseId values for all matching releases. |
fromDate optional | date-time | Filters for releases created on or after this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
toDate optional | date-time | Filters for releases created on or before this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
releaseFromDate optional | date-time | Filters for releases with a releaseDate on or after this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
releaseToDate optional | date-time | Filters for releases with a releaseDate on or before this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
musicStyles optional | array | An array of Music Style IDs to filter releases associated with any of the specified music styles. |
languages optional | array | An array of language IDs to filter releases. |
labels optional | array | An array of label IDs to filter releases. |
stores optional | array | An array of store IDs to filter releases distributed to any of the specified stores. |
enterprises optional | array | An array of enterprise IDs to filter releases. Only relevant for parent account users. |
distributionStatus optional | array | An array of distribution status IDs used to filter releases. Only releases matching one of the provided status IDs will be returned. See Distribution Statuses for ID definitions. |
isLocked optional | boolean | Filters releases based on their isLockedForDistribution flag.
isLockedForDistribution property within the response items of this endpoint may be unreliable (it can incorrectly display false). To confirm the definitive locked status for any individual release, use the dedicated /content/release/{releaseId} endpoint. |
releaseTypes optional | array | An array of release type IDs (1: Album, 2: Single, 4: EP, 6: Compilation) to filter releases.Example: To filter for releaseTypes=[4, 6], your query string would look like this:?releaseTypes%5B0%5D=6&releaseTypes%5B1%5D=4 |
artists optional | array | An array of artist IDs. If provided, returns only releases where the provided artist ID is the main primary artist of the release. |
upc optional | string | Filters for a release with a single exact UPC match. |
upcs optional | array | Filters releases by multiple UPCs. Each UPC must match exactly. The filter behaves as an OR search - releases matching any of the provided UPCs are included. UPC values that do not match any release are simply ignored. |
isCompilation optional | boolean | Filters releases based on their isCompilation flag.
|
archived optional | boolean | Filters releases based on their archive status.
|
archivedFrom optional | date-time | Returns releases whose archivedAt timestamp is on or after this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
archivedTo optional | date-time | Returns releases whose archivedAt timestamp is on or before this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
curl -X GET 'https://api.revelator.com/content/release/all?pageNumber=1&pageSize=10&orderByDescending=false&searchText=you'{
"totalItemsCount": 1,
"pageNumber": 1,
"pageSize": 10,
"items": [
{
"upc": "198009123456",
"isrc": null,
"trackISRC": null,
"trackRecordingVersions": [],
"artistId": 12345,
"artistName": "Example Artist",
"version": "Remix",
"labelName": "Example Label",
"releaseDate": "2024-10-26T00:00:00",
"creationDate": "2024-06-14T10:58:58Z",
"featureFmSmartLink": null,
"tracksCount": 1,
"albumLength": 180,
"releaseId": 54321,
"name": "Example Release",
"releaseTypeId": 2,
"isCompilation": false,
"isLockedForDistribution": false,
"isDolbyAtmosReadOnly": false,
"isIngested": true,
"enterpriseName": "Sample Child Enterprise",
"enterpriseId": 67890,
"assetId": 98765,
"image": {
"fileId": "00000000-0000-0000-0000-000000000001",
"isTemp": false,
"filename": "cover-art.jpg",
"externalUrl": null,
"lastUpdateDate": "2024-06-14T10:58:58.833Z"
},
"artist": null,
"contributors": [],
"archivedAt": "2024-10-26T00:00:00"
}
],
"additionalCounters": {
"album": 5,
"ep": 10,
"ringtone": 0,
"single": 53,
"video": 0
}
} /content/release/all/summaryRetrieves a summary of all releases the user has permissions to view.
| Parameter | Type | Description |
|---|---|---|
searchText optional | string | A search term to filter releases by name. The search is case-insensitive. |
fromDate optional | date-time | Filters for releases created on or after this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
toDate optional | date-time | Filters for releases created on or before this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
releaseFromDate optional | date-time | Filters for releases with a releaseDate on or after this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
releaseToDate optional | date-time | Filters for releases with a releaseDate on or before this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
musicStyles optional | array | An array of Music Style IDs to filter releases associated with any of the specified music styles. |
languages optional | array | An array of language IDs to filter releases. |
labels optional | array | An array of label IDs to filter releases. |
stores optional | array | An array of store IDs to filter releases distributed to any of the specified stores. |
enterprises optional | array | An array of enterprise IDs to filter releases. Only relevant for parent account users. |
releaseTypes optional | array | An array of release type IDs (1: Album, 2: Single, 4: EP, 6: Compilation) to filter releases.Example: To filter for releaseTypes=[4, 6], your query string would look like this:?releaseTypes%5B0%5D=6&releaseTypes%5B1%5D=4 |
artists optional | array | An array of artist IDs. If provided, returns only releases where the provided artist ID is the main primary artist of the release. |
upcs optional | array | Filters releases by multiple UPCs. Each UPC must match exactly. The filter behaves as an OR search - releases matching any of the provided UPCs are included. UPC values that do not match any release are simply ignored. |
isCompilation optional | boolean | Filters releases based on their isCompilation flag.
|
archived optional | boolean | Filters releases based on their archive status.
|
archivedFrom optional | date-time | Returns releases whose archivedAt timestamp is on or after this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
archivedTo optional | date-time | Returns releases whose archivedAt timestamp is on or before this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
curl -X GET
'https://api.revelator.com/content/release/all/summary?searchText=you'[
{
"releaseId": 0,
"name": "Release name",
"version": "Remix",
"releaseDate": "2020-10-26T00:00:00",
"releaseTypeId": 2,
"upc": 0,
"isLockedForDistribution": false,
"isDolbyAtmosReadOnly": false,
"isIngested": false,
"enterpriseName": "Child enterprise name",
"enterpriseId": 0,
"assetId": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000001",
"isTemp": false,
"filename": "cover.jpg",
"externalUrl": null,
"lastUpdateDate": "2020-12-20T22:53:41.687"
},
"artist": {
"artistId": 0,
"name": "Artist name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 0,
"tracksCount": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000002",
"isTemp": false,
"filename": "profile.jpg",
"externalUrl": null,
"lastUpdateDate": "2024-10-02T14:12:01.873"
}
},
"tracksCount": 1,
"isCompilation": false,
"contributors": [],
"archivedAt": "2024-10-26T00:00:00"
},
] /content/release/{releaseId}Retrieves a release by its unique releaseId.
Upcoming Change: The SpotifyId, AppleId, and RdioId fields on the Track object are deprecated and will be
removed in a future update.
Please use the new ReleaseTracks field for DSP identifiers going forward. This new structure provides a more
consistent and scalable way to associate tracks with external DSP identifiers across releases.
Example of the new ReleaseTracks field within the Track object:
{
// Existing fields
"tracks": [
{
// Existing fields
"releaseTracks": [
{
"releaseId": 0,
"spotifyId": "string",
"appleId": 0,
"rdioId": "string",
"deezerId": "string"
}
]
}
]
} curl -X GET 'https://api.revelator.com/content/release/123456'{
"createdBy": "00000000-0000-0000-0000-000000000000",
"createdByEmail": "[email protected]",
"createdByUserId": "00000000-0000-0000-0000-000000000000",
"enterpriseEmail": "[email protected]",
"enterpriseOwnerId": "00000000-0000-0000-0000-000000000000",
"lastPayeePaymentDate": "2023-10-23",
"lastPayeePaymentAmount": 0.00,
"isEnterpriseVip": true,
"isEnterpriseWhiteListed": true,
"payeeReferrerName": null,
"description": null,
"descriptionTitle": null,
"tags": null,
"languageId": 0,
"copyrightC": "2025 Example Artist",
"copyrightP": "2025 Example Artist",
"recordingLocation": null,
"recordingDate": null,
"parentalAdvisory": null,
"producedBy": null,
"mixedBy": null,
"masteredBy": null,
"masteredDate": null,
"productionCredits": null,
"totalSales": 0.0,
"enterpriseId": 0,
"payeeOwner": 0,
"hasRecordLabel": true,
"previouslyReleased": false,
"isCompilation": false,
"releasesLocals": [],
"contributors": [
{
"contributorId": "00000000-0000-0000-0000-000000000000",
"roleId": 0,
"isPrimary": false,
"trackId": null,
"releaseId": 0,
"contributorRoleGroupId": 0,
"artist": {
"labelId": null,
"labelName": "Example Label Name",
"contactId": null,
"contact": null,
"biography": null,
"yearsActive": [],
"influencers": [],
"contemporaries": [],
"tags": [],
"isSigned": false,
"musicStyles": [],
"artistExternalIds": [],
"socialUrls": [],
"artistLocals": [],
"artistsWebsites": [],
"webAlias": null,
"enterpriseId": 0,
"activeFromDate": null,
"activeToDate": null,
"artistId": 0,
"name": "Artist Name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 0,
"tracksCount": 0,
"image": null
}
}
],
"artistLocals": [],
"tracks": [
{
"enterpriseName": "Example Enterprise Name",
"enterpriseId": 0,
"trackId": 0,
"name": "Track Name",
"spotifyId": null,
"artistId": 0,
"artistName": "Artist Name",
"artistAppleId": null,
"artistSpotifyId": null,
"artistExternalIds": [],
"labelId": 0,
"labelName": "Example Label Name",
"discNumber": null,
"trackLength": 0,
"channels": 0,
"sampleRate": 0,
"bitDepth": 0,
"bitrate": 0,
"trackVendorId": null,
"isrc": null,
"version": null,
"copyrightC": "2021 Example Artist",
"copyrightP": "2024 Example Artist",
"description": null,
"languageId": 0,
"explicit": true,
"lyrics": null,
"playingCount": 0,
"appleId": null,
"priceTierId": null,
"rdioId": null,
"previewStartSeconds": 0,
"totalSales": 0.0,
"image": null,
"wav": null,
"flac": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": false,
"filename": "ExampleFlac.flac",
"externalUrl": null,
"lastUpdateDate": "0001-01-01T00:00:00Z"
},
"trackRecordingVersions": [
{
"isrc": null,
"recordingVersionType": 0,
"audioFiles": [
{
"audioId": "00000000-0000-0000-0000-000000000000",
"fileFormat": 0,
"audioFilename": "ExampleFlac.flac",
"audioChannels": 0,
"audioBitDepth": 0,
"audioSampleRate": 0,
"audioBitrate": 0,
"audioSeconds": 0,
"audioSize": 0
}
]
}
],
"fileExtension": ".flac",
"isLockedForDistribution": false,
"isDolbyAtmosReadOnly": false,
"primaryMusicStyleId": 0,
"secondaryMusicStyleId": 0,
"previouslyReleased": false,
"trackType": 0,
"licenseRequestStatus": null,
"isAudioValid": null,
"tracksLocals": [],
"artistLocals": [],
"contributors": [
{
"contributorId": "00000000-0000-0000-0000-000000000000",
"roleId": 0,
"isPrimary": false,
"trackId": 0,
"releaseId": null,
"contributorRoleGroupId": 0,
"artist": {
"labelId": null,
"labelName": "Example Label Name",
"contactId": null,
"contact": null,
"biography": null,
"yearsActive": [],
"influencers": [],
"contemporaries": [],
"tags": [],
"isSigned": false,
"musicStyles": [],
"artistExternalIds": [],
"socialUrls": [],
"artistLocals": [],
"artistsWebsites": [],
"webAlias": null,
"enterpriseId": 0,
"activeFromDate": null,
"activeToDate": null,
"artistId": 0,
"name": "Artist Name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 0,
"tracksCount": 0,
"image": null
}
}
],
"catalog": null,
"compositions": [
{
"compositionId": 0,
"trackId": 0,
"originalTitle": "Example Original Title",
"originalComposers": "Example Composer Names",
"originalRecordingArtist": null,
"sourceAlbumTitle": null,
"sourceMaterialTitle": null,
"iswc": "T1234567890",
"url": "http://example.com/composition-url",
"notes": null,
"isPaid": false
}
],
"releaseIds": [
0
],
"releases": [
{
"releaseId": 0,
"name": "Example Release Name",
"version": null,
"releaseDate": "2025-07-18T00:00:00Z",
"releaseTypeId": 0,
"upc": null,
"isLockedForDistribution": false,
"isDolbyAtmosReadOnly": false,
"isIngested": false,
"enterpriseName": "Example Enterprise Name",
"enterpriseId": 0,
"assetId": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": false,
"filename": "example-image.jpg",
"externalUrl": null,
"lastUpdateDate": "2025-05-29T10:18:47.997Z"
},
"artist": {
"artistId": 0,
"name": "Artist Name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 0,
"tracksCount": 0,
"image": null
},
"tracksCount": 0,
"contributors": []
}
],
"composerContentsDTO": [
{
"contributorId": 0,
"composerId": 0,
"composerName": "Composer Name",
"composerImageId": "00000000-0000-0000-0000-000000000000",
"share": 0.00,
"publisherId": null,
"publisherName": "Publisher Name",
"publisherAdminId": null,
"publisherAdminName": null,
"proId": null,
"rightsId": 0,
"proRegistrationId": null,
"roleId": 0,
"composersLocals": []
}
],
"isFullyLocked": false,
"copyTrackId": null,
"isIngested": false,
"isLicensePaid": false,
"distributorStoreGenreIds": [],
"assetId": 0,
"monetizations": [
{
"trackId": 0,
"distributorStoreId": 0,
"policyId": 0,
"isEligible": null,
"optIn": null,
"isPaid": null,
"isLive": null,
"transactionId": null,
"transactionDate": null
}
],
"acrCloud": {
"timestampUtc": "2025-07-18T09:25:48.871Z",
"scans": [],
"coverSongs": [],
"derivativeWorks": [],
"speechDetection": [],
"musicDetected": 0,
"duration": 0,
"error": null,
"status": 0,
"isrc": null
},
"royaltyToken": null,
"trackProperties": [],
"releasesCount": 0,
"releaseTracks": [
{
"releaseId": 0,
"spotifyId": "spotifyIdExample",
"appleId": 123456,
"rdioId": "rdioIdExample",
"deezerId": "deezerIdExample"
}
]
}
],
"enterpriseImageId": "00000000-0000-0000-0000-000000000000",
"featureFmSmartLink": null,
"distributorStoreGenreIds": [],
"upc": "123456789012",
"isrc": null,
"trackISRC": null,
"trackRecordingVersions": [
{
"isrc": null,
"recordingVersionType": 0,
"audioFiles": [
{
"audioId": "00000000-0000-0000-0000-000000000000",
"audioFilename": "ExampleAudio.flac",
"fileFormat": 0
}
]
}
],
"artistId": 0,
"artistName": "Artist Name",
"artistAppleId": null,
"artistSpotifyId": null,
"artistExternalIds": [],
"catalog": null,
"version": null,
"artistImageId": "00000000-0000-0000-0000-000000000000",
"labelId": 0,
"labelName": "Example Label Name",
"releaseDate": "2025-07-18T00:00:00Z",
"creationDate": "2025-07-16T13:18:00Z",
"primaryMusicStyleId": 0,
"secondaryMusicStyleId": 0,
"notesCount": 0,
"payeeNotesCount": 0,
"approvedDate": null,
"kountStatusId": null,
"kountStatusName": null,
"isFullyLocked": false,
"releaseId": 0,
"name": "Example Release Name",
"releaseTypeId": 0,
"isLockedForDistribution": false,
"isDolbyAtmosReadOnly": false,
"isIngested": false,
"enterpriseName": "Example Enterprise Name",
"assetId": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": false,
"filename": "example-cover.jpg",
"externalUrl": null,
"lastUpdateDate": "2025-05-29T10:18:47.997Z"
},
"artist": null,
"tracksCount": 0,
"archivedAt": "2024-10-26T00:00:00"
} Use the following endpoints to retrieve track data.
By default, these endpoints return all tracks the user has permission to view, not just the tracks in the user’s account. A parent account user will receive tracks from every associated child account.
/content/track/allRetrieves paginated list of all tracks the user has permissions to view.
When using multiple filters of the same type, provide each property separately. For example:
artists=2384320&artists=1628168.
| Parameter | Type | Description |
|---|---|---|
pageNumber optional | integer | The page number of the results to retrieve. Default: 1. |
pageSize optional | integer | The maximum number of items to return per page. Default: 10. |
orderByProperty optional | string | The property to sort the results by. Available options:
|
orderByDescending optional | boolean | If true, orders the results in descending order. If false or omitted, orders in ascending order. |
searchText optional | string | A case-insensitive search term to filter tracks by name or artist name. |
fromDate optional | date-time | Returns tracks created on or after this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
toDate optional | date-time | Returns tracks created on or before this date (ISO 8601 format: YYYY-MM-DDTHH:MM:SS). |
artists optional | array | One or more artist IDs. Returns only tracks where the provided artist ID is the main primary artist of the track. |
labels optional | array | Label IDs to filter tracks by. |
enterprises optional | array | Enterprise IDs to filter tracks by. Only relevant for parent account users. |
musicStyles optional | array | Music Style IDs to filter tracks associated with any of the specified music styles (primary or secondary). |
languages optional | array | Language IDs to filter tracks by. |
isrcs optional | array | Filters tracks by multiple ISRCs. Each ISRC must match exactly. The filter behaves as an OR search - tracks matching any of the provided ISRCs are included. ISRC values that do not match any track are simply ignored. |
isHighResolution optional | boolean | Filters tracks based on audio resolution:
|
isMissingAudioFile optional | boolean | Filters tracks without audio files:
|
recordingVersionType optional | string | Filters tracks by the type of audio recording version available:
|
archived optional | boolean | Filters tracks based on their archive status:
|
archivedFrom optional | date-time | Returns tracks whose archivedAt timestamp is on or after this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
archivedTo optional | date-time | Returns tracks whose archivedAt timestamp is on or before this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
curl -X GET
'https://api.revelator.com/content/track/all?pageNumber=1&pageSize=10&searchText=title'{
"totalItemsCount": 20,
"pageNumber": 1,
"pageSize": 10,
"items": [
{
"trackId": 123456,
"name": "Title",
"artistId": 12345,
"artistName": "Artist Name",
"trackLength": 154,
"trackVendorId": null,
"isrc": null,
"iswcs": [],
"description": null,
"languageId": 65,
"explicit": true,
"version": "Live",
"posterImageId": null,
"wavFileId": "00000000-0000-0000-000000000000",
"flacFileId": null,
"assetId": 1352123,
"image": null,
"wav": {
"fileId": "00000000-0000-0000-000000000000",
"isTemp": false,
"filename": "AudioFileName.wav",
"externalUrl": null,
"lastUpdateDate": "0001-01-01T00:00:00"
},
"flac": null,
"primaryMusicStyleId": null,
"secondaryMusicStyleId": null,
"trackType": 2,
"licenseRequestStatus": null,
"isAudioValid": null,
"catalog": null,
"isFullyLocked": false,
"enterpriseId": 129858,
"enterpriseName": "Enterprise Name",
"archivedAt": null,
"releases": [],
"monetizations": null,
"royaltyToken": null,
"acrCloud": null,
"trackRecordingVersions": [
{
"isrc": null,
"recordingVersionType": 1,
"audioFiles": [
{
"audioId": "00000000-0000-0000-000000000000",
"fileFormat": 1,
"audioFilename": "AudioFileName.wav",
"audioChannels": 2,
"audioBitDepth": 24,
"audioSampleRate": 48000,
"audioBitrate": 2307152,
"audioSeconds": 154,
"audioSize": 44136826
}
]
}
],
"contributors": [
{
"contributorId": "00000000-0000-0000-000000000000",
"roleId": 5,
"releaseId": null,
"trackId": 123456,
"artist": {
"artistId": 123556,
"name": "Artist Name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 1,
"tracksCount": 4,
"archivedAt": null,
"image": null
}
},
{
"contributorId": "00000000-0000-0000-000000000000",
"roleId": 6,
"releaseId": null,
"trackId": 123564,
"artist": {
"artistId": 123555,
"name": "Artist Name 2",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 0,
"tracksCount": 1,
"archivedAt": null,
"image": {
"fileId": "00000000-0000-0000-000000000000",
"isTemp": false,
"filename": "profile.jpg",
"externalUrl": null,
"lastUpdateDate": "2024-07-04T20:38:10.917"
}
}
}
]
},
],
"additionalCounters": null
} /content/track/all/summaryRetrieves a summary of all tracks the user has permissions to view.
| Parameter | Type | Description |
|---|---|---|
query optional | string | A search term to filter tracks by name. The search is case-insensitive. |
archived optional | boolean | Filters tracks based on their archive status.
|
curl -X GET
'https://api.revelator.com/content/track/all/summary?query=Track'[
{
"trackId": 123456,
"name": "Track Title",
"artistId": 366600,
"artistName": "Artist Name",
"isrc": null,
"trackRecordingVersions": [
{
"isrc": null,
"recordingVersionType": 1,
"audioFiles": [
{
"audioId": "00000000-0000-0000-0000-000000000000",
"audioFilename": "AudioFileName.wav",
"fileFormat": 1
}
]
}
],
"version": "",
"enterpriseName": "Enterprise Name",
"enterpriseId": 223813,
"assetId": 3224117,
"releasesCount": 0,
"archivedAt": null,
"image": null
},
] /content/track/{trackId}Retrieves a track by its unique trackId.
Upcoming Change: The SpotifyId, AppleId, and RdioId fields are deprecated and will be removed in a future
update.
Please use the new ReleaseTracks field for DSP identifiers going forward. This new structure provides a more
consistent and scalable way to associate tracks with external DSP identifiers across tracks.
Effective December 17, 2025, the data type for the upc property will change from number to string across
all endpoints.
Integrators must update their code to handle the UPC field as a string value to avoid potential parsing errors.
For full details, see the Changelog entry.
curl -X GET 'https://api.revelator.com/content/track/123456'{
"enterpriseName": "Enterprise Name",
"enterpriseId": 141898,
"trackId": 1863548,
"name": "Track Name",
"artistId": 382319,
"artistName": "Artist Name",
"artistAppleId": null,
"artistSpotifyId": null,
"artistExternalIds": [],
"labelId": 148196,
"labelName": "Label Name",
"discNumber": null,
"trackLength": 205,
"channels": 2,
"sampleRate": 48000,
"bitDepth": 16,
"bitrate": 1536000,
"trackVendorId": null,
"isrc": "USQZ52500001",
"version": null,
"copyrightC": null,
"copyrightP": "2020 Artist",
"description": null,
"languageId": 48,
"explicit": true,
"lyrics": null,
"playingCount": 0,
"priceTierId": null,
"previewStartSeconds": null,
"totalSales": 0.0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": false,
"filename": null,
"externalUrl": null,
"lastUpdateDate": "2014-03-23T09:25:23.43"
},
"wav": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": false,
"filename": "AudioFileName.wav",
"externalUrl": null,
"lastUpdateDate": "0001-01-01T00:00:00"
},
"flac": null,
"trackRecordingVersions": [
{
"isrc": "USQZ52500001",
"recordingVersionType": 1,
"audioFiles": [
{
"audioId": "00000000-0000-0000-0000-000000000000",
"fileFormat": 1,
"audioFilename": "AudioFileName.wav",
"audioChannels": 2,
"audioBitDepth": 16,
"audioSampleRate": 48000,
"audioBitrate": 1536000,
"audioSeconds": 205,
"audioSize": 39484962
}
]
}
],
"fileExtension": ".wav",
"isLockedForDistribution": false,
"isDolbyAtmosReadOnly": false,
"primaryMusicStyleId": 16,
"secondaryMusicStyleId": null,
"previouslyReleased": false,
"trackType": 0,
"licenseRequestStatus": null,
"isAudioValid": null,
"tracksLocals": [
{
"trackId": 1863548,
"name": "Localized Track Name",
"phoneticName": null,
"languageId": 50,
"version": null,
"phoneticVersion": null
}
],
"artistLocals": [
{
"artistId": 382319,
"name": "Localized Artist Name",
"phoneticName": null,
"languageId": 50
}
],
"contributors": [],
"catalog": null,
"compositions": [],
"releaseIds": [
575296
],
"releases": [
{
"releaseId": 575296,
"name": "Release Name",
"version": null,
"releaseDate": null,
"releaseTypeId": 4,
"upc": 7290114249003.0,
"isLockedForDistribution": false,
"isDolbyAtmosReadOnly": false,
"isIngested": false,
"enterpriseName": "Enterprise Name",
"enterpriseId": 141898,
"assetId": 1748486,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": false,
"filename": "CoverFileName.jpg",
"externalUrl": null,
"lastUpdateDate": "2020-08-25T08:06:24.27"
},
"artist": {
"artistId": 382319,
"name": "Artist Name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 4,
"tracksCount": 12,
"archivedAt": null,
"image": null
},
"tracksCount": 6,
"archivedAt": null,
"isCompilation": false,
"contributors": []
}
],
"composerContentsDTO": [
{
"contributorId": 1167888,
"composerId": 442638,
"composerName": "Composer Name",
"composerImageId": null,
"share": 100.00,
"publisherId": null,
"publisherName": "",
"publisherAdminId": null,
"publisherAdminName": null,
"proId": null,
"rightsId": 1,
"proRegistrationId": null,
"roleId": 2,
"composersLocals": []
}
],
"isFullyLocked": false,
"copyTrackId": null,
"isIngested": false,
"isLicensePaid": null,
"distributorStoreGenreIds": [],
"assetId": 3032257,
"archivedAt": null,
"monetizations": [],
"acrCloud": null,
"royaltyToken": null,
"trackProperties": [
1
],
"releasesCount": 1,
"spotifyId": null,
"appleId": null,
"rdioId": null,
"releaseTracks": [
{
"releaseId": 575296,
"spotifyId": null,
"appleId": null,
"rdioId": null,
"deezerId": null
}
]
} An artist is a metadata entity referenced in assets (releases and tracks).
You don’t need to manually create artists before creating assets, unless you are performing an ingestion process (such as importing or creating an entire catalog) or creating “Various Artists” releases. For details, see Workflow: Importing an Existing Catalog or Creating New Release.
Artists can also be created automatically as part of the asset creation process — see Adding/Editing Releases. When editing an artist already associated with assets, all linked assets are updated automatically.
Due to DSP requirements, an artist cannot be listed as a primary artist twice, or appear as both a primary and featuring artist on the same track or release.
The Revelator API enforces this by returning an error if you attempt to set an artist as both the main primary artist
(artistId / artistName) and as a contributor with a primary or featuring role.
/artistsCreates or edits artists within the account associated with the access token.
For Child Account implementations, you can also run this request on behalf of a child enterprise while authenticated as a parent account user. See Running Requests in Child Accounts.
| Parameter | Type | Description |
|---|---|---|
name optional | string | Name of the artist.
|
artistId optional | integer | ID for an existing artist.
|
artistExternalIds optional | array of objects | External IDs for the artist for each store. Each supported store should have one or zero entries.
|
artistExternalIds.profileId required | string | External ID for the artist at the specified store.
|
artistExternalIds.distributorStoreId required | string | Revelator ID for the store. Currently supported for:
|
artistLocals optional | array of objects | Artist name(s) in different languages. Each object represents a name in a different language. |
artistLocals.name optional | string | Name in the indicated language. If omitted, this localization entry is ignored. |
artistLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
artistLocals.languageId optional | integer | Language ID indicating the language of the name. Each language can be used only once in the array. Updates to local names are based on this field. If omitted, this localization entry is ignored. Lookup up the languageId using the GET /common/lookup/languages resource. |
image optional | object | The image representing the artist. See File Object. |
additionalContacts optional | array of objects | Array of Contact objects. |
additionalContacts.contactId optional | integer | The ID of an existing contact (omit or use 0 to create a new one). |
additionalContacts.name optional | string | Full legal name of the contact. |
additionalContacts.email optional | string | Contact email address. |
additionalContacts.contactRoleId optional | integer | Role ID for the contact, obtained through GET /common/lookup/contactRoles. |
additionalContacts.phone optional | string | Contact phone number. |
additionalContacts.address optional | string | Primary address line 1. |
additionalContacts.address2 optional | string | Primary address line 2. |
additionalContacts.zipcode optional | string | Zip/postal code. |
additionalContacts.countryId optional | integer | Country ID for the contact’s address. |
additionalContacts.city optional | string | City. |
additionalContacts.state optional | string | State/Province. |
additionalContacts.location optional | string | General location information. |
activeFromDate optional | string | The specific date when the artist began their activity. ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SS). |
activeToDate optional | string | The specific date when the artist ended their activity (or null if still active). ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SS). |
firstName optional | string | Legal first name of the artist. Must consist only of Unicode letters, hyphens (-), single quotes (’), or dots (.). Must have a total length between 1 and 100 characters (inclusive). |
middleName optional | string | Legal middle name(s) of the artist. |
lastName optional | string | Legal last name of the artist. Must consist only of Unicode letters, hyphens (-), single quotes (’), or dots (.). Must have a total length between 1 and 100 characters (inclusive). |
isni optional | string | The International Standard Name Identifier (ISNI) for the artist. Must be exactly 16 alphanumeric characters, where the last character can also be ‘X’. |
artistLabels optional | array of objects | An array of objects, each representing an association with a Label. See nested fields below for structure and requirements. |
artistLabels.labelId required | integer | The ID of an existing Label to associate with the artist. |
artistLabels.contractStartYear required | string | The start date of the contract between the artist and this label. ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SSZ). |
artistLabels.contractEndYear optional | string | The end date of the contract between the artist and this label. If provided, must be after contractStartYear. ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SSZ). |
Use the following endpoints to retrieve artist data.
For Child Account implementation models, you have the option to run requests in a child account while authenticated as a parent account user. See Running Requests in Child Accounts.
/artistsRetrieves list of all artists in the account.
| Parameter | Type | Description |
|---|---|---|
labels optional | array | An array of label IDs to filter artists associated with any of the specified labels. |
name optional | string | Name of artist, case-sensitive, exact match. |
isni optional | string | Filters artists by their International Standard Name Identifier (ISNI). |
contributorGroupId optional | integer | Filters artists who have contributed to tracks/releases using a role that belongs to the specified Contributor Role Group ID. Refer to /common/lookup/ContributorRolesGroups for available group IDs. |
archived optional | boolean | Filters artists based on their archive status.
|
archivedFrom optional | date-time | Returns artists whose archivedAt timestamp is on or after this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
archivedTo optional | date-time | Returns artists whose archivedAt timestamp is on or before this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
curl -X GET 'http://api.revelator.com/artists?labels=labelA&labels=labelB'{
"totalItemsCount": 0,
"pageNumber": 0,
"pageSize": 0,
"items": [
{
"artistId": 0,
"name": "string",
"firstName": "string",
"lastName": "string",
"middleName": "string",
"isni": "string",
"releasesCount": 0,
"tracksCount": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-06-12T12:38:18.124Z"
},
"archivedAt": "2025-06-12T12:38:18.124Z"
}
],
"additionalCounters": {}
} /artists/summaryRetrieves a summary of all artists in the account.
| Parameter | Type | Description |
|---|---|---|
query optional | string | A search term to filter artists by name. The search is case-insensitive. |
archived optional | boolean | Filters artists based on their archive status.
|
curl -X GET 'http://api.revelator.com/artists/summary'[
{
"artistId": 503102,
"name": "Artist Name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 2,
"tracksCount": 2,
"archivedAt": null,
"image": null
}
] /artists/{artistId}Retrieves the artist with the artistId specified in the URL path.
curl -X GET 'http://api.revelator.com/artists/503102'{
"artistLabels": [],
"additionalContacts": [],
"contributorRoleGroupIds": [
1,
3
],
"hasPortal": false,
"labelId": null,
"labelName": "",
"contactId": null,
"contact": null,
"biography": null,
"yearsActive": [],
"influencers": [],
"contemporaries": [],
"tags": [],
"isSigned": false,
"musicStyles": [],
"artistExternalIds": [],
"socialUrls": [],
"artistLocals": [],
"artistsWebsites": [],
"webAlias": null,
"enterpriseId": 129858,
"activeFromDate": null,
"activeToDate": null,
"artistId": 503102,
"name": "Artist name",
"firstName": null,
"lastName": null,
"middleName": null,
"isni": null,
"releasesCount": 2,
"tracksCount": 2,
"archivedAt": null,
"image": null
} /content/artist/allRetrieves paginated list of all artists in the account.
| Parameter | Type | Description |
|---|---|---|
labels optional | array | An array of label IDs to filter artists associated with any of the specified labels. |
name optional | string | Filters artists by name (case-insensitive, exact match). |
fromDate optional | date-time | Filters for artists created on or after the provided date. Expected format: YYYY-MM-DDTHH:MM:SS (e.g., ISO 8601 without timezone). |
toDate optional | date-time | Filters for artists created on or before the provided date. Expected format: YYYY-MM-DDTHH:MM:SS (e.g., ISO 8601 without timezone). |
musicStyles optional | array | An array of music style IDs to filter artists associated with any of the specified music styles. |
isni optional | string | Filters artists by their International Standard Name Identifier (ISNI). |
contributorGroupId optional | integer | Filters artists who have contributed to tracks/releases using a role that belongs to the specified Contributor Role Group ID. Refer to /common/lookup/ContributorRolesGroups for available group IDs. |
pageNumber optional | integer | The page number of the results to retrieve. Default is 1. |
pageSize optional | integer | The number of items per page. Default is a system-defined value. Requires pageNumber query parameter to work properly. |
orderByProperty optional | string | The property to sort the results by. Available options:
|
orderByDescending optional | boolean | If true or omitted, orders the results in descending order. If false, orders in ascending order. |
searchText optional | string | Allows to search by client’s name. |
archived optional | boolean | Filters artists based on their archive status.
|
archivedFrom optional | date-time | Returns artists whose archivedAt timestamp is on or after this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
archivedTo optional | date-time | Returns artists whose archivedAt timestamp is on or before this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
curl -X GET 'http://api.revelator.com/content/artist/all?orderByProperty=middleName&pageSize=10&pageNumber=1'{
"totalItemsCount": 0,
"pageNumber": 0,
"pageSize": 0,
"items": [
{
"additionalContacts": [
{
"contactId": 0,
"name": "string",
"currencyCode": "string",
"phone": "string",
"email": "string",
"address": "string",
"address2": "string",
"zipcode": "string",
"countryId": 0,
"imageId": "00000000-0000-0000-0000-000000000000",
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-08-26T07:20:39.247Z"
},
"isActive": true,
"labelId": 0,
"publisherId": 0,
"artistId": 0,
"city": "string",
"state": "string",
"location": "string",
"contactRoleId": 0
}
],
"musicStyles": [
{
"musicStyleId": 0,
"name": "string"
}
],
"creationDate": "2025-08-26T07:20:39.247Z",
"hasPortal": true,
"artistId": 0,
"name": "string",
"firstName": "string",
"lastName": "string",
"middleName": "string",
"isni": "string",
"releasesCount": 0,
"tracksCount": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-08-26T07:20:39.247Z"
},
"archivedAt": "2025-06-12T12:38:18.124Z"
}
],
"additionalCounters": {}
} External Artist IDs (also known as profile IDs) are identifiers used by DSPs (Digital Service Providers) to group an artist’s content under a single profile. Providing these IDs is crucial for preventing situations where artists with the same name are merged or a single artist’s catalog is split across multiple profiles.
This is managed through the artistExternalIds array, which can be provided in the following contexts:
Currently, providing external artist IDs is supported for:
distributorStoreId: 1)distributorStoreId: 9)distributorStoreId: 68)distributorStoreId: 309 & 310)artistExternalIdsThe artistExternalIds is an array of objects. Each object links a profileId (the artist’s ID on the DSP) with a
distributorStoreId (our internal ID for the DSP).
| Parameter | Type | Description |
|---|---|---|
artistExternalIds optional | array of objects | An array of objects, each representing an external ID for the artist at a specific store. Each supported store should have one or zero entries. |
artistExternalIds.profileId required | string | The artist’s profile ID at the specified store. To find this ID, go to the artist’s page at the store and copy the unique identifier from the URL. |
artistExternalIds.distributorStoreId required | integer | The Revelator ID for the store. See the “Supported DSPs” callout above for current values. |
Effective November 15, 2025, providing "0" as a value to indicate new profile creation will no longer be
supported. To create a new profile, you must either omit the entry for the store or provide null.
For full details, see the Changelog entry.
When working with artistExternalIds, always provide a profileId if one already exists for the artist. If the artist
is new to a DSP, you should either:
nullEach DSP has different behavior when an artist’s profile ID is not provided:
1): A new profile will be generated during distribution.9): A new profile will be generated when a release goes live.68): SoundCloud will attempt to map the artist to an existing profile or create a new one if
unsuccessful. Please contact Support if you notice your release mapped to the wrong page.309 & 310): Meta will attempt to map the artist to an existing profile. New profiles cannot be created
automatically. Please contact Support if you notice your release mapped to the wrong page.Profiles for Facebook Audio Library (309) and Facebook Rights Manager (310) are connected. When you assign an
artist’s profile for one, we will automatically create the other. When updating, you must provide the same profileId
for both distributorStoreId: 309 and distributorStoreId: 310 simultaneously.
If a profileId for an artist has already been generated by a DSP, you must retrieve and use it for all subsequent
releases. Failing to provide the existing ID will cause a second, duplicate profile to be generated for the artist,
splitting their catalog.
Before distributing a new release for an artist who was previously new to a DSP, follow these steps:
GET /content/artist/{artistId} endpoint. The response includes the
most up-to-date artistExternalIds array, containing any newly generated IDs. See
Artist Object for details.artistExternalIds array in your
POST /content/release/save request.GET request only
immediately before distributing a new release that requires the ID. A profileId may never be generated for some
DSPs (e.g., if a Spotify release does not go live).A publisher is a metadata entity that is referenced in assets (releases and tracks).
When a new Publisher is created implicitly as part of saving a Release or Track (i.e., you include a new publisher in the asset payload):
The Publisher’s enterpriseId will automatically be set to match the enterpriseId of the Release or Track being
saved.
When managing Publishers directly via the /content/publisher/save endpoint, you retain explicit control over the
enterpriseId using the parameter detailed in the Request Body below.
/content/publisher/saveCreates a new publisher or updates an existing one. The target enterprise for the operation can be specified if the authenticated user has appropriate parent/child account permissions.
| Parameter | Type | Description |
|---|---|---|
publisherId optional | Integer | ID for an existing publisher. Required when editing publisher, should be ommited or set to 0 when creating new publisher. |
name required | string | Full name of the publisher. |
ipiCae optional | string | IPI (Interested Parties Information) - CAE (Composer, Author, and Publisher) number. Exactly 9 digits (IPI) or 11 digits (CAE). Unique across publishers and composers (writers) in the same tenant if present. Used to identify publishers across rights organizations. |
image optional | object | The image representing the publisher. See File Object. |
image.fileId required | string | The ID of the previously uploaded file. Required when image object is present. |
image.filename required | string | Name of the previously uploaded file with extension. |
proAffiliations optional | array of objects | A list detailing the Performance Rights Organizations (PROs) affiliations. |
proAffiliations.proId required | integer | Our internal ID linking to the mechanicalPros entity. |
proAffiliations.memberId required | string | Unique ID issued by PRO. Unique across composers and publishers for the same tenant. |
additionalContacts optional | array of objects | Array of Contact objects. |
additionalContacts.contactId optional | integer | The ID of an existing contact (omit or use 0 to create a new one). |
additionalContacts.name optional | string | Full legal name of the contact. |
additionalContacts.email optional | string | Contact email address. |
additionalContacts.contactRoleId optional | integer | Role ID for the contact, obtained through GET /common/lookup/contactRoles. |
additionalContacts.phone optional | string | Contact phone number. |
additionalContacts.address optional | string | Primary address line 1. |
additionalContacts.address2 optional | string | Primary address line 2. |
additionalContacts.zipcode optional | string | Zip/postal code. |
additionalContacts.countryId optional | integer | Country ID for the contact’s address. |
additionalContacts.city optional | string | City. |
additionalContacts.state optional | string | State/Province. |
additionalContacts.location optional | string | General location information. |
website optional | string | Publisher’s website. |
countryId optional | integer | Country where this publisher administers publishing rights and collects royalties. |
enterpriseId optional | integer | Specifies the target enterprise ID for the publisher.
|
curl -X POST 'http://api.revelator.com/content/publisher/save' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer c1234562-5f45-4ab6-b8fb-812345c3e4d4' \
-d '{
"publisherId": 0,
"name": "Example Publisher",
"ipiCae": "0000000111",
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"filename": "photo.jpg"
},
"proAffiliations": [],
"additionalContacts": [
{
"contactId": 796718
},
{
"name": "Booking Manager",
"email": "[email protected]",
"contactRoleId": 5
}
],
"website": "https://hello.com",
"countryId": 875
}' Use the following endpoints to retrieve publisher data.
/content/publisher/allRetrieves a paginated list of all publishers in the account, with options for sorting and searching.
| Parameter | Type | Description |
|---|---|---|
pageNumber optional | integer | The page number of the results to retrieve. Default is 1. |
pageSize optional | integer | The number of items to return per page. Default is 24. Requires pageNumber query parameter to work properly. |
orderByProperty optional | string | The property to sort the results by. Available options:
|
orderByDescending optional | boolean | If false, orders the results in ascending order. If true or omitted, orders in descending order. |
searchText optional | string | A search term to filter publishers by name. The search is case-insensitive. |
archived optional | boolean | Filters publishers based on their archive status.
|
archivedFrom optional | date-time | Returns publishers whose archivedAt timestamp is on or after this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
archivedTo optional | date-time | Returns publishers whose archivedAt timestamp is on or before this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
curl -X GET 'http://api.revelator.com/content/publisher/all?pageNumber=1&pageSize=10&orderByProperty=name&orderByDescending=true'{
"totalItemsCount": 24,
"pageNumber": 1,
"pageSize": 10,
"items": [
{
"publisherId": 1,
"name": "Example Publisher",
"ipiCae": "11111111111",
"image": {
"fileId": "00000000-0000-0000-0000-00000000",
"isTemp": false,
"filename": "photo.jpg",
"externalUrl": null,
"lastUpdateDate": "2032-04-14T14:12:37.097"
},
"proAffiliations": [],
"additionalContacts": [],
"worksCount": 0,
"creationDate": "2020-05-23T19:06:44",
"website": null,
"countryId": 875,
"archivedAt": "2020-05-23T19:06:44"
},
{
"publisherId": 2,
"name": "Example Publisher 2",
"ipiCae": null,
"image": null,
"proAffiliations": [],
"additionalContacts": [],
"worksCount": 17,
"creationDate": "2032-10-17T05:59:42",
"website": "https://example.com",
"countryId": 443,
"archivedAt": "2020-05-23T19:06:44"
},
],
"additionalCounters": null
} /content/publisher/all/summaryRetrieves a summarized list of publishers. Allows for searching and limiting results.
| Parameter | Type | Description |
|---|---|---|
query optional | string | A search term to filter publishers by name. The search is case-insensitive. |
limit optional | integer | The maximum number of summary items to return. |
archived optional | boolean | Filters publishers based on their archive status.
|
curl -X GET 'http://api.revelator.com/content/publisher/all/summary?query=Publi&limit=1'[
{
"publisherId": 1111,
"name": "Publisher",
"ipiCae": null,
"image": null,
"proAffiliations": [],
"additionalContacts": [],
"worksCount": 10,
"creationDate": "2021-10-06T10:46:16.483",
"website": null,
"countryId": 875,
"archivedAt": "2020-05-23T19:06:44"
}
] /content/publisher/{publisherId}Retrieves detailed information for a specific publisher by its publisherId.
| Parameter | Type | Description |
|---|---|---|
publisherId | integer | The unique ID of the publisher to retrieve. |
curl -X GET 'http://api.revelator.com/content/publisher/12345'{
"publisherId": 12345,
"name": "Publisher Name",
"ipiCae": "111111111",
"image": null,
"proAffiliations": [],
"additionalContacts": [],
"worksCount": 0,
"creationDate": "2020-05-23T19:06:44",
"website": null,
"countryId": 875,
"archivedAt": "2020-05-23T19:06:44",
} A composer(writer) is a metadata entity that is referenced in assets (releases and tracks).
When a new Composer is created implicitly as part of saving a Release or Track (i.e., you include a new composer in the asset payload):
The Composer’s enterpriseId will automatically be set to match the enterpriseId of the Release or Track being
saved.
When managing Composers directly via the /content/composer/save endpoint, you retain explicit control over the
enterpriseId using the parameter detailed in the Request Body below.
/content/composer/saveCreates a new composer or updates an existing one. The target enterprise for the operation can be specified if the authenticated user has appropriate parent/child account permissions.
| Parameter | Type | Description |
|---|---|---|
composerId optional | Integer | ID for an existing composer. Required when editing composer, should be ommited or set to 0 when creating new composer. |
name required | string | Composer’s full legal name exactly as shown on official paperwork (e.g., contracts, copyright registrations). |
isni optional | string | The International Standard Name Identifier (ISNI) for the artist. Must be exactly 16 alphanumeric characters, where the last character can also be ‘X’. |
ipiCae optional | string | IPI (Interested Parties Information) - CAE (Composer, Author, and Publisher) number. Exactly 9 digits (IPI) or 11 digits (CAE). Unique across publishers and composers (writers) in the same tenant if present. Used to identify publishers across rights organizations. |
biography optional | string | Composers’s biography. |
countryOfResidenceId optional | integer | The country in which this contributor officially resides. Used for legal and payout requirements. |
composersLocals optional | array of objects | A list of Composer’s name in different languages. |
composersLocals.name required | string | Composer’s name in the indicated language. |
composersLocals.phoneticName optional | string | Phonetic pronunciation of the name in the indicated language. |
composersLocals.languageId required | integer | Language ID indicating the language of the name. Each language can be used only once in the array. Updates to local names are based on this field. If you don’t include languageId withing an object, it will result in an error. |
image optional | object | The image representing the publisher. See File Object. |
image.fileId required | string | The ID of the previously uploaded file. Required when image object is present. |
image.filename required | string | Name of the previously uploaded file with extension. |
proAffiliations optional | array of objects | A list detailing the Performance Rights Organizations (PROs) affiliations. |
proAffiliations.proId required | integer | Our internal ID linking to the mechanicalPros entity. |
proAffiliations.memberId required | string | Unique ID issued by PRO. Unique across composers and publishers for the same tenant. |
additionalContacts optional | array of objects | Array of Contact objects. |
additionalContacts.contactId optional | integer | The ID of an existing contact (omit or use 0 to create a new one). |
additionalContacts.name optional | string | Full legal name of the contact. |
additionalContacts.email optional | string | Contact email address. |
additionalContacts.contactRoleId optional | integer | Role ID for the contact, obtained through GET /common/lookup/contactRoles. |
additionalContacts.phone optional | string | Contact phone number. |
additionalContacts.address optional | string | Primary address line 1. |
additionalContacts.address2 optional | string | Primary address line 2. |
additionalContacts.zipcode optional | string | Zip/postal code. |
additionalContacts.countryId optional | integer | Country ID for the contact’s address. |
additionalContacts.city optional | string | City. |
additionalContacts.state optional | string | State/Province. |
additionalContacts.location optional | string | General location information. |
enterpriseId optional | integer | Specifies the target enterprise ID for the composer.
|
curl -X POST 'http://api.revelator.com/content/publisher/save' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer c1234562-5f45-4ab6-b8fb-812345c3e4d4' \
-d '{
"composerId": 0,
"name": "Example Composer",
"isni": "123456789098765X",
"ipiCae": "00000001111",
"biography": "Composer's biography",
"countryOfResidenceId": 244,
"composersLocals":[
{
"name": "Local Composer Name",
"languageId": 4
}
],
"image": {
"fileId": "00000000-0000-0000-a7d1-aaab06776049",
"filename": "photo.jpg"
},
"proAffiliations": [],
"additionalContacts": [
{
"name": "Booking Manager",
"email": "[email protected]",
"contactRoleId": 5
}
]
}'{
"composerId": 0,
"name": "string",
"isni": "string",
"ipiCae": "string",
"biography": "string",
"countryOfResidenceId": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-06-13T06:52:11.114Z"
},
"worksCount": 0,
"contributorRoleIds": [
0
],
"creationDate": "2025-06-13T06:52:11.114Z",
"publishersCount": 0,
"composersLocals": [
{
"composerId": 0,
"name": "string",
"languageId": 0
}
],
"additionalContacts": [
{
"contactId": 0,
"name": "string",
"currencyCode": "string",
"phone": "string",
"email": "string",
"address": "string",
"address2": "string",
"zipcode": "string",
"countryId": 0,
"imageId": "00000000-0000-0000-0000-000000000000",
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-06-13T06:52:11.114Z"
},
"isActive": true,
"labelId": 0,
"publisherId": 0,
"artistId": 0,
"city": "string",
"state": "string",
"location": "string",
"contactRoleId": 0
}
],
"proAffiliations": [
{
"proId": 0,
"memberId": "string"
}
]
} Use the following endpoints to retrieve composer data.
/content/composer/allRetrieves a paginated list of all composers in the account, with options for sorting and searching.
| Parameter | Type | Description |
|---|---|---|
pageNumber optional | integer | The page number of the results to retrieve. Default is 1. |
pageSize optional | integer | The number of items to return per page. |
orderByProperty optional | string | The property to sort the results by. Available options:
|
orderByDescending optional | boolean | If false, orders the results in ascending order. If true or omitted, orders in descending order. |
searchText optional | string | A search term to filter composer by name. The search is case-insensitive. |
archived optional | boolean | Filters composers based on their archive status.
|
archivedFrom optional | date-time | Returns composers whose archivedAt timestamp is on or after this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
archivedTo optional | date-time | Returns composers whose archivedAt timestamp is on or before this date (ISO 8601: YYYY-MM-DDTHH:MM:SS). |
curl -X GET 'http://api.revelator.com/content/composer/all?pageNumber=1&pageSize=10&orderByProperty=name&orderByDescending=true'{
"totalItemsCount": 0,
"pageNumber": 0,
"pageSize": 0,
"items": [
{
"composerId": 0,
"name": "string",
"isni": "string",
"ipiCae": "string",
"biography": "string",
"countryOfResidenceId": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-06-13T06:52:11.111Z"
},
"worksCount": 0,
"contributorRoleIds": [
0
],
"creationDate": "2025-06-13T06:52:11.111Z",
"publishersCount": 0,
"composersLocals": [
{
"composerId": 0,
"name": "string",
"phoneticName": "string",
"languageId": 0
}
],
"additionalContacts": [
{
"contactId": 0,
"name": "string",
"currencyCode": "string",
"phone": "string",
"email": "string",
"address": "string",
"address2": "string",
"zipcode": "string",
"countryId": 0,
"imageId": "00000000-0000-0000-0000-000000000000",
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-06-13T06:52:11.111Z"
},
"isActive": true,
"labelId": 0,
"publisherId": 0,
"artistId": 0,
"city": "string",
"state": "string",
"location": "string",
"contactRoleId": 0
}
],
"proAffiliations": [
{
"proId": 0,
"memberId": "string"
}
],
"archivedAt": "2025-06-13T06:52:11.117Z"
}
],
"additionalCounters": {}
} /content/composer/all/summaryRetrieves a summarized list of composers. Allows for searching and limiting results.
| Parameter | Type | Description |
|---|---|---|
query optional | string | A search term to filter composers by name. The search is case-insensitive. |
limit optional | integer | The maximum number of summary items to return. |
enterpriseId optional | integer | Used when executing from parent account to return composers from intended child account. |
archived optional | boolean | Filters composers based on their archive status.
|
curl -X GET 'http://api.revelator.com/content/composer/all/summary?query=Test&limit=1&enterpriseId=12'[
{
"composerId": 0,
"name": "string",
"composersLocals": [
{
"composerId": 0,
"name": "string",
"phoneticName": "string",
"languageId": 0
}
],
"imageId": "00000000-0000-0000-0000-000000000000",
"archivedAt": "2025-06-13T06:52:11.117Z"
}
] /content/composer/{composerId}Retrieves detailed information for a specific composer by its composerId.
| Parameter | Type | Description |
|---|---|---|
composerId | integer | The unique ID of the composer to retrieve. |
curl -X GET 'http://api.revelator.com/content/composer/12345'{
"composerId": 0,
"name": "string",
"isni": "string",
"ipiCae": "string",
"biography": "string",
"countryOfResidenceId": 0,
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-06-13T06:52:11.117Z"
},
"worksCount": 0,
"contributorRoleIds": [
0
],
"creationDate": "2025-06-13T06:52:11.117Z",
"publishersCount": 0,
"composersLocals": [
{
"composerId": 0,
"name": "string",
"phoneticName": "string",
"languageId": 0
}
],
"additionalContacts": [
{
"contactId": 0,
"name": "string",
"currencyCode": "string",
"phone": "string",
"email": "string",
"address": "string",
"address2": "string",
"zipcode": "string",
"countryId": 0,
"imageId": "00000000-0000-0000-0000-000000000000",
"image": {
"fileId": "00000000-0000-0000-0000-000000000000",
"isTemp": true,
"filename": "string",
"externalUrl": "string",
"lastUpdateDate": "2025-06-13T06:52:11.117Z"
},
"isActive": true,
"labelId": 0,
"publisherId": 0,
"artistId": 0,
"city": "string",
"state": "string",
"location": "string",
"contactRoleId": 0
}
],
"proAffiliations": [
{
"proId": 0,
"memberId": "string"
}
],
"archivedAt": "2025-06-13T06:52:11.117Z"
} Archiving allows you to remove content and its associated entities from active use within your catalog.
You can view or restore archived assets using query parameters on supported endpoints or via dedicated unarchiving endpoints.
To exclude archived content from your query results, set the query parameter
isArchived=false.
Additional details:
After archiving, associated cover images and audio files are permanently deleted after 6 months. Once deleted, they cannot be restored.
You will receive an email notification two weeks prior to deletion.
/releases/archiveArchives one or more releases.
Prerequisites for Archiving a Release:
-13: Rejected by Inspector11: Encoding Audio Failed21: Validation Failed32: Package Creation Failed42: Package Upload Failed78: Takedown Delivered79: Removed from StoreEach release has an assetId. You can retrieve this ID using endpoints like GET /content/release/all or
GET /content/release/{id}.
| Parameter | Type | Description |
|---|---|---|
assetIds | array of integers | An array of assetId values for releases to archive. |
curl -X POST 'https://api.revelator.com/releases/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} curl -X POST 'https://api.revelator.com/releases/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": false,
"errors": [
{
"code": "General.Validation",
"message": "This release is live on YouTube Music and cannot be archived. Please request takedown from store(s) before attempting to archive."
}
]
}
]
} /tracks/archiveArchives one or more tracks.
Prerequisites for Archiving a Track:
Each track has an assetId. You can retrieve this ID using endpoints like GET /content/track/all or
GET /content/track/{id}.
| Parameter | Type | Description |
|---|---|---|
assetIds | array of integers | An array of assetId values for tracks to archive. |
curl -X POST 'https://api.revelator.com/releases/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} curl -X POST 'https://api.revelator.com/tracks/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456 ]}'{
"results": [
{
"id": 4389046,
"succeeded": false,
"errors": [
{
"code": "General.Validation",
"message": "This track cannot be archived because it has active release(s)."
}
]
}
]
} /artists/archiveArchives one or more artists.
Prerequisites for Archiving an Artist:
| Parameter | Type | Description |
|---|---|---|
artistIds | array of integers | An array of artistId values for artists to archive. |
curl -X POST 'https://api.revelator.com/artists/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} curl -X POST 'https://api.revelator.com/artists/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456]}'{
"results": [
{
"id": 512247,
"succeeded": false,
"errors": [
{
"code": "General.Validation",
"message": "This artist cannot be archived because it is assigned as main primary artist to active release(s)."
}
]
}
]
} /labels/archiveArchives one or more labels.
Prerequisites for Archiving a Label:
| Parameter | Type | Description |
|---|---|---|
labelIds | array of integers | An array of labelId values for labels to archive. |
curl -X POST 'https://api.revelator.com/labels/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"labelIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} curl -X POST 'https://api.revelator.com/labels/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"labelIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": false,
"errors": [
{
"code": "General.Validation",
"message": "This label cannot be archived because it is assigned to active release(s)."
}
]
}
]
} /composers/archiveArchives one or more composers.
Prerequisites for Archiving a Composer:
| Parameter | Type | Description |
|---|---|---|
composerIds | array of integers | An array of composerId values for composers to archive. |
curl -X POST 'https://api.revelator.com/composers/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"composerIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} curl -X POST 'https://api.revelator.com/composers/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"composerIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": false,
"errors": [
{
"code": "General.Validation",
"message": "This composer cannot be archived because it is assigned to active track(s)."
}
]
}
]
} /publishers/archiveArchives one or more publishers.
Prerequisites for Archiving a Publisher:
| Parameter | Type | Description |
|---|---|---|
publisherIds | array of integers | An array of publisherId values for publishers to archive. |
curl -X POST 'https://api.revelator.com/publishers/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"publisherIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} curl -X POST 'https://api.revelator.com/publishers/archive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"publisherIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": false,
"errors": [
{
"code": "General.Validation",
"message": "This publisher cannot be archived because it is assigned to active track(s)."
}
]
}
]
} Unarchiving restores previously archived content and its associated entities to an active state.
/releases/unarchiveUnarchives one or more releases. This action will also unarchive all tracks, artists, composers, and labels directly associated with the release, as a release cannot contain archived tracks or link to archived entities.
Each release has an assetId. You can retrieve this ID using endpoints like GET /content/release/all or
GET /content/release/{id}.
| Parameter | Type | Description |
|---|---|---|
assetIds | array of integers | An array of assetId values for releases to unarchive. |
curl -X POST 'https://api.revelator.com/releases/unarchive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} /tracks/unarchiveUnarchives one or more tracks. This action will also unarchive all related entities like artists, composers, labels and publishers directly associated with the track.
Each track has an assetId. You can retrieve this ID using endpoints like GET /content/track/all or
GET /content/track/{id}.
| Parameter | Type | Description |
|---|---|---|
assetIds | array of integers | An array of assetId values for tracks to unarchive. |
curl -X POST 'https://api.revelator.com/tracks/unarchive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} /artists/unarchiveUnarchives one or more artists. This action will also unarchive all related labels entities directly associated with the artist.
| Parameter | Type | Description |
|---|---|---|
artistIds | array of integers | An array of artistId values for artists to unarchive. |
curl -X POST 'https://api.revelator.com/artists/unarchive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"assetIds": [ 123456]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} /labels/unarchiveUnarchives one or more labels. This action will not automatically unarchive any related entities like tracks or releases associated with the label.
| Parameter | Type | Description |
|---|---|---|
labelIds | array of integers | An array of labelId values for labels to unarchive. |
curl -X POST 'https://api.revelator.com/labels/unarchive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"labelIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} /composers/unarchiveUnarchives one or more composers. This action will not automatically unarchive any related tracks associated with the composer.
| Parameter | Type | Description |
|---|---|---|
composerIds | array of integers | An array of composerId values for composers to unarchive. |
curl -X POST 'https://api.revelator.com/composers/unarchive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"composerIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
} /publishers/unarchiveUnarchives one or more publishers. This action will not automatically unarchive any related tracks associated with the publisher.
| Parameter | Type | Description |
|---|---|---|
publisherIds | array of integers | An array of publisherId values for publishers to unarchive. |
curl -X POST 'https://api.revelator.com/publisher/unarchive' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-d '{"publisherIds": [ 123456 ]}'{
"results": [
{
"id": 123456,
"succeeded": true,
"errors": null
}
]
}