Revelator Logo API

Labels

A label is a metadata entity representing a record label, referenced from releases and artists.

Archiving Labels

A label can only be archived when all of the following conditions are met:

  • The label is not currently archived.
  • The label is not assigned to any active (unarchived) release.
  • The label is not assigned to any active (unarchived) track.
  • The label is not assigned to any active (unarchived) artist.
  • The label is not set as the default label on any client.

Warning: Any portal accounts linked to the label will immediately lose access once the label is archived. Labels that have been archived for more than 6 months can no longer be unarchived.


Create Label

POST /catalog/v1/labels

Creates a new label.

Request Body *

object
name * string
Name of the label.
description string
Label description.
logoImageId string
File ID (GUID) of the label's logo image, uploaded via the Files API.
musicStyleIds integer[]
List of music style (genre) IDs for the label. Retrieved from GET /common/lookup/musicstyles on the V1.0 API.
enterpriseId integer
The client under which the label will be created. Defaults to the caller's client when using client permissions. Required when using organization permissions.

Responses

object
labelId integer
Unique identifier for the label.
name string
Name of the label.
description string | null
Label description.
logoImageId string | null
File ID of the label's logo image.
tenantId integer
ID of the organization that owns this label.
enterpriseId integer
ID of the client that owns this label.
hasPortal boolean
Whether the label has an associated label portal account.
archivedAt string (date-time) | null
UTC timestamp when the label was archived. null if the label is active.
archivedBy string | null
ID of the user who archived the label. null if the label is active.
creationDate string (date-time)
UTC timestamp when the label was created.
createdBy string
ID of the user who created the label.
lastUpdateDate string (date-time) | null
UTC timestamp of the most recent update. Set to the creation timestamp when the label has never been explicitly updated.
lastUpdatedBy string | null
ID of the user credited with the most recent change. Set to the creating user at creation, then updated on each subsequent edit.
musicStyleIds integer[] | null
Music style (genre) IDs for the label.
POST /catalog/v1/labels
curl -X POST "https://platform.revelator.com/catalog/v1/labels" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "name": "Example Label",
  "description": "Independent label focused on electronic and ambient music.",
  "logoImageId": "a1b2c3d4-0000-4e5f-a678-426614174000",
  "musicStyleIds": [17]
}'
Example response 200
{
"labelId": 120,
"name": "Example Label",
"description": "Independent label focused on electronic and ambient music.",
"logoImageId": "a1b2c3d4-0000-4e5f-a678-426614174000",
"musicStyleIds": [17],
"hasPortal": false,
"tenantId": 2001,
"enterpriseId": 3001,
"creationDate": "2026-01-10T12:03:43Z",
"createdBy": "b3f1a2c4-1111-4e5f-a678-426614174000",
"lastUpdateDate": "2026-01-10T12:03:43Z",
"lastUpdatedBy": "b3f1a2c4-1111-4e5f-a678-426614174000",
"archivedAt": null,
"archivedBy": null
}

Get Label

GET /catalog/v1/labels/{labelId}

Retrieves a label by its ID.

Path Parameters

Parameter Description
labelId * integer

The ID of the label.

Responses

object
labelId integer
Unique identifier for the label.
name string
Name of the label.
description string | null
Label description.
logoImageId string | null
File ID of the label's logo image.
tenantId integer
ID of the organization that owns this label.
enterpriseId integer
ID of the client that owns this label.
hasPortal boolean
Whether the label has an associated label portal account.
archivedAt string (date-time) | null
UTC timestamp when the label was archived. null if the label is active.
archivedBy string | null
ID of the user who archived the label. null if the label is active.
creationDate string (date-time)
UTC timestamp when the label was created.
createdBy string
ID of the user who created the label.
lastUpdateDate string (date-time) | null
UTC timestamp of the most recent update. Set to the creation timestamp when the label has never been explicitly updated.
lastUpdatedBy string | null
ID of the user credited with the most recent change. Set to the creating user at creation, then updated on each subsequent edit.
musicStyleIds integer[] | null
Music style (genre) IDs for the label.
GET /catalog/v1/labels/{labelId}
curl -X GET "https://platform.revelator.com/catalog/v1/labels/120" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example response 200
{
"labelId": 120,
"name": "Example Label",
"description": "Independent label focused on electronic and ambient music.",
"logoImageId": "a1b2c3d4-0000-4e5f-a678-426614174000",
"musicStyleIds": [17],
"hasPortal": false,
"tenantId": 2001,
"enterpriseId": 3001,
"creationDate": "2026-01-10T12:03:43Z",
"createdBy": "b3f1a2c4-1111-4e5f-a678-426614174000",
"lastUpdateDate": "2026-02-01T08:20:10Z",
"lastUpdatedBy": "b3f1a2c4-1111-4e5f-a678-426614174000",
"archivedAt": null,
"archivedBy": null
}

List Labels

GET /catalog/v1/labels

Returns a paginated list of labels based on filters and sorting options.

Query Parameters

Parameter Description
enterpriseIds integer[]

Filter by one or more client IDs. Maximum 100 IDs per request.

archived boolean

Filter by archive state (true for archived, false for active).

archivedDateFrom string (date-time)

Include labels archived on or after this UTC date-time.

archivedDateTo string (date-time)

Include labels archived on or before this UTC date-time.

creationDateFrom string (date-time)

Include labels created on or after this UTC date-time.

creationDateTo string (date-time)

Include labels created on or before this UTC date-time.

lastUpdateDateFrom string (date-time)

Include labels updated on or after this UTC date-time.

lastUpdateDateTo string (date-time)

Include labels updated on or before this UTC date-time.

hasPortal boolean

Filter by portal access (true for labels with a portal, false for those without).

searchText string

Free-text search applied to label name.

pageNumber integer

Page number for paginated results.

pageSize integer

Number of items per page. Maximum 204.

orderByProperty string

Property name used for sorting.

Examples: labelId, name, creationDate
orderByDescending boolean

Set to true for descending order, false for ascending.

Responses

object
pageNumber integer
Current page number.
pageSize integer
Number of items per page.
totalItemsCount integer
Total number of labels matching the filters.
totalPagesCount number
Total number of pages.
labelId integer
Unique identifier for the label.
name string
Name of the label.
logoImageId string | null
File ID of the label's logo image.
tenantId integer
ID of the organization that owns this label.
enterpriseId integer
ID of the client that owns this label.
enterpriseName string
Name of the client that owns this label.
hasPortal boolean
Whether the label has an associated label portal account.
archivedAt string (date-time) | null
UTC timestamp when the label was archived. null if the label is active.
creationDate string (date-time)
UTC timestamp when the label was created.
GET /catalog/v1/labels
curl -X GET "https://platform.revelator.com/catalog/v1/labels?pageNumber=1&pageSize=20&orderByProperty=name&orderByDescending=false" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example response 200
{
"pageNumber": 1,
"pageSize": 20,
"totalItemsCount": 1,
"totalPagesCount": 1,
"items": [
  {
    "labelId": 120,
    "name": "Example Label",
    "logoImageId": "a1b2c3d4-0000-4e5f-a678-426614174000",
    "tenantId": 2001,
    "enterpriseId": 3001,
    "enterpriseName": "Client Name",
    "hasPortal": false,
    "creationDate": "2026-01-10T12:03:43Z",
    "archivedAt": null
  }
]
}

Update Label

PUT /catalog/v1/labels/{labelId}

Updates an existing label by its ID.

Path Parameters

Parameter Description
labelId * integer

The ID of the label to update.

Request Body *

object
name string
Name of the label.
description string
Label description.
logoImageId string
File ID (GUID) of the label's logo image, uploaded via the Files API.
musicStyleIds integer[]
List of music style (genre) IDs for the label. Retrieved from GET /common/lookup/musicstyles on the V1.0 API.

Responses

object
labelId integer
Unique identifier for the label.
name string
Name of the label.
description string | null
Label description.
logoImageId string | null
File ID of the label's logo image.
tenantId integer
ID of the organization that owns this label.
enterpriseId integer
ID of the client that owns this label.
hasPortal boolean
Whether the label has an associated label portal account.
archivedAt string (date-time) | null
UTC timestamp when the label was archived. null if the label is active.
archivedBy string | null
ID of the user who archived the label. null if the label is active.
creationDate string (date-time)
UTC timestamp when the label was created.
createdBy string
ID of the user who created the label.
lastUpdateDate string (date-time) | null
UTC timestamp of the most recent update.
lastUpdatedBy string | null
ID of the user who last updated the label.
musicStyleIds integer[] | null
Music style (genre) IDs for the label.
PUT /catalog/v1/labels/{labelId}
curl -X PUT "https://platform.revelator.com/catalog/v1/labels/120" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "name": "Example Label",
  "description": "Independent label focused on electronic and ambient music. Now also releasing house music.",
  "logoImageId": "a1b2c3d4-0000-4e5f-a678-426614174000",
  "musicStyleIds": [17, 22]
}'
Example response 200
{
"labelId": 120,
"name": "Example Label",
"description": "Independent label focused on electronic and ambient music. Now also releasing house music.",
"logoImageId": "a1b2c3d4-0000-4e5f-a678-426614174000",
"musicStyleIds": [17, 22],
"hasPortal": false,
"tenantId": 2001,
"enterpriseId": 3001,
"creationDate": "2026-01-10T12:03:43Z",
"createdBy": "b3f1a2c4-1111-4e5f-a678-426614174000",
"lastUpdateDate": "2026-06-12T09:00:00Z",
"lastUpdatedBy": "b3f1a2c4-1111-4e5f-a678-426614174000",
"archivedAt": null,
"archivedBy": null
}

Archive Labels

POST /catalog/v1/labels/archive

Archives labels in batch by label IDs.

Request Body *

object
Batch archive request payload.
labelIds * integer[]
List of label IDs to archive. Maximum 100 IDs per request.

Responses

object
id integer
Label ID from the request.
succeeded boolean
Whether the archive operation succeeded for this label.
code string
Error code.
Examples: General.NotFound, General.Validation
message string
Human-readable error message.
POST /catalog/v1/labels/archive
curl -X POST "https://platform.revelator.com/catalog/v1/labels/archive" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "labelIds": [120, 121]
}'
Example response 200
{
"results": [
  {
    "id": 120,
    "succeeded": true,
    "errors": null
  },
  {
    "id": 121,
    "succeeded": true,
    "errors": null
  }
]
}

Unarchive Labels

POST /catalog/v1/labels/unarchive

Unarchives labels in batch by label IDs. Labels archived for more than 6 months can no longer be unarchived.

Request Body *

object
Batch unarchive request payload.
labelIds * integer[]
List of label IDs to unarchive. Maximum 100 IDs per request.

Responses

object
id integer
Label ID from the request.
succeeded boolean
Whether the unarchive operation succeeded for this label.
code string
Error code.
Examples: General.NotFound, General.Validation
message string
Human-readable error message.
POST /catalog/v1/labels/unarchive
curl -X POST "https://platform.revelator.com/catalog/v1/labels/unarchive" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "labelIds": [120, 121]
}'
Example response 200
{
"results": [
  {
    "id": 120,
    "succeeded": true,
    "errors": null
  },
  {
    "id": 121,
    "succeeded": true,
    "errors": null
  }
]
}