Skip to main content

Overview

The Artist Dashboard API provides programmatic access to producer analytics displayed in the Producer Dashboard. These endpoints return plays, followers, upload insights, and collaboration data for authenticated producers.
Base URL: https://open.beatpass.ca/api/v1Authentication: All endpoints require an authenticated session. The user must have a producer profile (be linked to an artist).

Authentication Requirements

All dashboard endpoints require:
  • Authenticated session: User must be logged in via the standard Sanctum auth flow
  • Producer profile: User must have an associated artist profile (created via the Producer Program)
  • Upload access: Some endpoints (upload insights) additionally require the artist profile to have upload access enabled

Endpoints

Artist Profile Summary

Endpoint: GET /api/v1/artist/profile Returns the active artist profile associated with the authenticated user.

Response Fields

id
integer
required
Artist ID associated with the current user.
name
string
required
Artist display name.
upload_access
boolean
required
Whether the profile can upload/manage tracks (gates upload health widgets).
total_tracks
integer
required
Count of tracks linked to the artist.
total_plays
integer
required
Aggregate plays across all linked tracks.
member_since
string
required
ISO timestamp when the artist profile was created.
bio
string
Current bio text.
website
string
Website URL if set.
Social handles/URLs (twitter, instagram, soundcloud, youtube).

Dashboard Stats

Endpoint: GET /api/v1/artist/dashboard-stats Retrieves headline metrics used on the Backstage dashboard.

Response Fields

total_tracks
integer
required
How many tracks the artist has published.
total_plays
integer
required
Total lifetime plays.
total_contribution
number
required
Sum of contribution values across tracks (used for earnings splits).
recent_uploads
integer
required
Tracks uploaded in the last 30 days.
play_growth_percentage
number
required
Month-over-month play growth percentage.
top_track
object
average_plays_per_track
integer
required
Rounded average plays per track.
tracks_with_plays
integer
required
How many tracks have at least one play.

Track Performance

Endpoint: GET /api/v1/artist/track-performance Returns the most recent 20 tracks with their performance signals for timeline charts.

Response Fields (Array)

[].track_id
integer
required
Track ID.
[].track_name
string
required
Track title.
[].plays
integer
required
Total plays for the track.
[].contribution_value
number
required
Contribution value for the track.
[].months_since_upload
integer
required
Age of the track in months (used for cohorting performance).
[].upload_date
string
required
Upload timestamp.
[].last_updated
string
When contribution was last recalculated (null if pending).

Upload Insights

Endpoint: GET /api/v1/artist/upload-insights Provides upload cadence analysis and recommendations for optimal release timing.

Response Fields

total_uploads
integer
required
Total tracks uploaded by the artist.
uploads_this_month
integer
required
Uploads in the current calendar month.
uploads_last_month
integer
required
Uploads in the previous calendar month.
average_plays_per_upload
integer
required
Rounded average plays per upload.
best_performing_month
object
upload_frequency_days
integer
Average days between uploads (null when fewer than two uploads exist).
Text recommendation for how often to upload next.
Returns 403 Forbidden if upload_access is false on the artist profile.

Collaborative Tracks

Endpoint: GET /api/v1/artist/{artist}/collaborative-tracks Retrieves tracks where the artist has collaborated with other producers.

Path Parameters

artist
integer
required
Artist ID to fetch collaborations for.

Response Fields (Array)

[].track_id
integer
required
Collaborative track ID.
[].title
string
required
Track name.
[].primary_artist
string
required
Primary artist credit.
[].collaborators
array
required
List of collaborating artists on the track.
[].plays
integer
Play count for the collaborative track.

Integration Example

// Example: Fetch dashboard stats for authenticated producer
// Note: Uses session cookies, not Bearer tokens
async function getDashboardStats() {
  const response = await fetch('https://open.beatpass.ca/api/v1/artist/dashboard-stats', {
    method: 'GET',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    credentials: 'include' // Include session cookies
  });
  
  if (!response.ok) {
    throw new Error(`Dashboard API error: ${response.status}`);
  }
  
  const stats = await response.json();
  return stats;
}

Last modified on December 5, 2025