Audius API Docs
The Audius API is entirely free to use. We ask that you adhere to the guidelines in this doc and always credit artists.
Selecting a Host
Code Sample
curl https://api.audius.co
GET https://api.audius.co HTTP/1.1
const sample = (arr) => arr[Math.floor(Math.random() * arr.length)]
const host = await fetch('https://api.audius.co')
.then(r => r.json())
.then(j => j.data)
.then(d => sample(d))
import random
import requests
host = random.choice((requests.get('https://api.audius.co')).json()['data'])
Audius is a decentralized music streaming service. To use the API, you first select an API endpoint from the list of endpoints returned by:
Once you've selected a host, all API requests can be sent directly to it. We recommend selecting a host each time your application starts up as availability may change over time.
For the following documention, we've selected one for you:
AUDIUS_API_HOST
Specifying App Name
If you're integrating the Audius API into an app in production, we ask that you include an &app_name=<YOUR-UNIQUE-APP-NAME>
param with each query. Your unique app name is entirely up to you!
users
Get User
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}
Gets a single user by their user ID
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
app_name | string | false | Your app name |
Example Response
{
"data": {
"album_count": 0,
"artist_pick_track_id": "D7KyD",
"bio": "Makin' moves & keeping you on your toes.\nlinktr.ee/browniesandlemonade",
"cover_photo": {
"640x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/640x.jpg",
"2000x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/2000x.jpg"
},
"followee_count": 26,
"follower_count": 34503,
"does_follow_current_user": false,
"handle": "TeamBandL",
"id": "nlGNe",
"is_verified": true,
"location": "Los Angeles, CA",
"name": "Brownies & Lemonade",
"playlist_count": 2,
"profile_picture": {
"150x150": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/1000x1000.jpg"
},
"repost_count": 5,
"track_count": 10,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x8bc337e467cec1e7b05e54c7d1f90814a78d259e",
"spl_wallet": "WXBYqzejMr5qxmuDrvVTDQopr7vdZt5szsoSSb3EvQH",
"supporter_count": 9,
"supporting_count": 0,
"total_audio_balance": 3123
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | user_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get User ID from Wallet
Code Sample
curl AUDIUS_API_HOST/v1/users/id?associated_wallet=0x087F08462BbD30fC1775bBA3E58821F4CaD47b6b&app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/id?associated_wallet=0x087F08462BbD30fC1775bBA3E58821F4CaD47b6b&app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/id?associated_wallet=0x087F08462BbD30fC1775bBA3E58821F4CaD47b6b&app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/id',
params: {
'associated_wallet' => 'string',
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/id', params={
'associated_wallet': '0x087F08462BbD30fC1775bBA3E58821F4CaD47b6b', 'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/id', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/id?associated_wallet=0x087F08462BbD30fC1775bBA3E58821F4CaD47b6b&app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/id", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/id
Gets a User ID from an associated wallet address
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
associated_wallet | string | true | Wallet address |
app_name | string | false | Your app name |
Example Response
{
"data": {
"user_id": null
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | user_associated_wallet_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Search Users
Code Sample
curl AUDIUS_API_HOST/v1/users/search?query=Brownies&app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/search?query=Brownies&app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/search?query=Brownies&app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/search',
params: {
'query' => 'string',
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/search', params={
'query': 'Brownies', 'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/search', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/search?query=Brownies&app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/search", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/search
Search for users that match the given query
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
query | string | true | The search query |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"album_count": 0,
"artist_pick_track_id": "D7KyD",
"bio": "Makin' moves & keeping you on your toes.\nlinktr.ee/browniesandlemonade",
"cover_photo": {
"640x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/640x.jpg",
"2000x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/2000x.jpg"
},
"followee_count": 26,
"follower_count": 34503,
"does_follow_current_user": false,
"handle": "TeamBandL",
"id": "nlGNe",
"is_verified": true,
"location": "Los Angeles, CA",
"name": "Brownies & Lemonade",
"playlist_count": 2,
"profile_picture": {
"150x150": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/1000x1000.jpg"
},
"repost_count": 5,
"track_count": 10,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x8bc337e467cec1e7b05e54c7d1f90814a78d259e",
"spl_wallet": "WXBYqzejMr5qxmuDrvVTDQopr7vdZt5szsoSSb3EvQH",
"supporter_count": 9,
"supporting_count": 0,
"total_audio_balance": null
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | user_search |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Verify ID Token
Code Sample
curl AUDIUS_API_HOST/v1/users/verify_token?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJrZWNjYWsyNTYifQ.eyJ1c2VySWQiOjE0MTYxMTUsImVtYWlsIjoiaXNhYWN0ZXN0NDUxQGdtYWlsLmNvbSIsIm5hbWUiOiJ0ZXN0aW5nMTIiLCJoYW5kbGUiOiJ0ZXN0dGVzdDQ1MSIsInZlcmlmaWVkIjpmYWxzZSwic3ViIjoxNDE2MTE1LCJpYXQiOjE2NTY1MTgzMzN9.MHhkZmYyYWY5ZThmNDAxZDUyZDlhNjUxNGRiOTg0ZjM5YjFhOTZkYmNmZmViZjMzZjNkNmEzMTk4OTVlZWE2MTZjNjg0NWIwOGEyOGQ4MTA4OTEyMTc4ZDU0ODRhZGU4M2I1Yzg4ZTUwM2Y3OGYzMDYzZjYxMmQxZDQwYTYwMGZmZDFi&app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/verify_token?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJrZWNjYWsyNTYifQ.eyJ1c2VySWQiOjE0MTYxMTUsImVtYWlsIjoiaXNhYWN0ZXN0NDUxQGdtYWlsLmNvbSIsIm5hbWUiOiJ0ZXN0aW5nMTIiLCJoYW5kbGUiOiJ0ZXN0dGVzdDQ1MSIsInZlcmlmaWVkIjpmYWxzZSwic3ViIjoxNDE2MTE1LCJpYXQiOjE2NTY1MTgzMzN9.MHhkZmYyYWY5ZThmNDAxZDUyZDlhNjUxNGRiOTg0ZjM5YjFhOTZkYmNmZmViZjMzZjNkNmEzMTk4OTVlZWE2MTZjNjg0NWIwOGEyOGQ4MTA4OTEyMTc4ZDU0ODRhZGU4M2I1Yzg4ZTUwM2Y3OGYzMDYzZjYxMmQxZDQwYTYwMGZmZDFi&app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/verify_token?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJrZWNjYWsyNTYifQ.eyJ1c2VySWQiOjE0MTYxMTUsImVtYWlsIjoiaXNhYWN0ZXN0NDUxQGdtYWlsLmNvbSIsIm5hbWUiOiJ0ZXN0aW5nMTIiLCJoYW5kbGUiOiJ0ZXN0dGVzdDQ1MSIsInZlcmlmaWVkIjpmYWxzZSwic3ViIjoxNDE2MTE1LCJpYXQiOjE2NTY1MTgzMzN9.MHhkZmYyYWY5ZThmNDAxZDUyZDlhNjUxNGRiOTg0ZjM5YjFhOTZkYmNmZmViZjMzZjNkNmEzMTk4OTVlZWE2MTZjNjg0NWIwOGEyOGQ4MTA4OTEyMTc4ZDU0ODRhZGU4M2I1Yzg4ZTUwM2Y3OGYzMDYzZjYxMmQxZDQwYTYwMGZmZDFi&app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/verify_token',
params: {
'token' => 'string',
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/verify_token', params={
'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJrZWNjYWsyNTYifQ.eyJ1c2VySWQiOjE0MTYxMTUsImVtYWlsIjoiaXNhYWN0ZXN0NDUxQGdtYWlsLmNvbSIsIm5hbWUiOiJ0ZXN0aW5nMTIiLCJoYW5kbGUiOiJ0ZXN0dGVzdDQ1MSIsInZlcmlmaWVkIjpmYWxzZSwic3ViIjoxNDE2MTE1LCJpYXQiOjE2NTY1MTgzMzN9.MHhkZmYyYWY5ZThmNDAxZDUyZDlhNjUxNGRiOTg0ZjM5YjFhOTZkYmNmZmViZjMzZjNkNmEzMTk4OTVlZWE2MTZjNjg0NWIwOGEyOGQ4MTA4OTEyMTc4ZDU0ODRhZGU4M2I1Yzg4ZTUwM2Y3OGYzMDYzZjYxMmQxZDQwYTYwMGZmZDFi', 'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/verify_token', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/verify_token?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJrZWNjYWsyNTYifQ.eyJ1c2VySWQiOjE0MTYxMTUsImVtYWlsIjoiaXNhYWN0ZXN0NDUxQGdtYWlsLmNvbSIsIm5hbWUiOiJ0ZXN0aW5nMTIiLCJoYW5kbGUiOiJ0ZXN0dGVzdDQ1MSIsInZlcmlmaWVkIjpmYWxzZSwic3ViIjoxNDE2MTE1LCJpYXQiOjE2NTY1MTgzMzN9.MHhkZmYyYWY5ZThmNDAxZDUyZDlhNjUxNGRiOTg0ZjM5YjFhOTZkYmNmZmViZjMzZjNkNmEzMTk4OTVlZWE2MTZjNjg0NWIwOGEyOGQ4MTA4OTEyMTc4ZDU0ODRhZGU4M2I1Yzg4ZTUwM2Y3OGYzMDYzZjYxMmQxZDQwYTYwMGZmZDFi&app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/verify_token", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/verify_token
Verify if the given jwt ID token was signed by the subject (user) in the payload
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
token | string | true | JWT to verify |
app_name | string | false | Your app name |
Example Response
{
"data": {
"userId": "1416115",
"email": "isaactest451@gmail.com",
"name": "testing12",
"handle": "testtest451",
"verified": false,
"profilePicture": null,
"sub": "1416115",
"iat": "1656518333"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | verify_token |
400 | Bad Request | Bad input | None |
404 | Not Found | ID token not valid | None |
500 | Internal Server Error | Server error | None |
Get User's Connected Wallets
Code Sample
curl AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/Wem1e/connected_wallets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/connected_wallets
Get the User's ERC and SPL connected wallets
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
app_name | string | false | Your app name |
Example Response
{
"data": {
"erc_wallets": [
"0x42b53313f643D2a8007a169C2eC973100A1F84C3"
],
"spl_wallets": [
"EF1zneAqA2mwjkD3Lj7sQnMhR2uorGqEHXNtAWfGdCu2"
]
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | connected_wallets_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get User's Favorite Tracks
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/favorites?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/favorites?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/favorites?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/favorites',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/favorites', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/favorites', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/favorites?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/favorites", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/favorites
Gets a user's favorite tracks
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"favorite_item_id": "5O2pg",
"favorite_type": "SaveType.track",
"user_id": "nlGNe",
"created_at": "2022-07-27 01:25:15"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | favorites_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get User's Reposts
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/reposts?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/reposts?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/reposts?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/reposts',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/reposts', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/reposts', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/reposts?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/reposts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/reposts
Gets the given user's reposts
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
user_id | string | false | The user ID of the user making the request |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"timestamp": "2021-05-03 02:48:00",
"item_type": "track",
"item": {
"artwork": {
"150x150": "https://creatornode3.audius.co/content/QmWGQf6CnFJJ4he13eDF2vZwDyoaWcHL3HziQyaSPwVFd3/150x150.jpg",
"480x480": "https://creatornode3.audius.co/content/QmWGQf6CnFJJ4he13eDF2vZwDyoaWcHL3HziQyaSPwVFd3/480x480.jpg",
"1000x1000": "https://creatornode3.audius.co/content/QmWGQf6CnFJJ4he13eDF2vZwDyoaWcHL3HziQyaSPwVFd3/1000x1000.jpg"
},
"description": null,
"genre": "Electronic",
"id": "y7XX7",
"track_cid": "QmXFnuP57woE7ZZ3HTkWggXuzZL13SJVLiL7rVE9qSFTyf",
"mood": "Other",
"release_date": "Sun Mar 28 2021 11:52:35 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 46,
"favorite_count": 100,
"tags": null,
"title": "PAULINE HERR @ BROWNIES & LEMONADE OPEN AUX 1/30",
"user": {
"album_count": 1,
"artist_pick_track_id": "JbQN0",
"bio": "producer, singer, human\n\nsocials: @paulineherr",
"cover_photo": {
"640x": "https://creatornode3.audius.co/content/QmZXwdQDq5QDJW3W17g4n4zXVjaDGDbvuzsMWqhis61W7h/640x.jpg",
"2000x": "https://creatornode3.audius.co/content/QmZXwdQDq5QDJW3W17g4n4zXVjaDGDbvuzsMWqhis61W7h/2000x.jpg"
},
"followee_count": 144,
"follower_count": 41573,
"does_follow_current_user": false,
"handle": "paulineherr",
"id": "eGEam",
"is_verified": true,
"location": "Burbank, CA",
"name": "Pauline Herr",
"playlist_count": 1,
"profile_picture": {
"150x150": "https://creatornode3.audius.co/content/QmbqwCk1axAdXk9iFfeU48iu1P73ChUA3kxpeg7PJBRHsC/150x150.jpg",
"480x480": "https://creatornode3.audius.co/content/QmbqwCk1axAdXk9iFfeU48iu1P73ChUA3kxpeg7PJBRHsC/480x480.jpg",
"1000x1000": "https://creatornode3.audius.co/content/QmbqwCk1axAdXk9iFfeU48iu1P73ChUA3kxpeg7PJBRHsC/1000x1000.jpg"
},
"repost_count": 155,
"track_count": 35,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0xf568ab060acd91fe4861e52136deb08ca1f26574",
"spl_wallet": "3DeyiqjmCAtqPUzGX6MQP2C62kKRANy7LFvcBzUEHqPc",
"supporter_count": 8,
"supporting_count": 0,
"total_audio_balance": 131
},
"duration": 1708,
"downloadable": false,
"play_count": 958,
"permalink": "/paulineherr/pauline-herr-brownies-lemonade-open-aux-130-316935",
"is_streamable": true
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | reposts |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Followers
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/followers?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/followers?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/followers?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/followers',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/followers', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/followers', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/followers?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/followers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/followers
All users that follow the provided user
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
user_id | string | false | The user ID of the user making the request |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"album_count": 0,
"artist_pick_track_id": null,
"bio": "The official Audius account!\n\nCreating a decentralized and open-source streaming music platform controlled by artists, fans, & developers.\n\nhttps://discord.gg/audius\nhttps://t.me/audius",
"cover_photo": {
"640x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/640x.jpg",
"2000x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/2000x.jpg"
},
"followee_count": 856,
"follower_count": 1525903,
"does_follow_current_user": false,
"handle": "Audius",
"id": "eJ57D",
"is_verified": true,
"location": "SF & LA",
"name": "Audius",
"playlist_count": 6,
"profile_picture": {
"150x150": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/150x150.jpg",
"480x480": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/480x480.jpg",
"1000x1000": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/1000x1000.jpg"
},
"repost_count": 3489,
"track_count": 0,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x3256bd2d0b1984e7df4fa525017ad9ba48470760",
"spl_wallet": "D1WXgUS2pnrVQTEqSGy2t2oxowahUL8Pw2Qy64CvTi79",
"supporter_count": 215,
"supporting_count": 4,
"total_audio_balance": 16150
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | followers_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Following
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/following?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/following?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/following?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/following',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/following', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/following', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/following?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/following", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/following
All users that the provided user follows
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
user_id | string | false | The user ID of the user making the request |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"album_count": 0,
"artist_pick_track_id": null,
"bio": "The official Audius account!\n\nCreating a decentralized and open-source streaming music platform controlled by artists, fans, & developers.\n\nhttps://discord.gg/audius\nhttps://t.me/audius",
"cover_photo": {
"640x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/640x.jpg",
"2000x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/2000x.jpg"
},
"followee_count": 856,
"follower_count": 1525903,
"does_follow_current_user": false,
"handle": "Audius",
"id": "eJ57D",
"is_verified": true,
"location": "SF & LA",
"name": "Audius",
"playlist_count": 6,
"profile_picture": {
"150x150": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/150x150.jpg",
"480x480": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/480x480.jpg",
"1000x1000": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/1000x1000.jpg"
},
"repost_count": 3489,
"track_count": 0,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x3256bd2d0b1984e7df4fa525017ad9ba48470760",
"spl_wallet": "D1WXgUS2pnrVQTEqSGy2t2oxowahUL8Pw2Qy64CvTi79",
"supporter_count": 215,
"supporting_count": 4,
"total_audio_balance": 16150
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | following_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Supporters
Code Sample
curl AUDIUS_API_HOST/v1/users/lzkyZ/supporters?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/lzkyZ/supporters?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/lzkyZ/supporters?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/lzkyZ/supporters',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/lzkyZ/supporters', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/lzkyZ/supporters', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/lzkyZ/supporters?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/lzkyZ/supporters", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/supporters
Gets the supporters of the given user
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"rank": 1,
"amount": "6000000000000000000",
"sender": {
"album_count": 0,
"artist_pick_track_id": "G0RNQ8w",
"bio": "Bebig Music is a record label part of treinta3tres records dedicated to dance commercial music.\nBebig Music is Dance!\nbebigmusic@gmail.com",
"cover_photo": {
"640x": "https://creatornode2.audius.co/content/QmQRATHCJEiwsCu4f1rGjPefF8fcwYnGzv2wuiKFnA3hv2/640x.jpg",
"2000x": "https://creatornode2.audius.co/content/QmQRATHCJEiwsCu4f1rGjPefF8fcwYnGzv2wuiKFnA3hv2/2000x.jpg"
},
"followee_count": 58,
"follower_count": 81,
"does_follow_current_user": false,
"handle": "bebigmusic",
"id": "aW8mr",
"is_verified": false,
"location": "Barcelona",
"name": "Bebig Music",
"playlist_count": 0,
"profile_picture": {
"150x150": "https://creatornode2.audius.co/content/QmXrmgMy5fwfr6q6ucU4qkvwkq8cvFXfbms32NNctZDmoB/150x150.jpg",
"480x480": "https://creatornode2.audius.co/content/QmXrmgMy5fwfr6q6ucU4qkvwkq8cvFXfbms32NNctZDmoB/480x480.jpg",
"1000x1000": "https://creatornode2.audius.co/content/QmXrmgMy5fwfr6q6ucU4qkvwkq8cvFXfbms32NNctZDmoB/1000x1000.jpg"
},
"repost_count": 81,
"track_count": 12,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0xcdc88b59fc7f2ea01ff6781bae25c1a59a2378cd",
"spl_wallet": "3EDj16wey6nfw26LhEXTyVmCnvvAMw4ruHfc76kWKkq8",
"supporter_count": 0,
"supporting_count": 1,
"total_audio_balance": 0
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | get_supporters |
Get Supportings
Code Sample
curl AUDIUS_API_HOST/v1/users/aW8mr/supporting?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/aW8mr/supporting?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/aW8mr/supporting?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/aW8mr/supporting',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/aW8mr/supporting', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/aW8mr/supporting', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/aW8mr/supporting?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/aW8mr/supporting", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/supporting
Gets the users that the given user supports
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"rank": 1,
"amount": "6000000000000000000",
"receiver": {
"album_count": 9,
"artist_pick_track_id": "oPRA7",
"bio": "house music\ntreinta3tres@gmail.com",
"cover_photo": {
"640x": "https://creatornode2.audius.co/content/QmRUUUoeJmhbpvqSr9d34Gb71zk7xZkNtswHdixzhMkXYG/640x.jpg",
"2000x": "https://creatornode2.audius.co/content/QmRUUUoeJmhbpvqSr9d34Gb71zk7xZkNtswHdixzhMkXYG/2000x.jpg"
},
"followee_count": 12,
"follower_count": 103,
"does_follow_current_user": false,
"handle": "treinta3tres",
"id": "lzkyZ",
"is_verified": false,
"location": "Barcelona",
"name": "treinta3tres",
"playlist_count": 3,
"profile_picture": {
"150x150": "https://creatornode2.audius.co/content/QmdJJf81jjRhpmrj2JzeMEzDNbPKfrUWkECE3NjfWnLDMr/150x150.jpg",
"480x480": "https://creatornode2.audius.co/content/QmdJJf81jjRhpmrj2JzeMEzDNbPKfrUWkECE3NjfWnLDMr/480x480.jpg",
"1000x1000": "https://creatornode2.audius.co/content/QmdJJf81jjRhpmrj2JzeMEzDNbPKfrUWkECE3NjfWnLDMr/1000x1000.jpg"
},
"repost_count": 24,
"track_count": 71,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0xa18d959231ca5728fefbf7b45ddc87f44e0832db",
"spl_wallet": "3Mm5mdBT3jtRifHpxBfJavRXyfM4G4kbV7KKrX2nj12M",
"supporter_count": 2,
"supporting_count": 0,
"total_audio_balance": 21
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | get_supporting |
Get User's Tracks
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/tracks?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/tracks?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/tracks?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/tracks',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/tracks', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/tracks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/tracks?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/tracks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/tracks
Gets the tracks created by a user using their user ID
Query Parameters
Name | Type | Required | Description | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string | true | A User ID | |||||||||||
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) | |||||||||||
limit | integer | false | The number of items to fetch | |||||||||||
user_id | string | false | The user ID of the user making the request | |||||||||||
sort | string | false | [Deprecated] Field to sort by
|
|||||||||||
query | string | false | The filter query | |||||||||||
sort_method | string | false | The sort method
|
|||||||||||
sort_direction | string | false | The sort direction
|
|||||||||||
filter_tracks | string | false | Filter by unlisted or public tracks
|
|||||||||||
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/1000x1000.jpg"
},
"description": "@baauer b2b @partyfavor live set at Brownies & Lemonade Block Party LA at The Shrine on 7.3.19.",
"genre": "Electronic",
"id": "D7KyD",
"track_cid": "QmeeTjhUvwQRtNYQwiC7Uebuhi4p9mNQNESb3AFaJCYqNz",
"mood": "Fiery",
"release_date": "Mon Sep 23 2019 12:35:10 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 430,
"favorite_count": 977,
"tags": "baauer,partyfavor,browniesandlemonade,live",
"title": "Paauer | Baauer B2B Party Favor | B&L Block Party LA (Live Set)",
"user": {
"album_count": 0,
"artist_pick_track_id": "D7KyD",
"bio": "Makin' moves & keeping you on your toes.\nlinktr.ee/browniesandlemonade",
"cover_photo": {
"640x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/640x.jpg",
"2000x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/2000x.jpg"
},
"followee_count": 26,
"follower_count": 34503,
"does_follow_current_user": false,
"handle": "TeamBandL",
"id": "nlGNe",
"is_verified": true,
"location": "Los Angeles, CA",
"name": "Brownies & Lemonade",
"playlist_count": 2,
"profile_picture": {
"150x150": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/1000x1000.jpg"
},
"repost_count": 5,
"track_count": 10,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x8bc337e467cec1e7b05e54c7d1f90814a78d259e",
"spl_wallet": "WXBYqzejMr5qxmuDrvVTDQopr7vdZt5szsoSSb3EvQH",
"supporter_count": 9,
"supporting_count": 0,
"total_audio_balance": 3123
},
"duration": 5265,
"downloadable": false,
"play_count": 355660,
"permalink": "/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725",
"is_streamable": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | tracks_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Related Users
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/related?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/related?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/related?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/related',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/related', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/related', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/related?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/related", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/related
Gets a list of users that might be of interest to followers of this user.
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
user_id | string | false | The user ID of the user making the request |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"album_count": 0,
"artist_pick_track_id": null,
"bio": "we are here for now. \n\ninquiries: joey@keel.la",
"cover_photo": {
"640x": "https://creatornode3.audius.co/content/QmZFh4413dNdy8RCg6bAx7jLeqMKxVHbKPdq18rG4JhPg1/640x.jpg",
"2000x": "https://creatornode3.audius.co/content/QmZFh4413dNdy8RCg6bAx7jLeqMKxVHbKPdq18rG4JhPg1/2000x.jpg"
},
"followee_count": 8,
"follower_count": 39042,
"does_follow_current_user": false,
"handle": "LouisTheChild",
"id": "LxQm2",
"is_verified": true,
"location": "Chicago, IL",
"name": "Louis The Child",
"playlist_count": 0,
"profile_picture": {
"150x150": "https://creatornode3.audius.co/content/Qmat15zauKpvWK83WiYiQLJ7LHXTEDViXFAUZayC1AFN5v/150x150.jpg",
"480x480": "https://creatornode3.audius.co/content/Qmat15zauKpvWK83WiYiQLJ7LHXTEDViXFAUZayC1AFN5v/480x480.jpg",
"1000x1000": "https://creatornode3.audius.co/content/Qmat15zauKpvWK83WiYiQLJ7LHXTEDViXFAUZayC1AFN5v/1000x1000.jpg"
},
"repost_count": 1,
"track_count": 94,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x0fd1293443c366bc433d85c94be56ca8117d0ef6",
"spl_wallet": "4V5UASoUDPSMRNU1AJ8vNh2kC7y1DXoMnaoehXCxNZsk",
"supporter_count": 4,
"supporting_count": 0,
"total_audio_balance": 12
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | related_artist_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Subscribers
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/subscribers?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/subscribers?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/subscribers?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/subscribers',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/subscribers', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/subscribers', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/subscribers?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/subscribers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/subscribers
All users that subscribe to the provided user
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
user_id | string | false | The user ID of the user making the request |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"album_count": 1,
"artist_pick_track_id": "QVkPv",
"bio": "🌞👄🌞\noak",
"cover_photo": {
"640x": "https://blockchange-audius-content-03.bdnodes.net/content/QmUk61QDUTzhNqjnCAWipSp3jnMmXBmtTUC2mtF5F6VvUy/640x.jpg",
"2000x": "https://blockchange-audius-content-03.bdnodes.net/content/QmUk61QDUTzhNqjnCAWipSp3jnMmXBmtTUC2mtF5F6VvUy/2000x.jpg"
},
"followee_count": 1543,
"follower_count": 8276,
"does_follow_current_user": false,
"handle": "rayjacobson",
"id": "7eP5n",
"is_verified": false,
"location": "chik fil yay!!",
"name": "raymont",
"playlist_count": 8,
"profile_picture": {
"150x150": "https://blockchange-audius-content-03.bdnodes.net/content/QmYRHAJ4YuLjT4fLLRMg5STnQA4yDpiBmzk5R3iCDTmkmk/150x150.jpg",
"480x480": "https://blockchange-audius-content-03.bdnodes.net/content/QmYRHAJ4YuLjT4fLLRMg5STnQA4yDpiBmzk5R3iCDTmkmk/480x480.jpg",
"1000x1000": "https://blockchange-audius-content-03.bdnodes.net/content/QmYRHAJ4YuLjT4fLLRMg5STnQA4yDpiBmzk5R3iCDTmkmk/1000x1000.jpg"
},
"repost_count": 3891,
"track_count": 17,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x7d273271690538cf855e5b3002a0dd8c154bb060",
"spl_wallet": "EXfHYvqN7GTeQa7aiRhq4UMMZBC9PmUXmskgCH7BSaTn",
"supporter_count": 8,
"supporting_count": 110,
"total_audio_balance": 205
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | subscribers_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get User's Most Used Track Tags
Code Sample
curl AUDIUS_API_HOST/v1/users/nlGNe/tags?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/nlGNe/tags?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/nlGNe/tags?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/nlGNe/tags',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/nlGNe/tags', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/nlGNe/tags', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/nlGNe/tags?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/nlGNe/tags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{id}/tags
Fetch most used tags in a user's tracks
Gets the most used track tags by a user.
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | true | A User ID |
limit | integer | false | The number of items to fetch |
user_id | string | false | The user ID of the user making the request |
app_name | string | false | Your app name |
Example Response
{
"data": [
"browniesandlemonade"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | tags_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get User by Handle
Code Sample
curl AUDIUS_API_HOST/v1/users/handle/rac?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/handle/rac?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/handle/rac?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/handle/rac',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/handle/rac', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/handle/rac', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/handle/rac?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/handle/rac", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/handle/{handle}
Gets a single user by their handle
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
handle | string | true | A User handle |
user_id | string | false | The user ID of the user making the request |
app_name | string | false | Your app name |
Example Response
{
"data": {
"album_count": 1,
"artist_pick_track_id": "bbzxO",
"bio": "Grammy award winning recording artist",
"cover_photo": {
"640x": "https://creatornode3.audius.co/content/QmajqvB5WHRzkkE9dxgxoTcAoRwZ9Mnhd7ZSbZxyheQvzK/640x.jpg",
"2000x": "https://creatornode3.audius.co/content/QmajqvB5WHRzkkE9dxgxoTcAoRwZ9Mnhd7ZSbZxyheQvzK/2000x.jpg"
},
"followee_count": 19,
"follower_count": 64352,
"does_follow_current_user": false,
"handle": "RAC",
"id": "nkwv1",
"is_verified": true,
"location": "Portland, OR",
"name": "RAC",
"playlist_count": 0,
"profile_picture": {
"150x150": "https://creatornode3.audius.co/content/QmeZmZsxNbZ6prX9yg6sa2pk4bPPRUfdYJPqqndRanUrsf/150x150.jpg",
"480x480": "https://creatornode3.audius.co/content/QmeZmZsxNbZ6prX9yg6sa2pk4bPPRUfdYJPqqndRanUrsf/480x480.jpg",
"1000x1000": "https://creatornode3.audius.co/content/QmeZmZsxNbZ6prX9yg6sa2pk4bPPRUfdYJPqqndRanUrsf/1000x1000.jpg"
},
"repost_count": 12,
"track_count": 16,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x346dfbfaf04f40a7f4d327a4935ee98a5bdbd478",
"spl_wallet": "2AXmXpWwbFTRWJWkmfjfKajapgAkQEQKkqxooBRZd5cf",
"supporter_count": 23,
"supporting_count": 1,
"total_audio_balance": 114101
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | user_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get AI Tracks by Handle
Code Sample
curl AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/users/handle/phuture/tracks/ai_attributed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/handle/{handle}/tracks/ai_attributed
Gets the AI generated tracks attributed to a user using the user's handle
Query Parameters
Name | Type | Required | Description | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
handle | string | true | A User handle | |||||||||||
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) | |||||||||||
limit | integer | false | The number of items to fetch | |||||||||||
user_id | string | false | The user ID of the user making the request | |||||||||||
sort | string | false | [Deprecated] Field to sort by
|
|||||||||||
query | string | false | The filter query | |||||||||||
sort_method | string | false | The sort method
|
|||||||||||
sort_direction | string | false | The sort direction
|
|||||||||||
filter_tracks | string | false | Filter by unlisted or public tracks
|
|||||||||||
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://creatornode2.audius.co/content/QmSQpJrsBM5Vjbifa4e6Xok3mEoyJ3k7YT9YTcM5bcuqDP/150x150.jpg",
"480x480": "https://creatornode2.audius.co/content/QmSQpJrsBM5Vjbifa4e6Xok3mEoyJ3k7YT9YTcM5bcuqDP/480x480.jpg",
"1000x1000": "https://creatornode2.audius.co/content/QmSQpJrsBM5Vjbifa4e6Xok3mEoyJ3k7YT9YTcM5bcuqDP/1000x1000.jpg"
},
"description": "Made with Boomy",
"genre": "Electronic",
"id": "wzwEM32",
"track_cid": "Qme14CQbQPTK1snP8Gt3JSdGAHHdWFJAg25FnVue4s1oT7",
"mood": "Sophisticated",
"release_date": "Mon May 01 2023 17:17:23 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 1,
"favorite_count": 2,
"tags": "ai,aimusic",
"title": "PhutureAI",
"user": {
"album_count": 0,
"artist_pick_track_id": null,
"bio": "Founder of Phuture Collective",
"cover_photo": {
"640x": "https://creatornode2.audius.co/content/QmbB1yiGWF7JpWfW42LbhWY27v7GMfLKuLE3fd84hFKDS7/640x.jpg",
"2000x": "https://creatornode2.audius.co/content/QmbB1yiGWF7JpWfW42LbhWY27v7GMfLKuLE3fd84hFKDS7/2000x.jpg"
},
"followee_count": 8,
"follower_count": 247,
"does_follow_current_user": false,
"handle": "synchronistic",
"id": "LRNZL",
"is_verified": false,
"location": "Portland, OR",
"name": "synchronistic",
"playlist_count": 0,
"profile_picture": {
"150x150": "https://creatornode2.audius.co/content/QmcBGJSkkWqfc1kx23jVuDfMenMS8u1ctPmm3A5VcLboSH/150x150.jpg",
"480x480": "https://creatornode2.audius.co/content/QmcBGJSkkWqfc1kx23jVuDfMenMS8u1ctPmm3A5VcLboSH/480x480.jpg",
"1000x1000": "https://creatornode2.audius.co/content/QmcBGJSkkWqfc1kx23jVuDfMenMS8u1ctPmm3A5VcLboSH/1000x1000.jpg"
},
"repost_count": 2,
"track_count": 3,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x0b0e6bd939a6165a98ed8f4ea350a96d1127676f",
"spl_wallet": "4eKrNigZuzvAR4rYBLFJMRSULA1Me9LSwygMjqzEYJGc",
"supporter_count": 0,
"supporting_count": 0,
"total_audio_balance": 1
},
"duration": 67,
"downloadable": false,
"play_count": 1529,
"permalink": "/synchronistic/phutureai",
"is_streamable": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | tracks_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
playlists
Get Playlist
Code Sample
curl AUDIUS_API_HOST/v1/playlists/DOPRl?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/playlists/DOPRl?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/playlists/DOPRl?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/playlists/DOPRl',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/playlists/DOPRl', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/playlists/DOPRl', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/playlists/DOPRl?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/playlists/DOPRl", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /playlists/{playlist_id}
Get a playlist by ID
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
playlist_id | string | true | A Playlist ID |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://usermetadata.audius.co/content/Qmc7RFzLGgW3DUTgKK49LzxEwe3Lmb47q85ZwJJRVYTXPr/150x150.jpg",
"480x480": "https://usermetadata.audius.co/content/Qmc7RFzLGgW3DUTgKK49LzxEwe3Lmb47q85ZwJJRVYTXPr/480x480.jpg",
"1000x1000": "https://usermetadata.audius.co/content/Qmc7RFzLGgW3DUTgKK49LzxEwe3Lmb47q85ZwJJRVYTXPr/1000x1000.jpg"
},
"description": "All the latest hot & new tracks on Audius! Prepare to buckle in for a trip through various genres featuring artists you love and new artists you are about to discover.",
"permalink": "/Audius/playlist/hot-new-on-audius-🔥",
"id": "DOPRl",
"is_album": false,
"playlist_name": "Hot & New on Audius 🔥",
"repost_count": 1776,
"favorite_count": 1243059,
"total_play_count": 129814,
"user": {
"album_count": 0,
"artist_pick_track_id": null,
"bio": "The official Audius account!\n\nCreating a decentralized and open-source streaming music platform controlled by artists, fans, & developers.\n\nhttps://discord.gg/audius\nhttps://t.me/audius",
"cover_photo": {
"640x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/640x.jpg",
"2000x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/2000x.jpg"
},
"followee_count": 856,
"follower_count": 1525903,
"does_follow_current_user": false,
"handle": "Audius",
"id": "eJ57D",
"is_verified": true,
"location": "SF & LA",
"name": "Audius",
"playlist_count": 6,
"profile_picture": {
"150x150": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/150x150.jpg",
"480x480": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/480x480.jpg",
"1000x1000": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/1000x1000.jpg"
},
"repost_count": 3489,
"track_count": 0,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x3256bd2d0b1984e7df4fa525017ad9ba48470760",
"spl_wallet": "D1WXgUS2pnrVQTEqSGy2t2oxowahUL8Pw2Qy64CvTi79",
"supporter_count": 215,
"supporting_count": 4,
"total_audio_balance": 16150
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | playlist_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Search Playlists
Code Sample
curl AUDIUS_API_HOST/v1/playlists/search?query=Hot & New&app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/playlists/search?query=Hot & New&app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/playlists/search?query=Hot & New&app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/playlists/search',
params: {
'query' => 'string',
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/playlists/search', params={
'query': 'Hot & New', 'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/playlists/search', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/playlists/search?query=Hot & New&app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/playlists/search", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /playlists/search
Search for a playlist
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
query | string | true | The search query |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://usermetadata.audius.co/content/Qmc7RFzLGgW3DUTgKK49LzxEwe3Lmb47q85ZwJJRVYTXPr/150x150.jpg",
"480x480": "https://usermetadata.audius.co/content/Qmc7RFzLGgW3DUTgKK49LzxEwe3Lmb47q85ZwJJRVYTXPr/480x480.jpg",
"1000x1000": "https://usermetadata.audius.co/content/Qmc7RFzLGgW3DUTgKK49LzxEwe3Lmb47q85ZwJJRVYTXPr/1000x1000.jpg"
},
"description": "All the latest hot & new tracks on Audius! Prepare to buckle in for a trip through various genres featuring artists you love and new artists you are about to discover.",
"permalink": "/Audius/playlist/hot-new-on-audius-🔥",
"id": "DOPRl",
"is_album": false,
"playlist_name": "Hot & New on Audius 🔥",
"repost_count": 1776,
"favorite_count": 1243059,
"total_play_count": 129802,
"user": {
"album_count": 0,
"artist_pick_track_id": null,
"bio": "The official Audius account!\n\nCreating a decentralized and open-source streaming music platform controlled by artists, fans, & developers.\n\nhttps://discord.gg/audius\nhttps://t.me/audius",
"cover_photo": {
"640x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/640x.jpg",
"2000x": "https://usermetadata.audius.co/content/QmSeB4DY1qBtp9hbnmMwnkGepRY6tRrNQcgZU2oNk4SK1q/2000x.jpg"
},
"followee_count": 856,
"follower_count": 1525903,
"does_follow_current_user": false,
"handle": "Audius",
"id": "eJ57D",
"is_verified": true,
"location": "SF & LA",
"name": "Audius",
"playlist_count": 6,
"profile_picture": {
"150x150": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/150x150.jpg",
"480x480": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/480x480.jpg",
"1000x1000": "https://usermetadata.audius.co/content/QmNjJv1wQf2DJq3GNXjXzSL8UXFUGXfchg4NhL7UpbnF1f/1000x1000.jpg"
},
"repost_count": 3487,
"track_count": 0,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x3256bd2d0b1984e7df4fa525017ad9ba48470760",
"spl_wallet": "D1WXgUS2pnrVQTEqSGy2t2oxowahUL8Pw2Qy64CvTi79",
"supporter_count": 215,
"supporting_count": 4,
"total_audio_balance": null
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | playlist_search_result |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Trending Playlists
Code Sample
curl AUDIUS_API_HOST/v1/playlists/trending?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/playlists/trending?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/playlists/trending?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/playlists/trending',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/playlists/trending', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/playlists/trending', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/playlists/trending?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/playlists/trending", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /playlists/trending
Gets trending playlists for a time period
Query Parameters
Name | Type | Required | Description | |||||
---|---|---|---|---|---|---|---|---|
time | string | false | Calculate trending over a specified time range
|
|||||
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://audius-content-12.cultur3stake.com/content/Qmf53YjSDjsu1w7sYian2tJcNpzvwQZWN8uS3ajBZUTEVZ/150x150.jpg",
"480x480": "https://audius-content-12.cultur3stake.com/content/Qmf53YjSDjsu1w7sYian2tJcNpzvwQZWN8uS3ajBZUTEVZ/480x480.jpg",
"1000x1000": "https://audius-content-12.cultur3stake.com/content/Qmf53YjSDjsu1w7sYian2tJcNpzvwQZWN8uS3ajBZUTEVZ/1000x1000.jpg"
},
"description": "The first installment of Pala Chrome's 'You Stay High' remix EP is out now featuring:\n\nalex martian\nfreeloadr\nDust Of Apollon\nGabriel Earwood\n2chills\n\nArtworks by 6amsunset.",
"permalink": "/kumocollective/playlist/pala-chrome-you-stay-high-remix-pack-part-1",
"id": "5123bEX",
"is_album": false,
"playlist_name": "Pala Chrome - You Stay High REMIX PACK (part 1)",
"repost_count": 18,
"favorite_count": 27,
"total_play_count": 1845,
"user": {
"album_count": 6,
"artist_pick_track_id": "WNYwG6Z",
"bio": "Record label from Italy, established in 2017. \n\nas free as a cloud ☁️\n\nVisit the KUMOverse\nhttps://kumocollective.com",
"cover_photo": {
"640x": "https://audius-content-12.cultur3stake.com/content/Qme9kcC1xNmRWYsfmzqXYiahUrAb5uuqrT1Lf48VU27goY/640x.jpg",
"2000x": "https://audius-content-12.cultur3stake.com/content/Qme9kcC1xNmRWYsfmzqXYiahUrAb5uuqrT1Lf48VU27goY/2000x.jpg"
},
"followee_count": 19,
"follower_count": 13558,
"does_follow_current_user": false,
"handle": "kumocollective",
"id": "Lj0ae",
"is_verified": false,
"location": "Amsterdam",
"name": "KUMO Collective",
"playlist_count": 32,
"profile_picture": {
"150x150": "https://audius-content-12.cultur3stake.com/content/QmWd4zNC8hEfTScBDi5YSHf6YV6ETUbstoDynXMGsoHX6Q/150x150.jpg",
"480x480": "https://audius-content-12.cultur3stake.com/content/QmWd4zNC8hEfTScBDi5YSHf6YV6ETUbstoDynXMGsoHX6Q/480x480.jpg",
"1000x1000": "https://audius-content-12.cultur3stake.com/content/QmWd4zNC8hEfTScBDi5YSHf6YV6ETUbstoDynXMGsoHX6Q/1000x1000.jpg"
},
"repost_count": 533,
"track_count": 134,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x62b166e2d2c8882e5e624ba1d6eba939424fc3f7",
"spl_wallet": "5f5AkVbVPFDCVXBr1fcZ7kYaahQEXYYTFuxJ6RDvjeHS",
"supporter_count": 12,
"supporting_count": 0,
"total_audio_balance": 1271
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | trending_playlists_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Playlist Tracks
Code Sample
curl AUDIUS_API_HOST/v1/playlists/DOPRl/tracks?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/playlists/DOPRl/tracks?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/playlists/DOPRl/tracks?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/playlists/DOPRl/tracks',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/playlists/DOPRl/tracks', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/playlists/DOPRl/tracks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/playlists/DOPRl/tracks?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/playlists/DOPRl/tracks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /playlists/{playlist_id}/tracks
Fetch tracks within a playlist.
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
playlist_id | string | true | A Playlist ID |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmZJ9dKg4S1BRnRiHPUpoDCjKtTxtg8Nhgei2vTkgNyQ1h/150x150.jpg",
"480x480": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmZJ9dKg4S1BRnRiHPUpoDCjKtTxtg8Nhgei2vTkgNyQ1h/480x480.jpg",
"1000x1000": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmZJ9dKg4S1BRnRiHPUpoDCjKtTxtg8Nhgei2vTkgNyQ1h/1000x1000.jpg"
},
"description": "Louis Futon “David Blaine” Out Now: https://stem.ffm.to/davidblaine\n\nLouis Futon Merch, Tour Dates, and more... \nhttps://louisfutonbeats.com/\n\nSubscribe to Louis Futon\nhttps://bit.ly/LouisFutonYouTube\n\nFollow Louis Futon\nhttps://instagram.com/louisfutonbeats\nhttps://twitter.com/louisfutonbeats\nhttps://tiktok.com/@notlouisfuton\nhttps://facebook.com/Louisfutonbeats\nhttps://www.twitch.tv/louisfutontv\n\nJoin the community\nhttps://discord.gg/geshyzwA\n\n#LouisFuton #DavidBlaine\n\nMixed/Mastered byJacob Weinstein \nCo-written by Ariel Shrum\nSax, bass clarinet & flute by Hailey Niswanger",
"genre": "Electronic",
"id": "7dm4zrr",
"track_cid": "QmWwMTU6rjCp2t3xtjjLUXSF85bxJkxQesrcrSd8fJ5P2d",
"mood": "Sensual",
"release_date": "Fri May 05 2023 10:10:02 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 54,
"favorite_count": 100,
"tags": "louisfuton,davidblaine",
"title": "Louis Futon - David Blaine",
"user": {
"album_count": 2,
"artist_pick_track_id": null,
"bio": "Management: eric@jet-mgmt.com",
"cover_photo": {
"640x": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmWWPNRrzgasSoGt4SZceuukFf8FbJR8mzsgtYpDNRWkwf/640x.jpg",
"2000x": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmWWPNRrzgasSoGt4SZceuukFf8FbJR8mzsgtYpDNRWkwf/2000x.jpg"
},
"followee_count": 15,
"follower_count": 2239,
"does_follow_current_user": false,
"handle": "louisfutonbeats",
"id": "n098k",
"is_verified": true,
"location": "Los Angeles, CA",
"name": "Louis Futon",
"playlist_count": 2,
"profile_picture": {
"150x150": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmeRrmABZJTGGqQsTo19FkvepEHoZPsmkabGPcLxxfXx2q/150x150.jpg",
"480x480": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmeRrmABZJTGGqQsTo19FkvepEHoZPsmkabGPcLxxfXx2q/480x480.jpg",
"1000x1000": "https://blockdaemon-audius-content-06.bdnodes.net/content/QmeRrmABZJTGGqQsTo19FkvepEHoZPsmkabGPcLxxfXx2q/1000x1000.jpg"
},
"repost_count": 10,
"track_count": 50,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x4ef00cc32ce488af3ec291a89549712b2dd14f2e",
"spl_wallet": "1hfVnihF2p6F6n22easszN3wpn5efVaDGTDFsUxmJ9V",
"supporter_count": 6,
"supporting_count": 0,
"total_audio_balance": 62
},
"duration": 197,
"downloadable": true,
"play_count": 24254,
"permalink": "/louisfutonbeats/louis-futon-david-blaine",
"is_streamable": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | playlist_tracks_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
tracks
Get Track
Code Sample
curl AUDIUS_API_HOST/v1/tracks/D7KyD?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/tracks/D7KyD?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/tracks/D7KyD?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/tracks/D7KyD',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/tracks/D7KyD', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/tracks/D7KyD', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/tracks/D7KyD?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/tracks/D7KyD", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tracks/{track_id}
Gets a track by ID
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
track_id | string | true | A Track ID |
app_name | string | false | Your app name |
Example Response
{
"data": {
"artwork": {
"150x150": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/1000x1000.jpg"
},
"description": "@baauer b2b @partyfavor live set at Brownies & Lemonade Block Party LA at The Shrine on 7.3.19.",
"genre": "Electronic",
"id": "D7KyD",
"track_cid": "QmeeTjhUvwQRtNYQwiC7Uebuhi4p9mNQNESb3AFaJCYqNz",
"mood": "Fiery",
"release_date": "Mon Sep 23 2019 12:35:10 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 430,
"favorite_count": 977,
"tags": "baauer,partyfavor,browniesandlemonade,live",
"title": "Paauer | Baauer B2B Party Favor | B&L Block Party LA (Live Set)",
"user": {
"album_count": 0,
"artist_pick_track_id": "D7KyD",
"bio": "Makin' moves & keeping you on your toes.\nlinktr.ee/browniesandlemonade",
"cover_photo": {
"640x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/640x.jpg",
"2000x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/2000x.jpg"
},
"followee_count": 26,
"follower_count": 34503,
"does_follow_current_user": false,
"handle": "TeamBandL",
"id": "nlGNe",
"is_verified": true,
"location": "Los Angeles, CA",
"name": "Brownies & Lemonade",
"playlist_count": 2,
"profile_picture": {
"150x150": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/1000x1000.jpg"
},
"repost_count": 5,
"track_count": 10,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x8bc337e467cec1e7b05e54c7d1f90814a78d259e",
"spl_wallet": "WXBYqzejMr5qxmuDrvVTDQopr7vdZt5szsoSSb3EvQH",
"supporter_count": 9,
"supporting_count": 0,
"total_audio_balance": 3123
},
"duration": 5265,
"downloadable": false,
"play_count": 355660,
"permalink": "/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725",
"is_streamable": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | track_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Bulk Tracks
Code Sample
curl AUDIUS_API_HOST/v1/tracks?permalink=/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725&app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/tracks?permalink=/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725&app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/tracks?permalink=/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725&app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/tracks',
params: {
'permalink' => 'array[string]',
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/tracks', params={
'permalink': '/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725', 'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/tracks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/tracks?permalink=/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725&app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/tracks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tracks
Gets a list of tracks using their IDs or permalinks
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
permalink | array[string] | false | The permalink of the track(s) |
id | array[string] | false | The ID of the track(s) |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/1000x1000.jpg"
},
"description": "@baauer b2b @partyfavor live set at Brownies & Lemonade Block Party LA at The Shrine on 7.3.19.",
"genre": "Electronic",
"id": "D7KyD",
"track_cid": "QmeeTjhUvwQRtNYQwiC7Uebuhi4p9mNQNESb3AFaJCYqNz",
"mood": "Fiery",
"release_date": "Mon Sep 23 2019 12:35:10 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 430,
"favorite_count": 977,
"tags": "baauer,partyfavor,browniesandlemonade,live",
"title": "Paauer | Baauer B2B Party Favor | B&L Block Party LA (Live Set)",
"user": {
"album_count": 0,
"artist_pick_track_id": "D7KyD",
"bio": "Makin' moves & keeping you on your toes.\nlinktr.ee/browniesandlemonade",
"cover_photo": {
"640x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/640x.jpg",
"2000x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/2000x.jpg"
},
"followee_count": 26,
"follower_count": 34503,
"does_follow_current_user": false,
"handle": "TeamBandL",
"id": "nlGNe",
"is_verified": true,
"location": "Los Angeles, CA",
"name": "Brownies & Lemonade",
"playlist_count": 2,
"profile_picture": {
"150x150": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/1000x1000.jpg"
},
"repost_count": 5,
"track_count": 10,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x8bc337e467cec1e7b05e54c7d1f90814a78d259e",
"spl_wallet": "WXBYqzejMr5qxmuDrvVTDQopr7vdZt5szsoSSb3EvQH",
"supporter_count": 9,
"supporting_count": 0,
"total_audio_balance": 3123
},
"duration": 5265,
"downloadable": false,
"play_count": 355660,
"permalink": "/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725",
"is_streamable": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | tracks_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Search Tracks
Code Sample
curl AUDIUS_API_HOST/v1/tracks/search?query=baauer b2b&app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/tracks/search?query=baauer b2b&app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/tracks/search?query=baauer b2b&app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/tracks/search',
params: {
'query' => 'string',
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/tracks/search', params={
'query': 'baauer b2b', 'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/tracks/search', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/tracks/search?query=baauer b2b&app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/tracks/search", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tracks/search
Search for a track or tracks
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
query | string | true | The search query |
only_downloadable | string | false | Return only downloadable tracks |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmVJjA6zXhDZn3BjcjYa33P9NDiPZj7Vyq9TCx1bHjvHmG/1000x1000.jpg"
},
"description": "@baauer b2b @partyfavor live set at Brownies & Lemonade Block Party LA at The Shrine on 7.3.19.",
"genre": "Electronic",
"id": "D7KyD",
"track_cid": "QmeeTjhUvwQRtNYQwiC7Uebuhi4p9mNQNESb3AFaJCYqNz",
"mood": "Fiery",
"release_date": "Mon Sep 23 2019 12:35:10 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 430,
"favorite_count": 977,
"tags": "baauer,partyfavor,browniesandlemonade,live",
"title": "Paauer | Baauer B2B Party Favor | B&L Block Party LA (Live Set)",
"user": {
"album_count": 0,
"artist_pick_track_id": "D7KyD",
"bio": "Makin' moves & keeping you on your toes.\nlinktr.ee/browniesandlemonade",
"cover_photo": {
"640x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/640x.jpg",
"2000x": "https://audius.prod.capturealpha.io/content/QmcVZH5C2ygxoVS4ihPBJrkFrS1Ua6YJB5srNtXafPzihZ/2000x.jpg"
},
"followee_count": 26,
"follower_count": 34503,
"does_follow_current_user": false,
"handle": "TeamBandL",
"id": "nlGNe",
"is_verified": true,
"location": "Los Angeles, CA",
"name": "Brownies & Lemonade",
"playlist_count": 2,
"profile_picture": {
"150x150": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/150x150.jpg",
"480x480": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/480x480.jpg",
"1000x1000": "https://audius.prod.capturealpha.io/content/QmU9L4beAM96MpiNqqVTZdiDiCRTeBku1AJCh3NXrE5PxV/1000x1000.jpg"
},
"repost_count": 5,
"track_count": 10,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x8bc337e467cec1e7b05e54c7d1f90814a78d259e",
"spl_wallet": "WXBYqzejMr5qxmuDrvVTDQopr7vdZt5szsoSSb3EvQH",
"supporter_count": 9,
"supporting_count": 0,
"total_audio_balance": null
},
"duration": 5266,
"downloadable": false,
"play_count": 355659,
"permalink": "/TeamBandL/paauer-|-baauer-b2b-party-favor-|-bl-block-party-la-live-set-725",
"is_streamable": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | track_search |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Trending Tracks
Code Sample
curl AUDIUS_API_HOST/v1/tracks/trending?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/tracks/trending?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/tracks/trending?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/tracks/trending',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/tracks/trending', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/tracks/trending', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/tracks/trending?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/tracks/trending", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tracks/trending
Gets the top 100 trending (most popular) tracks on Audius
Query Parameters
Name | Type | Required | Description | |||||
---|---|---|---|---|---|---|---|---|
genre | string | false | Filter trending to a specified genre | |||||
time | string | false | Calculate trending over a specified time range
|
|||||
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://creatornode3.audius.co/content/QmY7uocBHuSyW3aWuzZ6MeHNod8ph4TmStJJa2v4KXCdXe/150x150.jpg",
"480x480": "https://creatornode3.audius.co/content/QmY7uocBHuSyW3aWuzZ6MeHNod8ph4TmStJJa2v4KXCdXe/480x480.jpg",
"1000x1000": "https://creatornode3.audius.co/content/QmY7uocBHuSyW3aWuzZ6MeHNod8ph4TmStJJa2v4KXCdXe/1000x1000.jpg"
},
"description": "PBJ with NITTI out now!! ",
"genre": "Electronic",
"id": "2o8qVY6",
"track_cid": "QmVbmiJQ5vHB5RfTGWDrUdHUrd4aTKVV4SpCx48aBoPdS6",
"mood": "Energizing",
"release_date": "Mon May 08 2023 06:37:27 GMT-0700",
"remix_of": {
"tracks": null
},
"repost_count": 33,
"favorite_count": 58,
"tags": "henryfong,nitti,pbj,basshouse",
"title": "Henry Fong & NITTI - PBJ",
"user": {
"album_count": 0,
"artist_pick_track_id": "y8Nvx",
"bio": "DJ/Producer",
"cover_photo": {
"640x": "https://creatornode3.audius.co/content/QmSADrMwcqUFHjnuh3r3aWGgZjYFYovfsUxDDtxYwWHsv2/640x.jpg",
"2000x": "https://creatornode3.audius.co/content/QmSADrMwcqUFHjnuh3r3aWGgZjYFYovfsUxDDtxYwWHsv2/2000x.jpg"
},
"followee_count": 19,
"follower_count": 511,
"does_follow_current_user": false,
"handle": "henryfong",
"id": "nolY2",
"is_verified": true,
"location": "Los Angeles",
"name": "Henry Fong",
"playlist_count": 1,
"profile_picture": {
"150x150": "https://creatornode3.audius.co/content/QmaxRd8YNYzzhU1gkzfaX3vCucNHfyZTiUKCTRtv9QCUjh/150x150.jpg",
"480x480": "https://creatornode3.audius.co/content/QmaxRd8YNYzzhU1gkzfaX3vCucNHfyZTiUKCTRtv9QCUjh/480x480.jpg",
"1000x1000": "https://creatornode3.audius.co/content/QmaxRd8YNYzzhU1gkzfaX3vCucNHfyZTiUKCTRtv9QCUjh/1000x1000.jpg"
},
"repost_count": 2,
"track_count": 12,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x106a6b57ca0731cf57bf4fc7ef6b6bd447f5f5dd",
"spl_wallet": "3WZRg5pbFLP4ey7RhF4n95hR4WnGJTAq6KZBrfmwxBct",
"supporter_count": 7,
"supporting_count": 0,
"total_audio_balance": 133
},
"duration": 222,
"downloadable": false,
"play_count": 13424,
"permalink": "/henryfong/henry-fong-nitti-pbj",
"is_streamable": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | tracks_response |
400 | Bad Request | Bad request | None |
500 | Internal Server Error | Server error | None |
Get Underground Trending Tracks
Code Sample
curl AUDIUS_API_HOST/v1/tracks/trending/underground?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/tracks/trending/underground?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/tracks/trending/underground?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/tracks/trending/underground',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/tracks/trending/underground', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/tracks/trending/underground', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/tracks/trending/underground?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/tracks/trending/underground", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tracks/trending/underground
Gets the top 100 trending underground tracks on Audius
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) |
limit | integer | false | The number of items to fetch |
app_name | string | false | Your app name |
Example Response
{
"data": [
{
"artwork": {
"150x150": "https://audius-content-1.cultur3stake.com/content/QmNwXj3vESow9b1hvessexnuiHhAA8Bhwzycf2UWsQXHGW/150x150.jpg",
"480x480": "https://audius-content-1.cultur3stake.com/content/QmNwXj3vESow9b1hvessexnuiHhAA8Bhwzycf2UWsQXHGW/480x480.jpg",
"1000x1000": "https://audius-content-1.cultur3stake.com/content/QmNwXj3vESow9b1hvessexnuiHhAA8Bhwzycf2UWsQXHGW/1000x1000.jpg"
},
"description": null,
"genre": "Electronic",
"id": "MYvY63X",
"track_cid": "QmWXgp758zKWd4KtmQJwTaLnGR2oGubVhZH7qjiu7Vwi6f",
"mood": "Empowering",
"release_date": null,
"remix_of": {
"tracks": null
},
"repost_count": 14,
"favorite_count": 31,
"tags": "bass,dubstep,trap,beats,downtempo",
"title": "04_Mindex - Wormhole",
"user": {
"album_count": 1,
"artist_pick_track_id": "gQRgZ",
"bio": "Storytelling Bass Music",
"cover_photo": {
"640x": "https://audius-content-1.cultur3stake.com/content/QmQGJeLf73YymgeL9nrtDgSrM255ownEAw8pKupbCbVHFj/640x.jpg",
"2000x": "https://audius-content-1.cultur3stake.com/content/QmQGJeLf73YymgeL9nrtDgSrM255ownEAw8pKupbCbVHFj/2000x.jpg"
},
"followee_count": 12,
"follower_count": 419,
"does_follow_current_user": false,
"handle": "mindex",
"id": "n6OJl",
"is_verified": false,
"location": "Austin, TX",
"name": "MINDEX",
"playlist_count": 0,
"profile_picture": {
"150x150": "https://audius-content-1.cultur3stake.com/content/QmPFsokU1XFz9aKfyd1x2jqZjrJyiPNrXVN6SKf4fkdqBx/150x150.jpg",
"480x480": "https://audius-content-1.cultur3stake.com/content/QmPFsokU1XFz9aKfyd1x2jqZjrJyiPNrXVN6SKf4fkdqBx/480x480.jpg",
"1000x1000": "https://audius-content-1.cultur3stake.com/content/QmPFsokU1XFz9aKfyd1x2jqZjrJyiPNrXVN6SKf4fkdqBx/1000x1000.jpg"
},
"repost_count": 1,
"track_count": 11,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x6f69411eb84a058ec4df2f8da426c420ddbede06",
"spl_wallet": "FQavSBuMGzsavG2M2WbeGWpFDyZwiC4y1XmXeBw13mSw",
"supporter_count": 3,
"supporting_count": 0,
"total_audio_balance": 7
},
"duration": 219,
"downloadable": false,
"play_count": 5557,
"permalink": "/mindex/04_mindex-wormhole",
"is_streamable": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | tracks_response |
Stream Track
Code Sample
curl AUDIUS_API_HOST/v1/tracks/D7KyD/stream?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/tracks/D7KyD/stream?app_name=EXAMPLEAPP HTTP/1.1
fetch('AUDIUS_API_HOST/v1/tracks/D7KyD/stream?app_name=EXAMPLEAPP',
{
method: 'GET'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
result = RestClient.get 'AUDIUS_API_HOST/v1/tracks/D7KyD/stream',
params: {
'app_name' => 'string'
}
p JSON.parse(result)
import requests
r = requests.get('AUDIUS_API_HOST/v1/tracks/D7KyD/stream', params={
'app_name': 'EXAMPLEAPP'
})
print(r.json())
<?php
require 'vendor/autoload.php';
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/tracks/D7KyD/stream', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/tracks/D7KyD/stream?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/tracks/D7KyD/stream", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tracks/{track_id}/stream
Get the streamable MP3 file of a track
This endpoint accepts the Range header for streaming. https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
track_id | string | true | A Track ID |
user_signature | string | false | Optional - signature from the requesting user's wallet. |
user_data | string | false | Optional - data which was used to generate the optional signature argument. |
premium_content_signature | string | false | Optional - premium content signature for this track which was previously generated by a registered DN. |
filename | string | false | Optional - Filename in case user is trying to download track. |
app_name | string | false | Your app name |
Detailed descriptions
user_signature: Optional - signature from the requesting user's wallet. This is needed to authenticate the user and verify access in case the track is premium.
premium_content_signature: Optional - premium content signature for this track which was previously generated by a registered DN. This is so that track access won't have to be check; instead, we check that the user which generated the user signature and the user for whom the DN signed are the same.
filename: Optional - Filename in case user is trying to download track. This is needed by the CN in order to set the Content-Disposition response header.
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | None |
216 | Unknown | Partial content | None |
400 | Bad Request | Bad request | None |
416 | Range Not Satisfiable | Content range invalid | None |
500 | Internal Server Error | Server error | None |
tips
Get Tips
Code Sample
curl AUDIUS_API_HOST/v1/tips?app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/tips?app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/tips?app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/tips',
params: {
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/tips', params={
'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/tips', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/tips?app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/tips", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tips
Gets the most recent tips on the network
Query Parameters
Name | Type | Required | Description | ||||
---|---|---|---|---|---|---|---|
offset | integer | false | The number of items to skip. Useful for pagination (page number * limit) | ||||
limit | integer | false | The number of items to fetch | ||||
user_id | string | false | The user ID of the user making the request | ||||
receiver_min_followers | integer | false | Only include tips to recipients that have this many followers | ||||
receiver_is_verified | boolean | false | Only include tips to recipients that are verified | ||||
current_user_follows | string | false | Only include tips involving the user's followers in the given capacity. Requires user_id to be set.
|
||||
unique_by | string | false | Only include the most recent tip for a user was involved in the given capacity.
|
||||
app_name | string | false | Your app name |
Detailed descriptions
unique_by: Only include the most recent tip for a user was involved in the given capacity.
Eg. 'sender' will ensure that each tip returned has a unique sender, using the most recent tip sent by a user if that user has sent multiple tips.
Example Response
{
"data": [
{
"amount": "3000000000000000000",
"sender": {
"album_count": 0,
"artist_pick_track_id": null,
"bio": "Comunidad de habla Hispana de Audius. Comparte tu música en tus redes sociales y etiquétanos https://linktr.ee/audiusspanish\n\nhttps://discord.com/channels/557662127305785361/862740191046533170",
"cover_photo": {
"640x": "https://blockdaemon-audius-content-04.bdnodes.net/content/QmdQcjCgPa5N1Jb2JrqsFZcHYAR1RGd9YJuiswc4WyHDg9/640x.jpg",
"2000x": "https://blockdaemon-audius-content-04.bdnodes.net/content/QmdQcjCgPa5N1Jb2JrqsFZcHYAR1RGd9YJuiswc4WyHDg9/2000x.jpg"
},
"followee_count": 283,
"follower_count": 97,
"does_follow_current_user": false,
"handle": "AudiusSpanishCommunity",
"id": "Y99y7Jq",
"is_verified": false,
"location": "Latin America & Spain",
"name": "Audius Español 🎧",
"playlist_count": 3,
"profile_picture": {
"150x150": "https://blockdaemon-audius-content-04.bdnodes.net/content/QmWSefzBeuv98mTCKz6sMYdhrLEJDXYzdptQ2RyrNs5EWH/150x150.jpg",
"480x480": "https://blockdaemon-audius-content-04.bdnodes.net/content/QmWSefzBeuv98mTCKz6sMYdhrLEJDXYzdptQ2RyrNs5EWH/480x480.jpg",
"1000x1000": "https://blockdaemon-audius-content-04.bdnodes.net/content/QmWSefzBeuv98mTCKz6sMYdhrLEJDXYzdptQ2RyrNs5EWH/1000x1000.jpg"
},
"repost_count": 92,
"track_count": 0,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x2225f4d82ae264d247f2821e3be5d0a3e3fcd2a7",
"spl_wallet": "F1xQ7nYN1h5PL2biNGoTsChMHBKgprvPE7Frr6kBLadb",
"supporter_count": 5,
"supporting_count": 51,
"total_audio_balance": 191
},
"receiver": {
"album_count": 0,
"artist_pick_track_id": null,
"bio": "Electronic Music Artist From Buenos Aires - Argentina (Minimal - Tech House)\n\nRoad to Music Decentralization ♥",
"cover_photo": {
"640x": "https://audius-content-7.figment.io/content/QmYRKtSfYVPWJYezhKhA4WzAMuqpQDPZcR3DVfdzkvHWaM/640x.jpg",
"2000x": "https://audius-content-7.figment.io/content/QmYRKtSfYVPWJYezhKhA4WzAMuqpQDPZcR3DVfdzkvHWaM/2000x.jpg"
},
"followee_count": 1131,
"follower_count": 1024,
"does_follow_current_user": false,
"handle": "xguidosantiago",
"id": "dEY9m",
"is_verified": false,
"location": "",
"name": "Guido Santiago",
"playlist_count": 0,
"profile_picture": {
"150x150": "https://audius-content-7.figment.io/content/QmUC1ddv4sd3qw5GgRSTDw5HUdDs8QPngZ195Zk9RXHvXB/150x150.jpg",
"480x480": "https://audius-content-7.figment.io/content/QmUC1ddv4sd3qw5GgRSTDw5HUdDs8QPngZ195Zk9RXHvXB/480x480.jpg",
"1000x1000": "https://audius-content-7.figment.io/content/QmUC1ddv4sd3qw5GgRSTDw5HUdDs8QPngZ195Zk9RXHvXB/1000x1000.jpg"
},
"repost_count": 1,
"track_count": 5,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0x53fde452fc2d54f523da5dcde511948109c71bff",
"spl_wallet": "FZg7NYCsfFLBeXbdm1xXoTsBUCPZ6brZnJvDzP41Ndze",
"supporter_count": 1,
"supporting_count": 0,
"total_audio_balance": 5
},
"created_at": "2023-05-15 22:31:02"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | get_tips_response |
resolve
Resolve
Code Sample
curl AUDIUS_API_HOST/v1/resolve?url=https://audius.co/camouflybeats/hypermantra-86216&app_name=EXAMPLEAPP
GET AUDIUS_API_HOST/v1/resolve?url=https://audius.co/camouflybeats/hypermantra-86216&app_name=EXAMPLEAPP HTTP/1.1
const headers = {
'Accept':'application/json'
};
fetch('AUDIUS_API_HOST/v1/resolve?url=https://audius.co/camouflybeats/hypermantra-86216&app_name=EXAMPLEAPP',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'AUDIUS_API_HOST/v1/resolve',
params: {
'url' => 'string',
'app_name' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('AUDIUS_API_HOST/v1/resolve', params={
'url': 'https://audius.co/camouflybeats/hypermantra-86216', 'app_name': 'EXAMPLEAPP'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','AUDIUS_API_HOST/v1/resolve', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("AUDIUS_API_HOST/v1/resolve?url=https://audius.co/camouflybeats/hypermantra-86216&app_name=EXAMPLEAPP");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "AUDIUS_API_HOST/v1/resolve", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /resolve
Resolves and redirects a provided Audius app URL to the API resource URL it represents
This endpoint allows you to lookup and access API resources when you only know the audius.co URL. Tracks, Playlists, and Users are supported.
Query Parameters
Name | Type | Required | Description |
---|---|---|---|
url | string | true | URL to resolve. Either fully formed URL (https://audius.co) or just the absolute path |
app_name | string | false | Your app name |
Example Response
{
"data": {
"artwork": {
"150x150": "https://audius-content-1.cultur3stake.com/content/QmRSVdvMkVnV4UhGNQzNm8pJLLsGwQXyZkCp1dAMYfZx9d/150x150.jpg",
"480x480": "https://audius-content-1.cultur3stake.com/content/QmRSVdvMkVnV4UhGNQzNm8pJLLsGwQXyZkCp1dAMYfZx9d/480x480.jpg",
"1000x1000": "https://audius-content-1.cultur3stake.com/content/QmRSVdvMkVnV4UhGNQzNm8pJLLsGwQXyZkCp1dAMYfZx9d/1000x1000.jpg"
},
"description": "HYPERMANTRA.\n1 play, 7 chapters, no breaks.\n\nget it here: http://tiny.cc/hypermantra\n\npremiered on Ä Live 8/22.\n\ncredits: ilian, the salsoul orchestra, brian bennett, 100% pure poison, you & explosion band, yuji ohno, frank ocean.",
"genre": "Electronic",
"id": "V4W8r",
"track_cid": "QmcPiBC9eszbYnFaBTxWW1njhWrhYGb2GyfsmsrALNvgcK",
"mood": "Yearning",
"release_date": "Mon Aug 24 2020 21:08:36 GMT+0200",
"remix_of": {
"tracks": null
},
"repost_count": 78,
"favorite_count": 173,
"tags": null,
"title": "HYPERMANTRA",
"user": {
"album_count": 0,
"artist_pick_track_id": null,
"bio": "kawaii bounce 🌟\n\nmy sample pack: gum.co/camocandybox1\n\nheader by paprikaworm",
"cover_photo": {
"640x": "https://audius-content-1.cultur3stake.com/content/QmRf3uh9tS8EbV59ArZwJN8UnpsjMyRyp2LVrpU7K1DYm2/640x.jpg",
"2000x": "https://audius-content-1.cultur3stake.com/content/QmRf3uh9tS8EbV59ArZwJN8UnpsjMyRyp2LVrpU7K1DYm2/2000x.jpg"
},
"followee_count": 208,
"follower_count": 17635,
"does_follow_current_user": false,
"handle": "camouflybeats",
"id": "nd6JD",
"is_verified": true,
"location": "",
"name": "camoufly",
"playlist_count": 5,
"profile_picture": {
"150x150": "https://audius-content-1.cultur3stake.com/content/QmP7RZkooL73JNMDSQ34TYYARzmYD8Xd9onA7kh7U5h3PR/150x150.jpg",
"480x480": "https://audius-content-1.cultur3stake.com/content/QmP7RZkooL73JNMDSQ34TYYARzmYD8Xd9onA7kh7U5h3PR/480x480.jpg",
"1000x1000": "https://audius-content-1.cultur3stake.com/content/QmP7RZkooL73JNMDSQ34TYYARzmYD8Xd9onA7kh7U5h3PR/1000x1000.jpg"
},
"repost_count": 162,
"track_count": 80,
"is_deactivated": false,
"is_available": true,
"erc_wallet": "0xa65a69a3c38b55b9a3f83266bcc36fe6950cd85f",
"spl_wallet": "2bnJKYk6WnseedNWkDEACmS5563uxLCrSRAsQqora947",
"supporter_count": 32,
"supporting_count": 0,
"total_audio_balance": 3496
},
"duration": 1741,
"downloadable": false,
"play_count": 12927,
"permalink": "/camouflybeats/hypermantra-86216",
"is_streamable": true
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | None |
302 | Found | Internal redirect | None |
Response Schema
Schemas
The following are examples of response formats you can expect to receive from the API.
user_response
{
"properties": {
"data": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | user | false | none | none |
user
{
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
album_count | integer | true | none | none |
artist_pick_track_id | string | false | none | none |
bio | string | false | none | none |
cover_photo | cover_photo | false | none | none |
followee_count | integer | true | none | none |
follower_count | integer | true | none | none |
does_follow_current_user | boolean | false | none | none |
handle | string | true | none | none |
id | string | true | none | none |
is_verified | boolean | true | none | none |
location | string | false | none | none |
name | string | true | none | none |
playlist_count | integer | true | none | none |
profile_picture | profile_picture | false | none | none |
repost_count | integer | true | none | none |
track_count | integer | true | none | none |
is_deactivated | boolean | true | none | none |
is_available | boolean | true | none | none |
erc_wallet | string | true | none | none |
spl_wallet | string | true | none | none |
supporter_count | integer | true | none | none |
supporting_count | integer | true | none | none |
total_audio_balance | integer | true | none | none |
cover_photo
{
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
640x | string | false | none | none |
2000x | string | false | none | none |
profile_picture
{
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
150x150 | string | false | none | none |
480x480 | string | false | none | none |
1000x1000 | string | false | none | none |
tracks_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"duration",
"favorite_count",
"id",
"play_count",
"repost_count",
"title",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"genre": {
"type": "string"
},
"id": {
"type": "string"
},
"track_cid": {
"type": "string"
},
"mood": {
"type": "string"
},
"release_date": {
"type": "string"
},
"remix_of": {
"properties": {
"tracks": {
"type": "array",
"items": {
"required": [
"parent_track_id"
],
"properties": {
"parent_track_id": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"tags": {
"type": "string"
},
"title": {
"type": "string"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"duration": {
"type": "integer"
},
"downloadable": {
"type": "boolean"
},
"play_count": {
"type": "integer"
},
"permalink": {
"type": "string"
},
"is_streamable": {
"type": "boolean"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Track] | false | none | none |
Track
{
"required": [
"duration",
"favorite_count",
"id",
"play_count",
"repost_count",
"title",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"genre": {
"type": "string"
},
"id": {
"type": "string"
},
"track_cid": {
"type": "string"
},
"mood": {
"type": "string"
},
"release_date": {
"type": "string"
},
"remix_of": {
"properties": {
"tracks": {
"type": "array",
"items": {
"required": [
"parent_track_id"
],
"properties": {
"parent_track_id": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"tags": {
"type": "string"
},
"title": {
"type": "string"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"duration": {
"type": "integer"
},
"downloadable": {
"type": "boolean"
},
"play_count": {
"type": "integer"
},
"permalink": {
"type": "string"
},
"is_streamable": {
"type": "boolean"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
artwork | track_artwork | false | none | none |
description | string | false | none | none |
genre | string | false | none | none |
id | string | true | none | none |
track_cid | string | false | none | none |
mood | string | false | none | none |
release_date | string | false | none | none |
remix_of | remix_parent | false | none | none |
repost_count | integer | true | none | none |
favorite_count | integer | true | none | none |
tags | string | false | none | none |
title | string | true | none | none |
user | user | true | none | none |
duration | integer | true | none | none |
downloadable | boolean | false | none | none |
play_count | integer | true | none | none |
permalink | string | false | none | none |
is_streamable | boolean | false | none | none |
track_artwork
{
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
150x150 | string | false | none | none |
480x480 | string | false | none | none |
1000x1000 | string | false | none | none |
remix_parent
{
"properties": {
"tracks": {
"type": "array",
"items": {
"required": [
"parent_track_id"
],
"properties": {
"parent_track_id": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
tracks | [track_element] | false | none | none |
track_element
{
"required": [
"parent_track_id"
],
"properties": {
"parent_track_id": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
parent_track_id | string | true | none | none |
reposts
{
"properties": {
"data": {
"type": "array",
"items": {
"properties": {
"timestamp": {
"type": "string"
},
"item_type": {
"type": "object"
},
"item": {
"type": "object"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [activity] | false | none | none |
activity
{
"properties": {
"timestamp": {
"type": "string"
},
"item_type": {
"type": "object"
},
"item": {
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
timestamp | string | false | none | none |
item_type | object | false | none | none |
item | object | false | none | none |
tags_response
{
"properties": {
"data": {
"type": "array",
"items": {
"type": "string"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [string] | false | none | none |
favorites_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"created_at",
"favorite_item_id",
"favorite_type",
"user_id"
],
"properties": {
"favorite_item_id": {
"type": "string"
},
"favorite_type": {
"type": "string"
},
"user_id": {
"type": "string"
},
"created_at": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [favorite] | false | none | none |
favorite
{
"required": [
"created_at",
"favorite_item_id",
"favorite_type",
"user_id"
],
"properties": {
"favorite_item_id": {
"type": "string"
},
"favorite_type": {
"type": "string"
},
"user_id": {
"type": "string"
},
"created_at": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
favorite_item_id | string | true | none | none |
favorite_type | string | true | none | none |
user_id | string | true | none | none |
created_at | string | true | none | none |
user_search
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [user] | false | none | none |
subscribers_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [user] | false | none | none |
followers_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [user] | false | none | none |
following_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [user] | false | none | none |
related_artist_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [user] | false | none | none |
user_associated_wallet_response
{
"properties": {
"data": {
"properties": {
"user_id": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | encoded_user_id | false | none | none |
encoded_user_id
{
"properties": {
"user_id": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
user_id | string | false | none | none |
connected_wallets_response
{
"properties": {
"data": {
"required": [
"erc_wallets",
"spl_wallets"
],
"properties": {
"erc_wallets": {
"type": "array",
"items": {
"type": "string"
}
},
"spl_wallets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | connected_wallets | false | none | none |
connected_wallets
{
"required": [
"erc_wallets",
"spl_wallets"
],
"properties": {
"erc_wallets": {
"type": "array",
"items": {
"type": "string"
}
},
"spl_wallets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
erc_wallets | [string] | true | none | none |
spl_wallets | [string] | true | none | none |
get_supporters
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"amount",
"rank",
"sender"
],
"properties": {
"rank": {
"type": "integer"
},
"amount": {
"type": "string"
},
"sender": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [supporter] | false | none | none |
supporter
{
"required": [
"amount",
"rank",
"sender"
],
"properties": {
"rank": {
"type": "integer"
},
"amount": {
"type": "string"
},
"sender": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
rank | integer | true | none | none |
amount | string | true | none | none |
sender | user | true | none | none |
get_supporting
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"amount",
"rank",
"receiver"
],
"properties": {
"rank": {
"type": "integer"
},
"amount": {
"type": "string"
},
"receiver": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [supporting] | false | none | none |
supporting
{
"required": [
"amount",
"rank",
"receiver"
],
"properties": {
"rank": {
"type": "integer"
},
"amount": {
"type": "string"
},
"receiver": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
rank | integer | true | none | none |
amount | string | true | none | none |
receiver | user | true | none | none |
verify_token
{
"properties": {
"data": {
"required": [
"email",
"handle",
"iat",
"name",
"sub",
"userId",
"verified"
],
"properties": {
"userId": {
"type": "string"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"handle": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"profilePicture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"sub": {
"type": "string"
},
"iat": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | decoded_user_token | false | none | none |
decoded_user_token
{
"required": [
"email",
"handle",
"iat",
"name",
"sub",
"userId",
"verified"
],
"properties": {
"userId": {
"type": "string"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"handle": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"profilePicture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"sub": {
"type": "string"
},
"iat": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
userId | string | true | none | none |
string | true | none | none | |
name | string | true | none | none |
handle | string | true | none | none |
verified | boolean | true | none | none |
profilePicture | profilePicture | false | none | none |
sub | string | true | none | none |
iat | string | true | none | none |
profilePicture
{
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
150x150 | string | false | none | none |
480x480 | string | false | none | none |
1000x1000 | string | false | none | none |
playlist_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"favorite_count",
"id",
"is_album",
"playlist_name",
"repost_count",
"total_play_count",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"permalink": {
"type": "string"
},
"id": {
"type": "string"
},
"is_album": {
"type": "boolean"
},
"playlist_name": {
"type": "string"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"total_play_count": {
"type": "integer"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [playlist] | false | none | none |
playlist
{
"required": [
"favorite_count",
"id",
"is_album",
"playlist_name",
"repost_count",
"total_play_count",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"permalink": {
"type": "string"
},
"id": {
"type": "string"
},
"is_album": {
"type": "boolean"
},
"playlist_name": {
"type": "string"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"total_play_count": {
"type": "integer"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
artwork | playlist_artwork | false | none | none |
description | string | false | none | none |
permalink | string | false | none | none |
id | string | true | none | none |
is_album | boolean | true | none | none |
playlist_name | string | true | none | none |
repost_count | integer | true | none | none |
favorite_count | integer | true | none | none |
total_play_count | integer | true | none | none |
user | user | true | none | none |
playlist_artwork
{
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
150x150 | string | false | none | none |
480x480 | string | false | none | none |
1000x1000 | string | false | none | none |
playlist_tracks_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"duration",
"favorite_count",
"id",
"play_count",
"repost_count",
"title",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"genre": {
"type": "string"
},
"id": {
"type": "string"
},
"track_cid": {
"type": "string"
},
"mood": {
"type": "string"
},
"release_date": {
"type": "string"
},
"remix_of": {
"properties": {
"tracks": {
"type": "array",
"items": {
"required": [
"parent_track_id"
],
"properties": {
"parent_track_id": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"tags": {
"type": "string"
},
"title": {
"type": "string"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"duration": {
"type": "integer"
},
"downloadable": {
"type": "boolean"
},
"play_count": {
"type": "integer"
},
"permalink": {
"type": "string"
},
"is_streamable": {
"type": "boolean"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Track] | false | none | none |
playlist_search_result
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"favorite_count",
"id",
"is_album",
"playlist_name",
"repost_count",
"total_play_count",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"permalink": {
"type": "string"
},
"id": {
"type": "string"
},
"is_album": {
"type": "boolean"
},
"playlist_name": {
"type": "string"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"total_play_count": {
"type": "integer"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [playlist] | false | none | none |
trending_playlists_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"favorite_count",
"id",
"is_album",
"playlist_name",
"repost_count",
"total_play_count",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"permalink": {
"type": "string"
},
"id": {
"type": "string"
},
"is_album": {
"type": "boolean"
},
"playlist_name": {
"type": "string"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"total_play_count": {
"type": "integer"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [playlist] | false | none | none |
track_response
{
"properties": {
"data": {
"required": [
"duration",
"favorite_count",
"id",
"play_count",
"repost_count",
"title",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"genre": {
"type": "string"
},
"id": {
"type": "string"
},
"track_cid": {
"type": "string"
},
"mood": {
"type": "string"
},
"release_date": {
"type": "string"
},
"remix_of": {
"properties": {
"tracks": {
"type": "array",
"items": {
"required": [
"parent_track_id"
],
"properties": {
"parent_track_id": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"tags": {
"type": "string"
},
"title": {
"type": "string"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"duration": {
"type": "integer"
},
"downloadable": {
"type": "boolean"
},
"play_count": {
"type": "integer"
},
"permalink": {
"type": "string"
},
"is_streamable": {
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | Track | false | none | none |
track_search
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"duration",
"favorite_count",
"id",
"play_count",
"repost_count",
"title",
"user"
],
"properties": {
"artwork": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"description": {
"type": "string"
},
"genre": {
"type": "string"
},
"id": {
"type": "string"
},
"track_cid": {
"type": "string"
},
"mood": {
"type": "string"
},
"release_date": {
"type": "string"
},
"remix_of": {
"properties": {
"tracks": {
"type": "array",
"items": {
"required": [
"parent_track_id"
],
"properties": {
"parent_track_id": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"favorite_count": {
"type": "integer"
},
"tags": {
"type": "string"
},
"title": {
"type": "string"
},
"user": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"duration": {
"type": "integer"
},
"downloadable": {
"type": "boolean"
},
"play_count": {
"type": "integer"
},
"permalink": {
"type": "string"
},
"is_streamable": {
"type": "boolean"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [Track] | false | none | none |
get_tips_response
{
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"amount",
"created_at"
],
"properties": {
"amount": {
"type": "string"
},
"sender": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"receiver": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"created_at": {
"type": "string"
}
},
"type": "object"
}
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | [tip] | false | none | none |
tip
{
"required": [
"amount",
"created_at"
],
"properties": {
"amount": {
"type": "string"
},
"sender": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"receiver": {
"required": [
"album_count",
"erc_wallet",
"followee_count",
"follower_count",
"handle",
"id",
"is_available",
"is_deactivated",
"is_verified",
"name",
"playlist_count",
"repost_count",
"spl_wallet",
"supporter_count",
"supporting_count",
"total_audio_balance",
"track_count"
],
"properties": {
"album_count": {
"type": "integer"
},
"artist_pick_track_id": {
"type": "string"
},
"bio": {
"type": "string"
},
"cover_photo": {
"properties": {
"640x": {
"type": "string"
},
"2000x": {
"type": "string"
}
},
"type": "object"
},
"followee_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"does_follow_current_user": {
"type": "boolean"
},
"handle": {
"type": "string"
},
"id": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"playlist_count": {
"type": "integer"
},
"profile_picture": {
"properties": {
"150x150": {
"type": "string"
},
"480x480": {
"type": "string"
},
"1000x1000": {
"type": "string"
}
},
"type": "object"
},
"repost_count": {
"type": "integer"
},
"track_count": {
"type": "integer"
},
"is_deactivated": {
"type": "boolean"
},
"is_available": {
"type": "boolean"
},
"erc_wallet": {
"type": "string"
},
"spl_wallet": {
"type": "string"
},
"supporter_count": {
"type": "integer"
},
"supporting_count": {
"type": "integer"
},
"total_audio_balance": {
"type": "integer"
}
},
"type": "object"
},
"created_at": {
"type": "string"
}
},
"type": "object"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
amount | string | true | none | none |
sender | user | false | none | none |
receiver | user | false | none | none |
created_at | string | true | none | none |