Skip to main content
POST
/
revenue
Create Revenue
curl --request POST \
  --url https://api.royalti.io/revenue/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "Streaming Revenue - January 2024",
  "amount": 2500.5,
  "currency": "USD",
  "source": "streaming",
  "transactionDate": "2024-01-15T10:30:00Z",
  "artist": "artist-uuid-123",
  "asset": "asset-uuid-456",
  "splits": [
    {
      "user": "user-uuid-1",
      "percentage": 60,
      "amount": 1500.3
    },
    {
      "user": "user-uuid-2",
      "percentage": 40,
      "amount": 1000.2
    }
  ],
  "metadata": {
    "platform": "Spotify",
    "region": "US",
    "period": "2024-01"
  },
  "memo": "Monthly streaming revenue distribution"
}
'
{
  "message": "Revenue recorded with splits",
  "revenue": {
    "id": "revenue-uuid-123",
    "title": "Streaming Revenue - January 2024",
    "amount": 2500.5,
    "currency": "USD",
    "source": "streaming",
    "transactionDate": "2024-01-15T10:30:00Z",
    "createdAt": "2024-01-15T10:30:00Z",
    "updatedAt": "2024-01-15T10:30:00Z"
  }
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

Create Revenue Description:
The /revenue/ endpoint allows creation of revenue records with detailed information including source, amount, splits, and associated metadata.
Method:
POST
Request Payload:
ParameterTypeDescription
titlestringTitle/description of the revenue
amountnumberRevenue amount
currencystringCurrency code (e.g., USD, EUR)
sourcestringSource of the revenue (e.g., streaming, sales)
transactionDatestringDate of the revenue transaction
artiststringAssociated artist ID
assetstringAssociated asset ID
productstringAssociated product ID
splitsarrayRevenue split information
metadataobjectAdditional metadata
memostringAdditional notes

Code Examples

const response = await fetch('https://api.royalti.io/revenue/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "title": "sample-title",
    "amount": 1,
    "currency": "sample-currency",
    "source": "sample-source",
    "transactionDate": "2024-01-21T12:00:00Z",
    "artist": "sample-artist",
    "asset": "sample-asset",
    "product": "sample-product",
    "splits": [
      {
        "user": "sample-user",
        "percentage": 1,
        "amount": 1
      }
    ],
    "metadata": {},
    "memo": "sample-memo"
  })
});

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

Authorizations

Authorization
string
header
required

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

Body

application/json
title
string
required

Title/description of the revenue

amount
number
required

Revenue amount

currency
string
default:USD
required

Currency code (e.g., USD, EUR)

source
enum<string>
required

Source of the revenue

Available options:
streaming,
sales,
licensing,
sync,
merchandise,
live_performance,
other
transactionDate
string<date-time>
required

Date of the revenue transaction

artist
string

Associated artist ID

asset
string

Associated asset ID

product
string

Associated product ID

splits
object[]

Revenue split information

metadata
object

Additional metadata

memo
string

Additional notes

Response

Success

message
string
revenue
object