Price Tiers
Transition Period Note: While we transition to the new API, you must combine these endpoints with legacy endpoints
(e.g., POST /content/release/retail/save) to ensure the distribution workflow is completed successfully.
These endpoints allow you to retrieve available price options, fetch currently saved prices, and save new pricing selections for a release.
Pricing availability is dynamic and influenced by three factors:
- DSP Rules: specific store requirements.
- Audio Quality: file bit depth and sample rate.
- Configuration: your account’s specific price tier configuration.
Important: Apple vs. Merlin
Please note that Merlin Apple (distributorStoreId: 459) and iTunes/Apple Music (distributorStoreId: 1) are
treated as separate stores.
- Merlin Apple (459): Does not support per-release pricing tiers. It uses global default prices configured on your Merlin account level.
- iTunes/Apple Music (1): Supports per-release pricing tiers via the endpoints below.
Note: Setting prices for distributorStoreId: 1 will have no effect on releases distributed to
distributorStoreId: 459.
Pricing Rules & Logic
When setting prices, the following validation rules apply:
- Total Release Price: The price of the full release (Album) cannot exceed the sum of the prices of all individual tracks on it.
- Multi-Disc Calculation: For multi-disc releases, the album price is calculated per disc.
- Formula:
Selected Price × Disc Count - Example: If you select a tier of 7.92 for a 2-disc release, the final price sent to the DSP will be 15.84.
- Formula:
- Single Selection: You may only select one price tier per Distributor Store, Resolution Type, and Asset Type.
Audio Eligibility
The GET /supply-chain/v1/releases/{releaseId}/pricing-tiers/options endpoint returns
only the options valid for your specific audio files.
Price tiers are filtered based on the Bit Depth and Sample Rate of your uploaded tracks.
| Resolution Type | Min Bit Depth | Min Sample Rate |
|---|---|---|
| Standard (1) | 16 bit | 44,100 Hz |
| High-Res (2) | 24 bit | 44,100 Hz |
| HD2 (3) | 24 bit | 176,400 Hz |
Constraint: If any track in the release does not meet the minimum requirement for a specific resolution type, that resolution’s price tiers will be excluded from the available options for the entire release.
Get Pricing Options
/supply-chain/v1/releases/{releaseId}/pricing-tiers/options Retrieves all valid pricing tiers for a release based on its audio quality and DSP configuration. Use the priceTierId from this response to set prices later.
Path Parameters
| Parameter | Description |
|---|---|
releaseId * integer | - |
Responses
object[] distributorStoreId integer currencyCode string trackPrices PriceResult[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType Standard, HighResolution, HD2 releasePrices PriceResult[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType Standard, HighResolution, HD2 /supply-chain/v1/releases/{releaseId}/pricing-tiers/options curl -X GET "https://platform.revelator.com/supply-chain/v1/releases/822602/pricing-tiers/options" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" curl -X GET "https://platform.revelator.com/supply-chain/v1/releases/822602/pricing-tiers/options" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" Example response 200
[
{
"distributorStoreId": 17,
"currencyCode": "USD",
"trackPrices": [
{
"priceTierId": 971,
"name": "Back",
"price": 0.69,
"code": "ID_T1",
"isDefault": false,
"resolutionType": "standard"
},
{
"priceTierId": 972,
"name": "Mid (Default)",
"price": 0.99,
"code": "ID_T3",
"isDefault": true,
"resolutionType": "standard"
}
],
"releasePrices": [
{
"priceTierId": 966,
"name": "Back",
"price": 7.92,
"code": "ID_A6",
"isDefault": false,
"resolutionType": "standard"
},
{
"priceTierId": 967,
"name": "Mid (Default)",
"price": 8.91,
"code": "ID_A7",
"isDefault": true,
"resolutionType": "standard"
}
]
}
] [
{
"distributorStoreId": 17,
"currencyCode": "USD",
"trackPrices": [
{
"priceTierId": 971,
"name": "Back",
"price": 0.69,
"code": "ID_T1",
"isDefault": false,
"resolutionType": "standard"
},
{
"priceTierId": 972,
"name": "Mid (Default)",
"price": 0.99,
"code": "ID_T3",
"isDefault": true,
"resolutionType": "standard"
}
],
"releasePrices": [
{
"priceTierId": 966,
"name": "Back",
"price": 7.92,
"code": "ID_A6",
"isDefault": false,
"resolutionType": "standard"
},
{
"priceTierId": 967,
"name": "Mid (Default)",
"price": 8.91,
"code": "ID_A7",
"isDefault": true,
"resolutionType": "standard"
}
]
}
] Get Saved Pricing Tiers
/supply-chain/v1/releases/{releaseId}/pricing-tiers Returns the list of pricing selections currently saved for this release.
Path Parameters
| Parameter | Description |
|---|---|
releaseId * integer | - |
Responses
object[] distributorStoreId integer currencyCode string trackPrices PriceResult[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType Standard, HighResolution, HD2 releasePrices PriceResult[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType Standard, HighResolution, HD2 /supply-chain/v1/releases/{releaseId}/pricing-tiers curl -X GET "https://platform.revelator.com/supply-chain/v1/releases/822602/pricing-tiers" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" curl -X GET "https://platform.revelator.com/supply-chain/v1/releases/822602/pricing-tiers" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" Example response 200
[
{
"distributorStoreId": 17,
"currencyCode": "USD",
"trackPrices": [
{
"priceTierId": 972,
"name": "Mid (Default)",
"price": 0.99,
"code": "ID_T3",
"isDefault": true,
"resolutionType": "standard"
}
],
"releasePrices": []
}
] [
{
"distributorStoreId": 17,
"currencyCode": "USD",
"trackPrices": [
{
"priceTierId": 972,
"name": "Mid (Default)",
"price": 0.99,
"code": "ID_T3",
"isDefault": true,
"resolutionType": "standard"
}
],
"releasePrices": []
}
] Set Pricing Tiers
/supply-chain/v1/releases/{releaseId}/pricing-tiers Saves the pricing configuration. The request body must follow the same structure as the GET response, grouping prices by Distributor Store.
Path Parameters
| Parameter | Description |
|---|---|
releaseId * integer | ID of the release for which you want to set pricing tiers. |
Request Body *
object[] distributorStoreId integer trackPrices PriceRequest[] priceTierId integer releasePrices PriceRequest[] priceTierId integer Responses
boolean /supply-chain/v1/releases/{releaseId}/pricing-tiers curl -X PUT https://platform.revelator.com/supply-chain/v1/releases/822602/pricing-tiers \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"distributorStoreId": 17,
"trackPrices": [
{
"priceTierId": 972
}
],
"releasePrices": [
{
"priceTierId": 914
}
]
}
]' curl -X PUT https://platform.revelator.com/supply-chain/v1/releases/822602/pricing-tiers \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"distributorStoreId": 17,
"trackPrices": [
{
"priceTierId": 972
}
],
"releasePrices": [
{
"priceTierId": 914
}
]
}
]' Example response 200
true true