π€ Distribution Requests
Management of album distribution requests to digital platforms (DSPs)
Resource Overview
Distribution Requests represent requests to distribute albums to streaming platforms like Spotify, Apple Music, Amazon Music, etc. Each request includes territory configuration, target DSPs and process status.
/distribution-requests
distribution-requests
Owner-restricted
Schema
Required Attributes
Field | Type | Description | Validations | Editable |
---|---|---|---|---|
request-type | string | Type of distribution request | required, in:delivery,update,redelivery,takedown | β |
Auto-managed Attributes
Field | Type | Description | Auto Value | Editable |
---|---|---|---|---|
date | date | Request date | Current date | System |
status | string | Distribution status | pending | System |
Read-only Attributes
Field | Type | Description |
---|---|---|
id | string | Unique identifier |
created-at | datetime | Creation date |
updated-at | datetime | Last update date |
Relationships
Relationship | Type | Description | Required |
---|---|---|---|
album | BelongsTo | Album to distribute | Required |
countries | BelongsToMany | Target countries for distribution | Required |
dsps | BelongsToMany | Target streaming platforms | Required |
Smart Creation Logic
Album Completeness Validation
Before creating a Distribution Request, the album must be complete with all required metadata, tracks, artwork, and necessary relationships.
β Automatic Assignments
- β’ User: Auto-assigned to authenticated user
- β’ Date: Auto-assigned to current date
- β’ Status: Auto-assigned to "pending"
π Validations
- β’ Album Completeness: Validates complete metadata
- β’ Uniqueness: No duplicate requests per album
- β’ Request Type: Accepts "delivery", "update", "redelivery" and "takedown"
- β’ Update Prerequisites: Update requests require at least one delivery request with "sent" status
- β’ User Ownership: Only own albums
API Endpoints
/distribution-requests
Get list of distribution requests for the authenticated user
Query Parameters
- β’
filter[album]=1
- Filter by specific album - β’
filter[status]=pending
- Filter by status - β’
filter[request-type]=delivery
- Filter by type - β’
include=album,countries,dsps
- Include relationships - β’
page[number]=1&page[size]=20
- Pagination
Success Response
{
"data": [
{
"type": "distribution-requests",
"id": "1",
"attributes": {
"date": "2024-08-21",
"request-type": "delivery",
"status": "pending",
"created-at": "2024-08-21T10:30:00Z",
"updated-at": "2024-08-21T10:30:00Z"
},
"relationships": {
"album": {
"data": {
"type": "albums",
"id": "1"
}
}
}
},
{
"type": "distribution-requests",
"id": "2",
"attributes": {
"date": "2024-08-20",
"request-type": "delivery",
"status": "preapproved",
"created-at": "2024-08-20T15:45:00Z",
"updated-at": "2024-08-20T16:30:00Z"
},
"relationships": {
"album": {
"data": {
"type": "albums",
"id": "2"
}
}
}
}
],
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 1,
"perPage": 20,
"to": 2,
"total": 2
}
}
}
/distribution-requests/{id}
Obtener una distribution request especΓfica
Success Response
{
"data": {
"type": "distribution-requests",
"id": "1",
"attributes": {
"date": "2024-08-21",
"request-type": "delivery",
"status": "pending",
"created-at": "2024-08-21T10:30:00Z",
"updated-at": "2024-08-21T10:30:00Z",
"deleted-at": null
},
"relationships": {
"album": {
"data": {
"type": "albums",
"id": "1"
}
}
}
}
}
/distribution-requests
Crear nueva distribution request
Request Body
{
"data": {
"type": "distribution-requests",
"attributes": {
"request-type": "delivery"
},
"relationships": {
"album": {
"data": {
"type": "albums",
"id": "1"
}
}
}
}
}
Success Response
{
"data": {
"type": "distribution-requests",
"id": "3",
"attributes": {
"date": "2024-08-21",
"request-type": "delivery",
"status": "pending",
"created-at": "2024-08-21T12:00:00Z",
"updated-at": "2024-08-21T12:00:00Z",
"deleted-at": null
},
"relationships": {
"album": {
"data": {
"type": "albums",
"id": "1"
}
}
}
}
}
Distribution Flow
1. Create Request
Submit distribution request with album reference
2. Pending Status
Request awaits validation and approval
3. Preapproved
Request approved and ready for distribution
4. Sent / Rejected
Album sent to DSPs or request rejected
Distribution Status Values
Active States
- β’
pending
- Awaiting approval - β’
preapproved
- Approved and ready for distribution - β’
sent
- Successfully sent to DSPs
Error States
- β’
rejected
- Request rejected
Use Cases
π΅ Album Distribution
Distribute a completed album to all major streaming platforms
# Create distribution request for album
POST /distribution-requests
# Monitor distribution status
GET /distribution-requests/1
# Include related data
GET /distribution-requests/1?include=album,countries,dsps
π Territory Management
Control which countries and regions receive the distribution
# Get requests with country targeting
GET /distribution-requests?include=countries
# Filter by specific territories
GET /distribution-requests?filter[countries]=1,2,3
π Status Monitoring
Track distribution progress and handle approvals
# Monitor pending requests
GET /distribution-requests?filter[status]=pending
# Check sent distributions
GET /distribution-requests?filter[status]=sent
# Review rejected distributions
GET /distribution-requests?filter[status]=rejected