Create a Playlist for current user
curl --request POST \
--url https://open.beatpass.ca/api/v1/playlists \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My playlist",
"description": "<string>",
"image": "<string>",
"public": false,
"collaborative": false
}
'import requests
url = "https://open.beatpass.ca/api/v1/playlists"
payload = {
"name": "My playlist",
"description": "<string>",
"image": "<string>",
"public": False,
"collaborative": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My playlist',
description: '<string>',
image: '<string>',
public: false,
collaborative: false
})
};
fetch('https://open.beatpass.ca/api/v1/playlists', 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://open.beatpass.ca/api/v1/playlists",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My playlist',
'description' => '<string>',
'image' => '<string>',
'public' => false,
'collaborative' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://open.beatpass.ca/api/v1/playlists"
payload := strings.NewReader("{\n \"name\": \"My playlist\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"public\": false,\n \"collaborative\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://open.beatpass.ca/api/v1/playlists")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My playlist\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"public\": false,\n \"collaborative\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://open.beatpass.ca/api/v1/playlists")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My playlist\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"public\": false,\n \"collaborative\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"playlist": {
"id": 123,
"name": "Some Playlist",
"public": true,
"collaborative": false,
"image": "https://example.com/image1.jpg",
"description": "<string>"
}
}"<unknown>"Playlists
Create a Playlist for current user
POST
/
playlists
Create a Playlist for current user
curl --request POST \
--url https://open.beatpass.ca/api/v1/playlists \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My playlist",
"description": "<string>",
"image": "<string>",
"public": false,
"collaborative": false
}
'import requests
url = "https://open.beatpass.ca/api/v1/playlists"
payload = {
"name": "My playlist",
"description": "<string>",
"image": "<string>",
"public": False,
"collaborative": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My playlist',
description: '<string>',
image: '<string>',
public: false,
collaborative: false
})
};
fetch('https://open.beatpass.ca/api/v1/playlists', 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://open.beatpass.ca/api/v1/playlists",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My playlist',
'description' => '<string>',
'image' => '<string>',
'public' => false,
'collaborative' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://open.beatpass.ca/api/v1/playlists"
payload := strings.NewReader("{\n \"name\": \"My playlist\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"public\": false,\n \"collaborative\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://open.beatpass.ca/api/v1/playlists")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My playlist\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"public\": false,\n \"collaborative\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://open.beatpass.ca/api/v1/playlists")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My playlist\",\n \"description\": \"<string>\",\n \"image\": \"<string>\",\n \"public\": false,\n \"collaborative\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"playlist": {
"id": 123,
"name": "Some Playlist",
"public": true,
"collaborative": false,
"image": "https://example.com/image1.jpg",
"description": "<string>"
}
}"<unknown>"Authorizations
API access is invite-only. Contact contact@beatpass.ca to request access. Once approved, generate tokens from Account Settings → Developers. Include as: Authorization: Bearer {token}. Tokens expire after 90 days.
Body
application/json
Example:
"My playlist"
Short description (between 20 and 170 chracaters) for playlist
Image url for playlist
Whether this playlist will be set as public
Whether this playlist will be set as collaborative
Last modified on July 21, 2026
Was this page helpful?
⌘I