Skip to main content
GET
/
product
/
summary
Get Product Summary
curl --request GET \
  --url https://api.royalti.io/product/summary \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.royalti.io/product/summary"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.royalti.io/product/summary', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.royalti.io/product/summary",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.royalti.io/product/summary"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.royalti.io/product/summary")
  .header("Authorization", "Bearer <token>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.royalti.io/product/summary")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "message": "success",
  "summary": {
    "total": 150,
    "byStatus": {
      "Live": 120,
      "Taken Down": 15,
      "Scheduled": 10,
      "Pending": 3,
      "Error": 2
    },
    "byFormat": {
      "Single": 80,
      "EP": 45,
      "Album": 20,
      "LP": 5
    },
    "byType": {
      "Audio": 140,
      "Video": 8,
      "Ringtone": 2
    },
    "revenue": {
      "totalCount": 5000000,
      "totalRoyalty": 45000.5
    }
  }
}
{
  "success": false,
  "error": {
    "code": "<string>",
    "message": "<string>",
    "details": [
      "<string>"
    ]
  }
}
{
  "success": false,
  "error": {
    "code": "<string>",
    "message": "<string>",
    "details": [
      "<string>"
    ]
  }
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

/product/summary Description: The /product/summary endpoint retrieves aggregated statistics for all products in a tenant, including counts by status, format, and type, plus revenue data from ProductStats. Role-Based Access:
  • Admin/Owner: See summary for all products in the tenant
  • Other Users: See summary only for products associated with their artists
Method: GET Response Data:
FieldTypeDescription
totalintegerTotal number of products
byStatusobjectCount of products by status (Live, Taken Down, Scheduled, Pending, Error)
byFormatobjectCount of products by format (Single, EP, Album, LP)
byTypeobjectCount of products by type (Audio, Video, Ringtone)
revenue.totalCountintegerTotal count/streams from ProductStats
revenue.totalRoyaltynumberTotal royalty amount from ProductStats
Query Parameters:
ParameterTypeDescription
startDate (Optional)stringFilter products created from this date (inclusive)
endDate (Optional)stringFilter products created to this date (inclusive)
status (Optional)stringFilter by product status
format (Optional)stringFilter by product format
type (Optional)stringFilter by product type

Code Examples

const response = await fetch('https://api.royalti.io/product/summary', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${token}`,
  },
});

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

response = requests.get(
  'https://api.royalti.io/product/summary',
  headers={
    'Authorization': f'Bearer {token}'
  },
)

data = response.json()
print(data)
curl -X GET https://api.royalti.io/product/summary \
  -H "Authorization: Bearer YOUR_TOKEN" \

Authorizations

Authorization
string
header
required

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

Query Parameters

startDate
string<date>

Filter products created from this date (inclusive)

endDate
string<date>

Filter products created to this date (inclusive)

status
enum<string>

Filter by product status

Available options:
Live,
Taken Down,
Scheduled,
Pending,
Error
format
enum<string>

Filter by product format

Available options:
Single,
EP,
Album,
LP
type
enum<string>

Filter by product type

Available options:
Audio,
Video,
Ringtone

Response

Success

message
string
Example:

"success"

summary
object