Skip to main content
POST
/
product
/
{id}
/
deliveries
Add Product Delivery
curl --request POST \
  --url https://api.royalti.io/product/{id}/deliveries \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "providers": [
    "spotify-ddex-sftp",
    "apple-ddex-api"
  ],
  "autoDeliver": true,
  "settings": {
    "releaseType": "Album"
  }
}
'
{
  "status": "success",
  "message": "Deliveries initiated successfully",
  "data": {
    "productId": "<string>",
    "upc": "<string>",
    "deliveries": [
      {
        "provider": "<string>",
        "status": "<string>",
        "deliveryId": "<string>"
      }
    ]
  }
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

/product//deliveries Description: Create a new delivery for a product to FUGA platform. Can deliver to multiple providers simultaneously. Method: POST Parameters:
ParameterTypeDescription
idstringProduct ID (path parameter)
providersarrayArray of provider IDs to deliver to
autoDeliverbooleanAutomatically start delivery (default: true)
settingsobjectDelivery settings (priority, notifications, etc.)
Validation Requirements:
  • Product must have a UPC code
  • Product must have at least 1 asset with valid audio file
  • Asset must have ISRC code
  • “DDEX & Deliveries” addon must be enabled for tenant
  • Provider must be configured and active
  • Maximum 3 retry attempts per delivery (configurable)
Required DDEX Metadata:
  • Product: catalogTier, territories
  • Assets: valid audio format (WAV, FLAC, MP3)
  • All required fields as per provider configuration
Process:
  1. Validates product exists and has required assets
  2. Checks addon and provider access
  3. Generates CSV metadata in FUGA format
  4. Retrieves and converts audio/image files
  5. Uploads files via FTP
  6. Returns delivery tracking information

Code Examples

const response = await fetch('https://api.royalti.io/product/example-id/deliveries', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "providers": [
      "fuga-csv-ftp"
    ],
    "autoDeliver": true
  })
});

const data = await response.json();
console.log(data);

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Path Parameters

id
string
required

Product ID

Body

application/json
providers
required

Single provider ID or array of provider IDs

autoDeliver
boolean
default:true

Whether to automatically deliver or just validate

settings
object

Optional DDEX settings override

Response

Deliveries initiated successfully

status
string
Example:

"success"

message
string
Example:

"Deliveries initiated successfully"

data
object