Skip to main content

Overview

FUGA is a leading music distribution platform that delivers catalog to 400+ Digital Service Providers (DSPs) worldwide. The Royalti.io API integrates with FUGA using CSV metadata files and FTP file uploads, enabling automated delivery of releases to streaming platforms.

Key Features

  • Automated CSV Generation - API automatically formats your catalog into FUGA’s CSV template
  • FTP Upload Management - Handles file uploads including audio files and artwork
  • Batch Delivery - Deliver multiple products simultaneously
  • Validation - Pre-delivery validation to catch errors early
  • Monitoring - Built-in health checks and delivery analytics

Authentication

FUGA delivery endpoints require authentication and the “DDEX & Deliveries” addon to be enabled.

FUGA Workflow

1

Configure FUGA Provider

Set up your FUGA FTP credentials.
All FTP credentials are automatically encrypted at rest. No plaintext credentials are stored in the database.
2

Prepare Product Metadata

Ensure your product has all required fields for FUGA delivery:Required Product Fields:
  • UPC - 12 or 13 digits (no ‘auto’ value)
  • Title - Album title (without version)
  • Display Artist - Primary artists (no featuring artists)
  • Release Date - Consumer street date (YYYY-MM-DD)
  • Label - Label name
  • Language - 2-letter ISO code (e.g., ‘en’, ‘es’)
Required DDEX Metadata:
  • catalogTier - One of: ‘Back’, ‘Mid’, ‘Front’, ‘Premium’
  • territories - Array of territory codes or [‘World’]
Copyright Line Fields:
  • c_line_year - Copyright year (©) - defaults to current year if not provided
  • p_line_year - Phonogram year (℗) - defaults to current year if not provided
  • copyright - Copyright holder name for C-Line
  • publisher - Sound recording owner for P-Line
If c_line_year or p_line_year are not provided, the system automatically uses the current year. For reissues, you should explicitly set these to the original release year.
Node.js
Reissue Example:
Node.js
3

Create Product with Delivery Flag

Use the delivery flag feature to automatically queue FUGA delivery:
The delivery flag creates the product AND queues FUGA delivery in a single API call. The system automatically generates the CSV file and schedules the FTP upload.
4

Manual Delivery (Alternative)

Or deliver an existing product manually:
Node.js
5

Monitor Delivery Status

Track delivery progress:
Node.js
Delivery Statuses:
  • pending - Queued for delivery
  • processing - Uploading files to FTP
  • delivered - Successfully uploaded to FUGA
  • confirmed - FUGA acknowledged receipt
  • completed - Delivered to DSPs
  • failed - Delivery failed (check logs for errors)

CSV Metadata Format

FUGA uses a CSV template with 50+ fields for catalog metadata. The Royalti.io API automatically generates this CSV from your product and asset data.

Product-Level Fields (Album)

The API automatically maps your product fields to FUGA’s CSV format. Fields like c_line_year and p_line_year default to the current year if not provided.

Track-Level Fields (Assets)

The API automatically formats your product/asset data into FUGA’s CSV format. You don’t need to manually create CSV files.

FTP Upload

The delivery system automatically uploads files to FUGA’s FTP server in the following structure:

Audio File Requirements

  • Formats: WAV (recommended), FLAC, MP3 (320kbps)
  • Sample Rate: 44.1kHz or 48kHz
  • Bit Depth: 16-bit or 24-bit (WAV/FLAC)
  • Naming: {UPC}_{volume}_{track}.{ext} (e.g., 012345678901_01_01.wav)

Cover Art Requirements

  • Format: JPG or PNG
  • Dimensions: Minimum 3000x3000 pixels (square)
  • File Size: Maximum 10MB
  • Color Mode: RGB

Validation Requirements

Before delivery, the system validates your product:
  • Must be 12 or 13 digits
  • Cannot be ‘auto’ value
  • Leading zeros preserved
  • No special characters
  • Must be 12 characters
  • No dashes or spaces
  • Format: XX-XXX-YY-NNNNN (stored without dashes)
  • Valid audio format (WAV, FLAC, MP3)
  • Minimum quality requirements met
  • File exists in storage
  • File size within limits
  • All required fields present
  • Genre from approved list
  • Valid territory codes
  • Parental advisory specified

Best Practices

Territory Management

Node.js

Catalog Tier Selection

  • Premium - New releases, major label artists
  • Front - Standard new releases
  • Mid - Catalog releases (1-5 years old)
  • Back - Older catalog (5+ years)

File Naming Convention

Node.js

Error Handling

Implement comprehensive validation and error handling:
Node.js

Batch Delivery

Deliver multiple products simultaneously:
Node.js

Monitoring and Analytics

Health Metrics

Monitor FUGA delivery health:
Node.js

FTP Connection Health

Check FTP connectivity:
Node.js

Stuck Deliveries

Find deliveries that need attention:
Node.js

Troubleshooting

Possible causes:
  • Queue processor not running
  • FTP credentials invalid
  • Rate limit exceeded
Solution:
Error: “Product has invalid UPC format for FUGA delivery”Solution:
  • Ensure UPC is 12 or 13 digits
  • Remove any dashes or spaces
  • UPC cannot be ‘auto’ - generate a real UPC
  • Preserve leading zeros
Error: “Original file name must exist on FTP server”Solution:
  • Ensure audio files are uploaded to storage
  • Verify file naming matches CSV metadata
  • Check file format is supported (WAV, FLAC, MP3)