draft to delivered) before it reaches digital stores and streaming platforms. You manage release-level metadata here, including UPC, territory rights, and label attribution.
The Release Object
string
Unique identifier for the release. Prefixed with
rel_.string
The commercial title of the release as it will appear in stores.
array
An ordered array of artist objects associated with this release.
string
The commercial release date in ISO 8601 format (
YYYY-MM-DD).string
The name of the record label or rights holder to display on storefronts.
string
The Universal Product Code (UPC) assigned to this release. If omitted on creation, the platform auto-assigns one.
array
An array of ISO 3166-1 alpha-2 country codes defining where the release is licensed for distribution. Pass
["WORLD"] to indicate worldwide rights.enum
The current lifecycle state of the release. Possible values:
draft, submitted, delivered, rejected.string
ISO 8601 timestamp of when the release was created.
string
ISO 8601 timestamp of the most recent update to the release record.
POST /v1/releases
Create a new release. All newly created releases start indraft status, giving you time to attach tracks and assets before submission. You must provide at least a title, one entry in artists, and a release_date to create a valid draft.
Request parameters
string
required
The commercial title of the release. Maximum 500 characters.
array
required
An ordered array of artist objects. At least one artist with
role: "main" is required.string
required
The intended commercial release date in ISO 8601 format (
YYYY-MM-DD). Must be a future date at submission time.string
The label or rights-holder name to display on storefronts. Defaults to the label name configured on your UMW account.
array
Array of ISO 3166-1 alpha-2 country codes. Defaults to
["WORLD"] if omitted.string
A valid 12-digit UPC. If omitted, the platform automatically assigns a UPC from your allocated pool.
Example request
Example response
201 Created
GET /v1/releases/{release_id}
Retrieve the full details of a single release by its ID.Path parameters
string
required
The unique identifier of the release. Example:
rel_01HXK3AB7NMCPQ2XYZ9WD4EF5.Example request
cURL
Example response
200 OK
PATCH /v1/releases/{release_id}
Update the metadata of an existing release. You can modify any combination of the fields below in a single request — only the fields you include are changed.Path parameters
string
required
The unique identifier of the release to update.
Request parameters
string
Updated commercial title for the release.
string
Updated commercial release date in ISO 8601 format (
YYYY-MM-DD).array
Replacement array of ISO 3166-1 alpha-2 territory codes. This field is replaced in full — it is not merged with the existing value.
string
Updated label or rights-holder name.
string
The ID of a
ready artwork asset to associate with this release. See the Assets API for upload instructions. This artwork is delivered to all storefronts alongside the release’s tracks.Example request
Example response
200 OK
POST /v1/releases/{release_id}/submit
Submit a release for delivery review. Once submitted, the UMW platform validates all attached tracks and assets and routes the release to the delivery pipeline for store ingestion. The release status transitions fromdraft to submitted upon a successful call.
Before submitting, ensure that:
- At least one track is attached to the release
- Every attached track has an
audio_asset_idpointing to areadyasset - The release has an artwork asset in
readystatus - The
release_dateis in the future
Path parameters
string
required
The unique identifier of the release to submit.
Example request
cURL
Example response
200 OK
GET /v1/releases
Retrieve a paginated list of releases in your catalog. Results are returned in reverse chronological order bycreated_at. Use the status filter to narrow results to a specific lifecycle stage, and use cursor-based pagination to page through large catalogs efficiently.
Query parameters
string
Filter results to releases matching the given status. Accepted values:
draft, submitted, delivered, rejected. Omit to return releases of all statuses.integer
The number of results to return per page. Defaults to
20. Maximum value is 100.string
An opaque pagination cursor returned as
next_cursor in a previous response. Pass this value to retrieve the next page of results.Example request
cURL
Example response
200 OK
When
has_more is false, you have reached the last page of results. The next_cursor field will be null.