Skip to main content

Overview

The Content Management API provides full CRUD operations for all content types on BeatPass — tracks, albums, artists, playlists, lyrics, and supporting features like audio fingerprinting, Audio Recon, and cover art generation.
Base URL: https://open.beatpass.ca/api/v1Authentication: Read operations use optional auth (enhanced data when logged in). Write operations require authentication.

Tracks

List Tracks

GET /api/v1/tracks
Public endpoint. Returns enhanced data (purchase status, like status) when authenticated.

Get Track

GET /api/v1/tracks/{track}

Create Track

Upload a new track. Requires authentication.
POST /api/v1/tracks

Update Track

PUT /api/v1/tracks/{track}

Delete Track(s)

DELETE /api/v1/tracks/{ids}
ids
string
required
Comma-separated track IDs to delete.

Download Track

GET /api/v1/tracks/{track}/download

Get Waveform Data

GET /api/v1/tracks/{track}/wave

Batch Waveform Data

POST /api/v1/tracks/wave-batch

Extract Metadata

Extract metadata from an uploaded audio file entry.
POST /api/v1/tracks/{fileEntry}/extract-metadata

Log Track Play

Record a play event for a track.
POST /api/v1/tracks/{track}/plays

Update Play Duration

Update the listen duration of an active playback.
POST /api/v1/tracks/plays/{track}/update-duration

Get Engagement Metrics

GET /api/v1/tracks/{track}/engagement-metrics

Get Producer Analytics

GET /api/v1/tracks/{track}/producer-analytics

Track Upload Flow

1

Upload Audio File

Upload the audio file via the file upload system to get a fileEntry ID.
2

Extract Metadata

Call POST /tracks/{fileEntry}/extract-metadata to parse BPM, key, duration, etc.
3

Create Track

Call POST /tracks with metadata (title, genre, tags, BPM, etc.) and the file entry reference.
4

Audio Fingerprinting

The system automatically generates an audio fingerprint for duplicate detection.
5

Published

Track is published and available on the platform.

Albums

List Albums

GET /api/v1/albums

Get Album

GET /api/v1/albums/{album}

Create Album

POST /api/v1/albums

Update Album

PUT /api/v1/albums/{album}

Delete Album(s)

DELETE /api/v1/albums/{ids}

Album Producer Analytics

GET /api/v1/albums/{album}/producer-analytics

Artists

List Artists

GET /api/v1/artists

Get Artist

GET /api/v1/artists/{artist}

Get Artist’s Tracks

GET /api/v1/artists/{artist}/tracks

Get Artist’s Albums

GET /api/v1/artists/{artist}/albums

Producer Analytics

GET /api/v1/artists/{artist}/producer-analytics

Downloads Analytics

GET /api/v1/artists/{artist}/downloads-analytics

Producer Achievements

GET /api/v1/artists/{artist}/producer-achievements

Check Ownership

Check if the authenticated user owns this artist profile.
GET /api/v1/artists/{artist}/check-ownership

Artist Credits

Professional portfolio credits (similar to Spotify credits). Allows artists to showcase their work on external releases.

List Credits

GET /api/v1/artists/{artist}/credits

Add Credit

POST /api/v1/artists/{artist}/credits

Add Album Credit

POST /api/v1/artists/{artist}/credits/album

Update Credit

PUT /api/v1/artists/{artist}/credits/{credit}

Delete Credit

DELETE /api/v1/artists/{artist}/credits/{credit}

Reorder Credits

POST /api/v1/artists/{artist}/credits/reorder

Spotify Search (for Credits)

Search Spotify catalog to link credits to releases.
GET /api/v1/credits/spotify-search

Get Spotify Album

GET /api/v1/credits/spotify-album

Credit Roles (Public)

Get the list of available credit roles (e.g., Producer, Engineer, Songwriter).
GET /api/v1/credits/roles

Track Pinning

Pin a featured track to the top of an artist’s profile.

Pin Track

POST /api/v1/artists/{artistId}/tracks/{trackId}/pin

Unpin Track

POST /api/v1/artists/{artistId}/tracks/{trackId}/unpin

Get Pinned Track

GET /api/v1/artists/{artistId}/pinned-track

Playlists

List Playlists

GET /api/v1/playlists

Get Playlist

GET /api/v1/playlists/{id}

Create Playlist

POST /api/v1/playlists

Update Playlist

PUT /api/v1/playlists/{playlist}

Delete Playlist(s)

DELETE /api/v1/playlists/{ids}

Follow Playlist

POST /api/v1/playlists/{id}/follow

Unfollow Playlist

POST /api/v1/playlists/{id}/unfollow

Get Playlist Tracks

GET /api/v1/playlists/{id}/tracks

Add Tracks

POST /api/v1/playlists/{playlist}/tracks/add

Remove Tracks

POST /api/v1/playlists/{playlist}/tracks/remove

Reorder Tracks

POST /api/v1/playlists/{playlist}/tracks/order

Playlist Collaboration

Invite Collaborator

POST /api/v1/playlists/{playlist}/invite

Accept Invitation

POST /api/v1/playlists/{playlist}/accept-invite

Decline Invitation

POST /api/v1/playlists/{playlist}/decline-invite

Remove Editor

POST /api/v1/playlists/{playlist}/remove-editor
Collaborative playlists support up to 10 editors. Invitations expire after 7 days. A 24-hour cooldown applies between re-invites.

Lyrics

List Lyrics

GET /api/v1/lyrics

Get Track Lyrics

GET /api/v1/tracks/{id}/lyrics

Create Lyrics

POST /api/v1/lyrics

Update Lyrics

PUT /api/v1/lyrics/{id}

Delete Lyrics

DELETE /api/v1/lyrics/{ids}

Audio Fingerprinting

Detect duplicate audio content using acoustic fingerprints.

Generate Fingerprint

POST /api/v1/tracks/{track}/fingerprint

Check Fingerprint Status

GET /api/v1/tracks/{track}/fingerprint/status

Check Duplicates

Check uploaded audio against existing fingerprints.
POST /api/v1/tracks/check-duplicates

Retry Failed Fingerprint

POST /api/v1/fingerprints/{fingerprint}/retry

Audio Recon

Audio Recon detects songs on streaming platforms (Spotify, YouTube, Deezer) that share audio characteristics with tracks on BeatPass. Results are available to the track’s credited producers and admins.

Get Audio Recon Matches

Retrieve detected audio similarities for a specific track. Requires authentication. Only accessible by producers credited on the track.
GET /api/v1/tracks/{track}/placements
track
integer
required
The track ID to retrieve Audio Recon matches for.
Response:
{
  "placements": [
    {
      "id": 42,
      "title": "Song Title",
      "artist_name": "Artist Name",
      "album_name": "Album Name",
      "release_date": "2025-06-15",
      "confidence_score": 95,
      "spotify_url": "https://open.spotify.com/track/...",
      "youtube_url": "https://youtube.com/watch?v=...",
      "deezer_url": "https://deezer.com/track/...",
      "created_at": "2026-02-20T12:00:00+00:00"
    }
  ],
  "total_count": 1,
  "artist_verified": true
}
placements
array
Array of detected audio similarities, sorted by confidence score (highest first).
placements[].confidence_score
integer
Audio similarity percentage (90–100). Higher scores indicate stronger matches.
placements[].spotify_url
string | null
Direct link to the matched song on Spotify, if available.
placements[].youtube_url
string | null
Direct link to the matched song on YouTube, if available.
placements[].deezer_url
string | null
Direct link to the matched song on Deezer, if available.
total_count
integer
Total number of matches returned.
artist_verified
boolean
Whether the track’s primary artist has a verified profile. Scanning requires a verified artist.
Audio Recon detects audio similarity, not confirmed placements. A match could indicate your beat was used, a shared sample, or coincidence. Always verify by listening.
ErrorCodeCause
Unauthenticated401No valid Bearer token provided
Forbidden403You are not a credited producer on this track
Not Found404Track does not exist

Cover Art

List Templates

GET /api/v1/cover-art/templates

Get Template

GET /api/v1/cover-art/templates/{template}

Preview Cover Art

Generate a preview with a template and custom parameters.
POST /api/v1/cover-art/preview

Get Matching Templates

Get templates that match specific criteria (genre, mood, etc.).
GET /api/v1/cover-art/matching-templates

Last modified on February 21, 2026