Price Tiers
Transition Period Note: While we transition to the V2.0 API, you must combine these endpoints with V1.0 API
endpoints (e.g., POST /content/release/retail/save) to ensure the distribution workflow is completed successfully.
When using both API versions together, V1.0 endpoints should always be called before V2.0 endpoints. Calling V1.0 endpoints afterward may unintentionally overwrite or remove data previously configured through V2.0 endpoints.
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 PriceModel[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType releasePrices PriceModel[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType /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 PriceModel[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType releasePrices PriceModel[] priceTierId integer name string | null price number code string | null isDefault boolean resolutionType PriceResolutionType /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