Introduction
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization
header with the value "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can retrieve your API token by sending POST request to v1/auth/login
(See docs).
Few tokens to use:
Admin: 1|4AI27ybFZZg0G1GARE65HdvJqoLtMXSSaoVXGc1G
Author: 2|Uwdd4odgSa6QXbMQCy7U6xxKGGw9R5wkflicHnpA
Fan: 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty
Authentication
Check email
Check if email is available for the registration
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/auth/check/email?email=joe%40example.com" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/auth/check/email"
);
const params = {
"email": "joe@example.com",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/auth/check/email';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'email' => 'joe@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
x-ratelimit-limit: 300
x-ratelimit-remaining: 299
access-control-allow-origin: *
set-cookie: qplet_core_service_session=zEL6Gs3vo1olCHsze99qtT5bc6iwSthL2HqJ2qdD; expires=Tue, 10 Jun 2025 12:23:15 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"is_available": false
}
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Register
Endpoint for registering new users
Example request:
curl --request POST \
"https://api.qplet.dev/v1/auth/register" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"Joe Shmoe\",
\"email\": \"another.joe@example.com\",
\"type\": \"fan\",
\"password\": \"Ye4oKoEa3Ro9ll\",
\"password_repeat\": \"Ye4oKoEa3Ro9ll\"
}"
const url = new URL(
"https://api.qplet.dev/v1/auth/register"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "Joe Shmoe",
"email": "another.joe@example.com",
"type": "fan",
"password": "Ye4oKoEa3Ro9ll",
"password_repeat": "Ye4oKoEa3Ro9ll"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/auth/register';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'Joe Shmoe',
'email' => 'another.joe@example.com',
'type' => 'fan',
'password' => 'Ye4oKoEa3Ro9ll',
'password_repeat' => 'Ye4oKoEa3Ro9ll',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
x-ratelimit-limit: 300
x-ratelimit-remaining: 298
access-control-allow-origin: *
set-cookie: qplet_core_service_session=s03EmiChS0iIWRsszvl0XnAXOK4GLTWmzIQWMoRw; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"name": "Joe Shmoe",
"email": "another.joe@example.com",
"type": "fan"
}
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Authenticate
Authenticate user
Example request:
curl --request POST \
"https://api.qplet.dev/v1/auth/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"email\": \"joe@example.com\",
\"password\": \"Ye4oKoEa3Ro9ll\",
\"device\": \"IPhone 14\"
}"
const url = new URL(
"https://api.qplet.dev/v1/auth/login"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"email": "joe@example.com",
"password": "Ye4oKoEa3Ro9ll",
"device": "IPhone 14"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/auth/login';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'email' => 'joe@example.com',
'password' => 'Ye4oKoEa3Ro9ll',
'device' => 'IPhone 14',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
x-ratelimit-limit: 300
x-ratelimit-remaining: 297
access-control-allow-origin: *
set-cookie: qplet_core_service_session=G1pQ6Qsij4E4QoXl2Wue0Rz66Vh26KLriM53ErUO; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"token": "508|FIFv8kTxRfgUmJ7CcBYdyNE02umtvpVtRyP3xJ5H295267be"
}
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Request password reset
Request a password reset mail
Example request:
curl --request POST \
"https://api.qplet.dev/v1/auth/password-reset?email=joe%40example.com" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/auth/password-reset"
);
const params = {
"email": "joe@example.com",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/auth/password-reset';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'email' => 'joe@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reset password
Set new password for the account
Example request:
curl --request PUT \
"https://api.qplet.dev/v1/auth/password-reset/possimus" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"email\": \"joe@example.com\",
\"password\": \"Ye4oKoEa3Ro9ll\",
\"password_repeat\": \"Ye4oKoEa3Ro9ll\"
}"
const url = new URL(
"https://api.qplet.dev/v1/auth/password-reset/possimus"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"email": "joe@example.com",
"password": "Ye4oKoEa3Ro9ll",
"password_repeat": "Ye4oKoEa3Ro9ll"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/auth/password-reset/possimus';
$response = $client->put(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'email' => 'joe@example.com',
'password' => 'Ye4oKoEa3Ro9ll',
'password_repeat' => 'Ye4oKoEa3Ro9ll',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (404):
{
"type": "PasswordReset",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Validate password request code
Check validation code before asking for filling in the password
Example request:
curl --request POST \
"https://api.qplet.dev/v1/auth/password-reset/reprehenderit/validate?email=joe%40example.com" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/auth/password-reset/reprehenderit/validate"
);
const params = {
"email": "joe@example.com",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/auth/password-reset/reprehenderit/validate';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'email' => 'joe@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
x-ratelimit-limit: 300
x-ratelimit-remaining: 296
access-control-allow-origin: *
set-cookie: qplet_core_service_session=LC6SI0phF2ufBKc6eYEB733stoUww7u95ZM9DCtg; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"is_valid": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Users
Show
Current user
requires authentication
Endpoint for fetching details about logged in user
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/me" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=ObI4TlXohM0fmsbXsYtXjjACcy7J2DIOaZ5DZq8u; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"email": "admin@qplet.ru",
"is_subscribed": false,
"analytics": {
"tracks": 39,
"albums": 5,
"subscribers": 269
},
"type": "admin"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
By ID
Endpoint for fetching user details
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=QPtBfMlyiPxIw5LSSkETn8Nc2DTphxyPSkhkn9up; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"is_subscribed": false,
"analytics": {
"tracks": 48,
"albums": 5,
"subscribers": 254
}
}
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Soft deletes own account
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/users/me" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update currently logged in user
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/users/me" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"Joe Shmoe\",
\"password\": \"Ye4oKoEa3Ro9ll\",
\"password_repeat\": \"Ye4oKoEa3Ro9ll\",
\"profile\": {
\"gender\": \"male\",
\"nickname\": \"joe_shmoe\",
\"website\": \"https:\\/\\/qplet.ru\",
\"about\": \"I`m Joe Shmoe\\n\\n I love singing and dancing.\",
\"avatar_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"birthdate\": \"2000-01-01\"
}
}"
const url = new URL(
"https://api.qplet.dev/v1/users/me"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "Joe Shmoe",
"password": "Ye4oKoEa3Ro9ll",
"password_repeat": "Ye4oKoEa3Ro9ll",
"profile": {
"gender": "male",
"nickname": "joe_shmoe",
"website": "https:\/\/qplet.ru",
"about": "I`m Joe Shmoe\n\n I love singing and dancing.",
"avatar_id": "00000000-422e-41ff-a266-2b0a093307e6",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"birthdate": "2000-01-01"
}
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'Joe Shmoe',
'password' => 'Ye4oKoEa3Ro9ll',
'password_repeat' => 'Ye4oKoEa3Ro9ll',
'profile' => [
'gender' => 'male',
'nickname' => 'joe_shmoe',
'website' => 'https://qplet.ru',
'about' => 'I`m Joe Shmoe'."\n"
."\n"
.' I love singing and dancing.',
'avatar_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'birthdate' => '2000-01-01',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=sy73F8Wm09g7lUWne3TCGP08sIOAU4plujJMF3Mo; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching list of users
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users?filters[name]=Joe+Shmoe&filters[type]=author&filters[genres]=%5B%229e9acd81-1040-4302-8433-0e7757b8cfad%22%2C%229e9acd81-13dc-4152-bf89-00b4df8a0913%22%5D&filters[subscribed]=&per_page=20&page=1&pagination_type=page" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users"
);
const params = {
"filters[name]": "Joe Shmoe",
"filters[type]": "author",
"filters[genres]": "["9e9acd81-1040-4302-8433-0e7757b8cfad","9e9acd81-13dc-4152-bf89-00b4df8a0913"]",
"filters[subscribed]": "",
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[name]' => 'Joe Shmoe',
'filters[type]' => 'author',
'filters[genres]' => '["9e9acd81-1040-4302-8433-0e7757b8cfad","9e9acd81-13dc-4152-bf89-00b4df8a0913"]',
'filters[subscribed]' => '',
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=2n1dvfrmCQMfDvpKnpbtocNCWTrPfPNwq89CwYqI; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/users",
"per_page": 20,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Access
Blocked users
requires authentication
Users being blocked by the currently logged-in user
Example request:
curl --request POST \
"https://api.qplet.dev/v1/users/me/blocked?per_page=20&page=1&pagination_type=page&sort[by]=created_at&sort[order]=asc" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me/blocked"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
"sort[by]": "created_at",
"sort[order]": "asc",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/blocked';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
'sort[by]' => 'created_at',
'sort[order]' => 'asc',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Block
requires authentication
Block a user
Example request:
curl --request POST \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/block" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/block"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/block';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Unblock
requires authentication
Unblock a user
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/block" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/block"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/block';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Subscriptions
Subscribe
requires authentication
Subscribe to a user
Example request:
curl --request POST \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribe" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribe"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribe';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Unsubscribe
requires authentication
Unsubscribe from a user
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribe" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribe"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribe';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Subscriptions
requires authentication
List of users that the user is subscribed to
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscriptions?per_page=20&page=1&pagination_type=page&sort[by]=created_at&sort[order]=asc" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscriptions"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
"sort[by]": "created_at",
"sort[order]": "asc",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscriptions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
'sort[by]' => 'created_at',
'sort[order]' => 'asc',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Subscribers
requires authentication
List of users that are subscribed to the user
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribers?per_page=20&page=1&pagination_type=page&sort[by]=created_at&sort[order]=asc" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribers"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
"sort[by]": "created_at",
"sort[order]": "asc",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/subscribers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
'sort[by]' => 'created_at',
'sort[order]' => 'asc',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Posts
Store
requires authentication
Create a post with optionally shared entity
- another post
- album
- event
- playlist
- track
Example request:
curl --request POST \
"https://api.qplet.dev/v1/posts" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"content\": \"My Post content\",
\"share\": {
\"entity\": \"post\",
\"id\": \"00000000-fdb0-43ce-b555-e0a26ed563ac\"
}
}"
const url = new URL(
"https://api.qplet.dev/v1/posts"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"content": "My Post content",
"share": {
"entity": "post",
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/posts';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'content' => 'My Post content',
'share' => [
'entity' => 'post',
'id' => '00000000-fdb0-43ce-b555-e0a26ed563ac',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=Ulkfqbn6n1HdiAsZGtB0sVRuzScuCsXVMhvoVBah; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee88e-572d-4ff3-83ed-1033a95dd36e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "My Post content",
"created_at": 1749550994,
"share": {
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"type": "post"
},
"analytics": {
"views": 0,
"likes": 0,
"comments": 0,
"shares": 0
},
"is_liked": 0
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update own post
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"content\": \"My Post content updated\"
}"
const url = new URL(
"https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"content": "My Post content updated"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'content' => 'My Post content updated',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=e0AEHBECY8VobiFLv26GPlQ3C7HtfvAHJnbIvdef; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "My Post content updated",
"created_at": 1743877106,
"updated_at": 1749550994,
"analytics": {
"views": 0,
"likes": 0,
"comments": 0,
"shares": 0
},
"is_liked": 0
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Post",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own post
Admin can remove any post
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=pdOy4mGthq4tkzHy5mAVHJDul0zTLp8CfrkszvCv; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Post",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching list of posts
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/posts?filters[author_id]=00000000-df85-4307-a069-68612c4471e2&filters[subscribed]=&per_page=20&page=1&pagination_type=page&sort[by]=created_at&sort[order]=asc" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/posts"
);
const params = {
"filters[author_id]": "00000000-df85-4307-a069-68612c4471e2",
"filters[subscribed]": "",
"per_page": "20",
"page": "1",
"pagination_type": "page",
"sort[by]": "created_at",
"sort[order]": "asc",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/posts';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[author_id]' => '00000000-df85-4307-a069-68612c4471e2',
'filters[subscribed]' => '',
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
'sort[by]' => 'created_at',
'sort[order]' => 'asc',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=ErfBFz2NHmCSR5AEjvlPFMZPtkkkEDGaceouz6W9; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/posts",
"per_page": 20,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
Returns single post
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/posts/00000000-fdb0-43ce-b555-e0a26ed563ac';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=pAJg694YSxkPBROIJJSUaO7PySxKBgQajz0bbGj3; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Dolorum cumque et natus adipisci facere qui. Ipsa non sunt dolores illo reprehenderit. Quos odio est corporis amet eveniet sunt et. Repellat asperiores aspernatur blanditiis impedit.",
"created_at": 1743877106,
"analytics": {
"views": 0,
"likes": 0,
"comments": 0,
"shares": 0
},
"is_liked": 0
}
}
Example response (404):
{
"type": "Post",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Comments
Store
requires authentication
Create a comment in association to an entity
Example request:
curl --request POST \
"https://api.qplet.dev/v1/comments" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"entity\": {
\"type\": \"post\",
\"id\": \"00000000-53f7-4a5b-8c34-e171172c8ba8\"
},
\"content\": \"My comment to the post\"
}"
const url = new URL(
"https://api.qplet.dev/v1/comments"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"entity": {
"type": "post",
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8"
},
"content": "My comment to the post"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/comments';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'entity' => [
'type' => 'post',
'id' => '00000000-53f7-4a5b-8c34-e171172c8ba8',
],
'content' => 'My comment to the post',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=qAnMNyrVXvKyjglpof6MDISIo6EzhPmQaCIiVn2w; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee887-11da-457c-8ac2-4c461d9b159e",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "My comment to the post",
"created_at": 1749550990
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update own comment
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"content\": \"My comment to the post\"
}"
const url = new URL(
"https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"content": "My comment to the post"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'content' => 'My comment to the post',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=rp9x6YyIkPMbUT2nrIUywyy6wawpfQvf6vnIp36g; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-4113-4f04-bf25-cbca8546be74",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [
null
],
"content": "My comment to the post",
"created_at": 1743877106,
"updated_at": 1749550990
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Comment",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own comment
Admin can remove any comment
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=gFadcsLThRAPISYLQGQU30Lr4iok9xzY6B76NYuy; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Comment",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching list of comments
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/comments?filters[entity_type]=post&filters[entity_id]=00000000-53f7-4a5b-8c34-e171172c8ba8&per_page=20&page=1&pagination_type=page" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/comments"
);
const params = {
"filters[entity_type]": "post",
"filters[entity_id]": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/comments';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[entity_type]' => 'post',
'filters[entity_id]' => '00000000-53f7-4a5b-8c34-e171172c8ba8',
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=MJL8toBzmkDPBxRKN7pOFY0fz2ReBEvXMNUttC8A; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "00000000-4113-4f04-bf25-cbca8546be74",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [
null
],
"content": "In labore aut et. Velit vero enim nisi sit quaerat quia. Et fuga ab rem molestias ut totam porro error. Quia voluptate non nobis labore.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-7fe6-4cea-ac29-7c75cdaeb7f2",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Aliquam consequuntur et impedit dolores nulla asperiores. Occaecati sit provident enim ipsam. Nostrum modi tenetur itaque amet. Quos omnis aperiam soluta itaque porro ab commodi.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-806f-4ab6-b5fc-07abf9e9da3e",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Magni est at autem et autem officiis accusamus. Consequuntur nam et reiciendis repellat maxime. Voluptas quo saepe cumque eum. Dolor quia aperiam eveniet repudiandae minima doloribus quae.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-80e8-4eca-a2af-fea93271c225",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Tenetur expedita aut quod adipisci commodi officiis. Eum voluptatem doloremque nesciunt dignissimos. Dolor accusamus dolorem magni.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-815f-4f12-8444-0f2eb8e8b21a",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Quaerat ipsum suscipit quaerat est. Et incidunt amet animi. Consectetur omnis consequatur voluptas eum est. Ex sint impedit repellendus laborum repellendus sint.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-81ef-4e15-bf65-408ef34e99f6",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Laboriosam eaque sed numquam aut unde ipsa. Magnam culpa voluptatem incidunt. Itaque excepturi error eos quis cupiditate omnis necessitatibus atque. Autem ut velit placeat eligendi.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-82bd-45ec-97a0-696a121e2667",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Eaque velit necessitatibus velit. Assumenda ullam dolores officia non quia aut eveniet cupiditate. Aut maxime officiis tempore ea eum facere.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-8338-460a-879c-44db20919b15",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Labore cum tenetur ut. Nobis in ut eveniet et et omnis voluptatibus vel. Ut ut aperiam culpa voluptatibus voluptas pariatur. Error aspernatur quod qui omnis facere et assumenda nobis.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-83be-4110-aa44-2517295c945c",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Non architecto dignissimos non est harum. Earum dicta quo exercitationem qui rem. Iusto dolor assumenda nihil vel est veniam.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-8462-4e4b-a333-2733493dffbe",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Est qui provident et optio. Qui totam qui sunt amet. Qui nihil hic voluptas qui aspernatur atque.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-84f7-4f91-ae9c-2c47a7a1b80c",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Quia modi sit tenetur harum est labore nulla. Minus asperiores eius aut. Quidem distinctio excepturi consequatur quo in unde ut.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-858c-4d6a-896a-bb4044b891b0",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Amet ut minus blanditiis tenetur qui est amet. Maiores iste autem eaque necessitatibus harum ea incidunt. Mollitia nisi blanditiis inventore dicta quia dicta. Quam consequatur dolor ipsam aut ad.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-860b-4f33-8cb8-3b944855528b",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Rerum doloribus qui labore id cupiditate tempore eaque. Atque voluptate iste eaque. Et cumque quisquam occaecati. Distinctio repellendus dignissimos consequatur error.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-86b2-4da0-82ba-72ada6a44092",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Impedit dolorem et voluptas sit est. Consequatur quod est voluptatem fuga placeat omnis. Provident eaque veritatis nobis eum et. Impedit odio voluptatem molestias vero harum ratione.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-8736-471b-b93b-a272fcbb092b",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Iste et dolores nobis mollitia reiciendis. Non voluptatem necessitatibus aut similique. Enim cumque facilis ratione ex sed nostrum praesentium. Quos aliquid consequatur sed nihil a reiciendis earum.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-87bb-4634-b03e-96aaef1d2843",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Ut veritatis doloribus inventore hic sed. Consequatur dolor nesciunt et perferendis officiis quis. Aut rerum iure aut ab. Eius fugiat ut natus accusamus quas.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-8833-4957-af2a-c87ba1425070",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Eaque qui quas doloremque beatae numquam quasi dolorem. Quam et adipisci occaecati voluptates incidunt quia. Natus velit a quo doloremque perferendis et aperiam harum. Mollitia et possimus sed.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-88ac-4d15-bd79-69dda45f4bee",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Ab cupiditate et deleniti qui reiciendis suscipit ipsum. Aut et dolor reprehenderit rerum. Eligendi atque molestias saepe nihil.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-8921-42fc-b645-c9189e7cb767",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Dolorem occaecati ipsa saepe. Cum ducimus quae dolore officiis veniam. Laudantium reiciendis aut nam. Eius quia enim at labore est voluptatem.",
"created_at": 1743877106
},
{
"id": "9e9acd8b-89ba-4400-a27b-be6843aa1eb1",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Dolores veniam inventore itaque sit sed iusto saepe. Excepturi corrupti neque vel. Facere similique consequatur distinctio in eos nesciunt. Quia et et suscipit illum qui cum et.",
"created_at": 1743877106
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 3,
"path": "http://localhost:8083/v1/comments",
"per_page": 20,
"to": 20,
"total": 51
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
Returns single comment
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/comments/00000000-4113-4f04-bf25-cbca8546be74';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=MwTdIPHJF8jH4RJ8K8WziNlf7PBTFiDTd4p7xsKc; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-4113-4f04-bf25-cbca8546be74",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [
{
"type": "image",
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"filename": "sit-officiis-velit-itaquecil",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil",
"extension": "cil",
"created_at": "2025-04-05T18:18:25.000000Z"
}
],
"content": "In labore aut et. Velit vero enim nisi sit quaerat quia. Et fuga ab rem molestias ut totam porro error. Quia voluptate non nobis labore.",
"created_at": 1743877106
}
}
Example response (404):
{
"type": "Comment",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Albums
Create
requires authentication
Add new Album
Example request:
curl --request POST \
"https://api.qplet.dev/v1/albums" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"My favourite\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"description\": \"Write short or long description about your album in here ...\",
\"tracks\": [
\"00000000-a791-4783-9845-4b571a9e579f\"
]
}"
const url = new URL(
"https://api.qplet.dev/v1/albums"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "My favourite",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"description": "Write short or long description about your album in here ...",
"tracks": [
"00000000-a791-4783-9845-4b571a9e579f"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/albums';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'My favourite',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'description' => 'Write short or long description about your album in here ...',
'tracks' => [
'00000000-a791-4783-9845-4b571a9e579f',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=07qH96hZg3A2vdQvv0LDmSudMzGFCd94qUtyoQIE; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee88d-f602-4ff0-913d-396f95162427",
"name": "My favourite",
"description": "Write short or long description about your album in here ...",
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil",
"filename": "sit-officiis-velit-itaquecil",
"created_at": "2025-04-05T18:18:25+00:00",
"type": "image",
"analytics": {
"views": 2769,
"likes": 0,
"comments": 0,
"shares": 11
}
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"tracks_count": 1,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 7,
"shares": 6
},
"is_liked": 0
}
],
"created_at": 1749550994
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update a Album
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"My favourite\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"description\": \"Write short or long description about your album in here ...\",
\"tracks\": [
\"00000000-a791-4783-9845-4b571a9e579f\"
]
}"
const url = new URL(
"https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "My favourite",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"description": "Write short or long description about your album in here ...",
"tracks": [
"00000000-a791-4783-9845-4b571a9e579f"
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'My favourite',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'description' => 'Write short or long description about your album in here ...',
'tracks' => [
'00000000-a791-4783-9845-4b571a9e579f',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=tOt9GRsNl6Wdc0tWbuqmhjRRfsaR3JD8eDzWdOeX; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-b7fa-4324-b250-a3c6c78b65c4",
"name": "My favourite",
"description": "Write short or long description about your album in here ...",
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil",
"filename": "sit-officiis-velit-itaquecil",
"created_at": "2025-04-05T18:18:25+00:00",
"type": "image",
"analytics": {
"views": 198,
"likes": 0,
"comments": 0,
"shares": 10
}
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"tracks_count": 1,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 12,
"likes": 0,
"comments": 0,
"shares": 9
},
"is_liked": 0
}
],
"created_at": 1743877134
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Album",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete a Album
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=wnH8XP5esWfEHE8jd2aH3KtSWPa9gomxPKRQytgq; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Album",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching all available albums.
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/albums?filters[name]=&filters[owner]=&per_page=6&page=28&cursor=voluptas&pagination_type=page&sort[by]=name&sort[order]=desc" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/albums"
);
const params = {
"filters[name]": "",
"filters[owner]": "",
"per_page": "6",
"page": "28",
"cursor": "voluptas",
"pagination_type": "page",
"sort[by]": "name",
"sort[order]": "desc",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/albums';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[name]' => '',
'filters[owner]' => '',
'per_page' => '6',
'page' => '28',
'cursor' => 'voluptas',
'pagination_type' => 'page',
'sort[by]' => 'name',
'sort[order]' => 'desc',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=uUC5LwwGhB5RNEahHrwII150dX0y2zAizEoQIz3o; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 28,
"from": null,
"last_page": 10,
"path": "http://localhost:8083/v1/albums",
"per_page": 6,
"to": null,
"total": 55
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
requires authentication
Endpoint for fetching album details
When album is private it can only be viewed by admin
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/albums/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=7iPPNNzXbcrkJLOWv3Fjk5Nl8XlcuqvdIuViMJGe; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-b7fa-4324-b250-a3c6c78b65c4",
"name": "My favourite",
"description": null,
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil",
"filename": "sit-officiis-velit-itaquecil",
"created_at": "2025-04-05T18:18:25+00:00",
"type": "image",
"analytics": {
"views": 2875,
"likes": 0,
"comments": 0,
"shares": 7
}
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"tracks_count": 21,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"cover": {
"id": "9e9acd8c-2b3d-4eca-8daa-ce2f0e604e2b",
"url": "https://via.placeholder.com/640x480.png/0066cc?text=magnam"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 6,
"shares": 11
},
"is_liked": 0
},
{
"id": "9e9acdb7-c6c5-453a-b525-b94a1fca7d92",
"title": "Sed aut corrupti magnam et est.",
"media_asset": {
"id": "9e9acdb7-7930-4b20-bad4-7f0ba388d84e",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-7930-4b20-bad4-7f0ba388d84e.sql"
},
"cover": {
"id": "9e9acdb7-7a89-47d8-b364-e10272b0546c",
"url": "https://via.placeholder.com/640x480.png/0000dd?text=ut"
},
"owner": {
"id": "9e9acdb7-77f3-4c0b-8945-61a57aeeb143",
"name": "Otilia Marquardt",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 9,
"likes": 0,
"comments": 3,
"shares": 11
},
"is_liked": 0
},
{
"id": "9e9acdb7-c777-47fc-8e19-e3856c236aa9",
"title": "Voluptatem consequatur at magnam atque laboriosam.",
"media_asset": {
"id": "9e9acdb7-7d14-4c49-bc7e-f62805dccd17",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-7d14-4c49-bc7e-f62805dccd17.rif"
},
"cover": {
"id": "9e9acdb7-7e56-475b-b0cd-47227983a036",
"url": "https://via.placeholder.com/640x480.png/00aa33?text=aut"
},
"owner": {
"id": "9e9acdb7-7bd9-4193-8a44-f7e6e65cc09a",
"name": "Prof. Barney Haag PhD",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 12,
"shares": 5
},
"is_liked": 0
},
{
"id": "9e9acdb7-c840-4692-bbd2-ea66c2cacf02",
"title": "Voluptate praesentium similique dignissimos doloremque iure.",
"media_asset": {
"id": "9e9acdb7-80ec-478c-97eb-e596c7d61fd1",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-80ec-478c-97eb-e596c7d61fd1.gph"
},
"cover": {
"id": "9e9acdb7-822e-42fc-a4bc-27c029873c73",
"url": "https://via.placeholder.com/640x480.png/008866?text=porro"
},
"owner": {
"id": "9e9acdb7-7fae-43da-be2c-e3e4d4dd2fd2",
"name": "Jalon Kling",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 15,
"shares": 0
},
"is_liked": 0
},
{
"id": "9e9acdb7-c8ea-405a-8312-92fc8e5ab5ed",
"title": "Eius aliquid temporibus dolores perferendis.",
"media_asset": {
"id": "9e9acdb7-84cb-4ed1-8bda-33a7278eae48",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-84cb-4ed1-8bda-33a7278eae48.potx"
},
"cover": {
"id": "9e9acdb7-85ff-4c04-bd2f-77dd86a7e1c9",
"url": "https://via.placeholder.com/640x480.png/009911?text=sit"
},
"owner": {
"id": "9e9acdb7-839e-494e-b8f5-72c58e3271ff",
"name": "Alysa Ebert",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 1,
"likes": 0,
"comments": 12,
"shares": 8
},
"is_liked": 0
},
{
"id": "9e9acdb7-c997-4921-bd88-a1b459ccbbf6",
"title": "Et est voluptatem aliquid ut repudiandae.",
"media_asset": {
"id": "9e9acdb7-8898-4242-a04a-a073ae73149a",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-8898-4242-a04a-a073ae73149a.x3d"
},
"cover": {
"id": "9e9acdb7-8a07-4132-bcab-2deffab826d1",
"url": "https://via.placeholder.com/640x480.png/003311?text=quia"
},
"owner": {
"id": "9e9acdb7-873d-41e7-bd8e-544245855933",
"name": "Mr. Eddie Bode IV",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 6,
"shares": 0
},
"is_liked": 0
},
{
"id": "9e9acdb7-ca46-473d-8373-82cb265e724d",
"title": "Aut enim quaerat ea suscipit est quia qui.",
"media_asset": {
"id": "9e9acdb7-8c84-4770-a812-21b2568269f2",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-8c84-4770-a812-21b2568269f2.uvvt"
},
"cover": {
"id": "9e9acdb7-8dbc-4226-b816-5d4e65bae3ab",
"url": "https://via.placeholder.com/640x480.png/006633?text=voluptas"
},
"owner": {
"id": "9e9acdb7-8b4b-41d4-ac4d-fefe517aa268",
"name": "Patsy Upton",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 12,
"likes": 0,
"comments": 1,
"shares": 1
},
"is_liked": 0
},
{
"id": "9e9acdb7-cb1e-419c-abf4-905c14f91c37",
"title": "Ut maxime id quos consectetur.",
"media_asset": {
"id": "9e9acdb7-905e-4a42-ac37-94daf616856f",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-905e-4a42-ac37-94daf616856f.mmf"
},
"cover": {
"id": "9e9acdb7-919d-4a39-b715-1e0a76f7c2c9",
"url": "https://via.placeholder.com/640x480.png/006699?text=porro"
},
"owner": {
"id": "9e9acdb7-8f14-4a9e-8adf-e3850f2c9e84",
"name": "Lenna Lueilwitz DVM",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 10,
"shares": 13
},
"is_liked": 0
},
{
"id": "9e9acdb7-cb98-4ed0-99eb-558c1695cb7b",
"title": "Earum reiciendis voluptas dolore quos commodi.",
"media_asset": {
"id": "9e9acdb7-945e-42ec-b01c-a2e616272e28",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-945e-42ec-b01c-a2e616272e28.uvvu"
},
"cover": {
"id": "9e9acdb7-95ac-418e-9493-a2d9f26880a0",
"url": "https://via.placeholder.com/640x480.png/0077aa?text=quod"
},
"owner": {
"id": "9e9acdb7-9312-4a0d-8b3c-356154249dbd",
"name": "Wendy Boehm MD",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 7,
"shares": 14
},
"is_liked": 0
},
{
"id": "9e9acdb7-cc3d-42b1-bcb4-7d4e5ccb6bd0",
"title": "Omnis doloremque quam mollitia nam sit possimus aspernatur dolor.",
"media_asset": {
"id": "9e9acdb7-984d-43c9-8049-7c0efc5d60e9",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-984d-43c9-8049-7c0efc5d60e9.ufdl"
},
"cover": {
"id": "9e9acdb7-998e-46ea-93c6-681d82988ef8",
"url": "https://via.placeholder.com/640x480.png/0066ff?text=cupiditate"
},
"owner": {
"id": "9e9acdb7-96fd-4f01-af64-850cfb28dc76",
"name": "Marcelino Rippin",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 10,
"shares": 3
},
"is_liked": 0
},
{
"id": "9e9acdb7-ccc4-463c-9460-8107a1145243",
"title": "Quaerat odio magnam architecto molestiae consequuntur et vero ea.",
"media_asset": {
"id": "9e9acdb7-9c33-4f6a-909f-b31e2765b9f3",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-9c33-4f6a-909f-b31e2765b9f3.odf"
},
"cover": {
"id": "9e9acdb7-9d88-41d8-9de7-1a41c9a26907",
"url": "https://via.placeholder.com/640x480.png/001111?text=ut"
},
"owner": {
"id": "9e9acdb7-9b09-4cdc-a6e1-c1a557fff064",
"name": "Claudie Braun DVM",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 7,
"shares": 7
},
"is_liked": 0
},
{
"id": "9e9acdb7-cd4d-4b72-bb73-faf0e65de18f",
"title": "Nesciunt dicta et est et.",
"media_asset": {
"id": "9e9acdb7-a007-4ac0-8664-b3da11f3f3a8",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-a007-4ac0-8664-b3da11f3f3a8.iges"
},
"cover": {
"id": "9e9acdb7-a1b1-4a93-9c8b-9bc4f93283d1",
"url": "https://via.placeholder.com/640x480.png/00dd66?text=odio"
},
"owner": {
"id": "9e9acdb7-9ed5-438f-a5a8-b93fb2139d23",
"name": "Emmie Veum",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 14,
"shares": 3
},
"is_liked": 0
},
{
"id": "9e9acdb7-ce06-45d6-860f-39a91d013b9f",
"title": "Nulla voluptates asperiores repudiandae nulla suscipit nulla sequi.",
"media_asset": {
"id": "9e9acdb7-a480-4520-ba1a-e0f6d6b0d21d",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-a480-4520-ba1a-e0f6d6b0d21d.hdf"
},
"cover": {
"id": "9e9acdb7-a5b2-40f4-b9e2-f102e9f52785",
"url": "https://via.placeholder.com/640x480.png/0066cc?text=odio"
},
"owner": {
"id": "9e9acdb7-a33b-4eeb-be8b-c94d46c250a3",
"name": "Prof. Ford Dicki III",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 6,
"likes": 0,
"comments": 0,
"shares": 2
},
"is_liked": 0
},
{
"id": "9e9acdb7-ce8d-4fbe-851d-a3658179640f",
"title": "Voluptatem qui cupiditate veniam aut vel ullam quia dolorum.",
"media_asset": {
"id": "9e9acdb7-a869-46dd-90cb-d080d8ea4c37",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-a869-46dd-90cb-d080d8ea4c37.swf"
},
"cover": {
"id": "9e9acdb7-a99c-482d-90ae-16c21d5f6726",
"url": "https://via.placeholder.com/640x480.png/00bb22?text=distinctio"
},
"owner": {
"id": "9e9acdb7-a720-4891-bc74-eaf0f58cfd08",
"name": "Yadira Douglas",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 12,
"shares": 11
},
"is_liked": 0
},
{
"id": "9e9acdb7-cf35-4e94-b8ee-d0079759b3c9",
"title": "Eos sit sint dignissimos.",
"media_asset": {
"id": "9e9acdb7-ac1f-43f4-9d8a-837786c588ac",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-ac1f-43f4-9d8a-837786c588ac.yin"
},
"cover": {
"id": "9e9acdb7-ad5d-4a57-a718-4c0aacd4d192",
"url": "https://via.placeholder.com/640x480.png/00ccff?text=voluptate"
},
"owner": {
"id": "9e9acdb7-aada-4f17-b370-7bca964f4587",
"name": "Grayson Parker PhD",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 9,
"likes": 0,
"comments": 7,
"shares": 8
},
"is_liked": 0
},
{
"id": "9e9acdb7-cfbe-4c0a-beef-32e7c476afc5",
"title": "Inventore saepe rerum ratione veritatis quia.",
"media_asset": {
"id": "9e9acdb7-b01a-4587-bb04-1613e3e3493e",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-b01a-4587-bb04-1613e3e3493e.sxw"
},
"cover": {
"id": "9e9acdb7-b196-4a8f-b8c5-1446b783d10d",
"url": "https://via.placeholder.com/640x480.png/0044aa?text=occaecati"
},
"owner": {
"id": "9e9acdb7-aec6-4518-9e61-9f00b19407b9",
"name": "Malika Bernier",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 7,
"shares": 15
},
"is_liked": 0
},
{
"id": "9e9acdb7-d04c-49dc-a2bc-0c024c47e1a5",
"title": "Non qui quia eos quos cum.",
"media_asset": {
"id": "9e9acdb7-b43b-46d3-99ee-cf1ae6bd7aa2",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-b43b-46d3-99ee-cf1ae6bd7aa2.xfdl"
},
"cover": {
"id": "9e9acdb7-b581-428b-83ed-49c5d2ba969a",
"url": "https://via.placeholder.com/640x480.png/0066ff?text=impedit"
},
"owner": {
"id": "9e9acdb7-b2f1-4808-b102-467344a886cd",
"name": "Brianne Spencer",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 1,
"likes": 0,
"comments": 15,
"shares": 3
},
"is_liked": 0
},
{
"id": "9e9acdb7-d100-48f0-b39c-f3d711b90e55",
"title": "Magni qui quam perspiciatis vel aut.",
"media_asset": {
"id": "9e9acdb7-b864-46ff-8adb-f0d166a86561",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-b864-46ff-8adb-f0d166a86561.json"
},
"cover": {
"id": "9e9acdb7-b9b3-4b8c-a5dd-28990d107d25",
"url": "https://via.placeholder.com/640x480.png/009944?text=quo"
},
"owner": {
"id": "9e9acdb7-b6f7-42cc-be32-74c5c1b34ad2",
"name": "Frederick Kuhn",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 8,
"likes": 0,
"comments": 6,
"shares": 13
},
"is_liked": 0
},
{
"id": "9e9acdb7-d17d-4272-a838-190ec32d75d8",
"title": "Dolores consequuntur corporis et dolor deleniti.",
"media_asset": {
"id": "9e9acdb7-bc21-4f64-93e0-2c96bc65250c",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-bc21-4f64-93e0-2c96bc65250c.vcd"
},
"cover": {
"id": "9e9acdb7-bd75-4cc0-8663-c1ce71f5b1c0",
"url": "https://via.placeholder.com/640x480.png/001133?text=velit"
},
"owner": {
"id": "9e9acdb7-badd-404d-b4ee-012934646dae",
"name": "Mrs. Oceane Bauch DDS",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 14,
"shares": 3
},
"is_liked": 0
},
{
"id": "9e9acdb7-d225-453b-8493-3690d32d6a31",
"title": "Impedit odio dolorum veritatis fuga numquam.",
"media_asset": {
"id": "9e9acdb7-c00f-44a2-8b99-f856f418f1c5",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-c00f-44a2-8b99-f856f418f1c5.itp"
},
"cover": {
"id": "9e9acdb7-c14f-4079-8a0c-316db35c49ec",
"url": "https://via.placeholder.com/640x480.png/00cc55?text=a"
},
"owner": {
"id": "9e9acdb7-bec9-473a-a69c-7f1ac6311764",
"name": "Dr. Brittany Crist I",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 15,
"shares": 14
},
"is_liked": 0
},
{
"id": "9e9acdb7-d2b0-44bd-ad90-d9b77538e25b",
"title": "Molestias ducimus error cumque sint.",
"media_asset": {
"id": "9e9acdb7-c3d4-45a5-b6ce-582db0d65626",
"url": "http://localhost:8083/v1/media-assets/9e9acdb7-c3d4-45a5-b6ce-582db0d65626.fly"
},
"cover": {
"id": "9e9acdb7-c521-4a67-9987-efb08bb23497",
"url": "https://via.placeholder.com/640x480.png/0044cc?text=reprehenderit"
},
"owner": {
"id": "9e9acdb7-c29e-48de-8608-3ad407ec8a2c",
"name": "Marilie Kerluke PhD",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 0,
"shares": 5
},
"is_liked": 0
}
],
"created_at": 1743877134
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Album",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Playlists
System
New tracks
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/playlists/new" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/new"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/new';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=gK9CYWaXdRZvm4UQ67pn0Di43wyuo3D1Hp0rUb7s; expires=Tue, 10 Jun 2025 12:23:08 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Popular tracks
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/playlists/popular" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/popular"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/popular';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=cA51tIMXDkkrv8N6BtMk72YO8A2JW3IFJbVKd6HN; expires=Tue, 10 Jun 2025 12:23:09 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Recommended tracks
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/playlists/recommended" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/recommended"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/recommended';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=eEXC3oQ7mMmwBm28rGoWR6wKQTEGSguBMqxR2Awe; expires=Tue, 10 Jun 2025 12:23:12 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
requires authentication
Endpoint for fetching playlist details
When playlist is private it can only be viewed by admin
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=tA8ZdSeFGLltJ6GSDrDA9smsKMRgpOaXiqyLIuSY; expires=Tue, 10 Jun 2025 12:23:12 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-b7fa-4324-b250-a3c6c78b65c4",
"name": "My favourite",
"description": null,
"cover": null,
"tracks_count": 21,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 7,
"shares": 3
},
"is_liked": 0
},
{
"id": "9e9acdb4-309c-43ba-a07e-a39429f19da5",
"title": "Modi placeat itaque maiores ea ut.",
"media_asset": {
"id": "9e9acdb3-e198-49bf-94f8-21a2ee357d54",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-e198-49bf-94f8-21a2ee357d54.otp"
},
"owner": {
"id": "9e9acdb3-e03f-4a6a-9b23-b22ae409bb19",
"name": "Mrs. Dominique Hirthe III",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 8,
"shares": 8
},
"is_liked": 0
},
{
"id": "9e9acdb4-313f-45db-aa6d-f0cce83904ea",
"title": "Voluptas quia vel quidem sit error et consequuntur.",
"media_asset": {
"id": "9e9acdb3-e578-49fc-af58-d2b7797b427c",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-e578-49fc-af58-d2b7797b427c.pyv"
},
"owner": {
"id": "9e9acdb3-e43c-45f6-bc82-da509e12ed8d",
"name": "Izabella Grady DDS",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 2,
"shares": 13
},
"is_liked": 0
},
{
"id": "9e9acdb4-31d0-4a1a-8504-34fe01f45c9f",
"title": "Hic sit molestiae in non.",
"media_asset": {
"id": "9e9acdb3-e96e-47da-bb46-bb43729526d7",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-e96e-47da-bb46-bb43729526d7.odft"
},
"owner": {
"id": "9e9acdb3-e828-4c63-b442-039d8ff4c6d8",
"name": "Hardy Hauck",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 8,
"likes": 0,
"comments": 15,
"shares": 8
},
"is_liked": 0
},
{
"id": "9e9acdb4-3274-4538-8bcf-1f28ab7bde86",
"title": "Laboriosam culpa at amet perspiciatis voluptatem non perferendis nam.",
"media_asset": {
"id": "9e9acdb3-ed32-42fb-af24-e253a65b4ac0",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-ed32-42fb-af24-e253a65b4ac0.urls"
},
"owner": {
"id": "9e9acdb3-ebff-4cf5-ac5d-b10710dec5b3",
"name": "Miss Eldridge Kerluke",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 7,
"shares": 2
},
"is_liked": 0
},
{
"id": "9e9acdb4-3301-4333-ab72-05a5c0a4589d",
"title": "Sint eum modi eaque neque quia est aut.",
"media_asset": {
"id": "9e9acdb3-f111-4fd3-a209-c3760efd69c8",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-f111-4fd3-a209-c3760efd69c8.jsonml"
},
"owner": {
"id": "9e9acdb3-efc7-4c5e-9c9c-7b87885627ce",
"name": "Mya Rodriguez",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 1,
"shares": 14
},
"is_liked": 0
},
{
"id": "9e9acdb4-33b5-431f-a8c2-3011c1214a96",
"title": "Quam veniam neque dolore ducimus voluptates.",
"media_asset": {
"id": "9e9acdb3-f68b-4ad7-b493-2da18f61182c",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-f68b-4ad7-b493-2da18f61182c.kon"
},
"owner": {
"id": "9e9acdb3-f52b-46b0-b4ce-2ddd555e938a",
"name": "Justine Cremin",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 7,
"shares": 1
},
"is_liked": 0
},
{
"id": "9e9acdb4-343c-4cab-b734-7bd78982fe8c",
"title": "Ut sequi est sunt sed.",
"media_asset": {
"id": "9e9acdb3-facc-41c6-a11c-baadc58c9190",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-facc-41c6-a11c-baadc58c9190.dae"
},
"owner": {
"id": "9e9acdb3-f98e-400f-a3f7-80beb84520e0",
"name": "Sedrick White",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 10,
"shares": 6
},
"is_liked": 0
},
{
"id": "9e9acdb4-34e0-4360-aa13-c99e162a7899",
"title": "Nulla perspiciatis sapiente dolorem voluptatum.",
"media_asset": {
"id": "9e9acdb3-fe82-4183-b741-e3aef3ee1cfa",
"url": "http://localhost:8083/v1/media-assets/9e9acdb3-fe82-4183-b741-e3aef3ee1cfa.vtu"
},
"owner": {
"id": "9e9acdb3-fd4c-4dc0-a4d7-549516210b2b",
"name": "Dawson Champlin",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 1,
"likes": 0,
"comments": 11,
"shares": 11
},
"is_liked": 0
},
{
"id": "9e9acdb4-3567-4828-add3-4411dc2f60f8",
"title": "Voluptates aut rem ut qui.",
"media_asset": {
"id": "9e9acdb4-023e-44fc-84c5-eb1c2cc84ef2",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-023e-44fc-84c5-eb1c2cc84ef2.uvvx"
},
"owner": {
"id": "9e9acdb4-0108-4f40-9e51-ec36c70db14f",
"name": "Concepcion Stark",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 1,
"likes": 0,
"comments": 13,
"shares": 9
},
"is_liked": 0
},
{
"id": "9e9acdb4-35fa-4e79-ae82-637968fa579f",
"title": "Velit asperiores sint et qui.",
"media_asset": {
"id": "9e9acdb4-0619-410d-bce9-5f9c1e81a333",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-0619-410d-bce9-5f9c1e81a333.nfo"
},
"owner": {
"id": "9e9acdb4-04dd-4069-82ce-465214e911be",
"name": "Janae Lynch",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 7,
"shares": 4
},
"is_liked": 0
},
{
"id": "9e9acdb4-3682-4cc1-9f71-8a973ee37788",
"title": "Doloribus maxime laboriosam eos ut adipisci consequatur alias.",
"media_asset": {
"id": "9e9acdb4-0a23-4809-b4c9-81afbd55ec4a",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-0a23-4809-b4c9-81afbd55ec4a.ktx"
},
"owner": {
"id": "9e9acdb4-08e4-4412-af69-83988aebf113",
"name": "Mrs. Meredith Denesik I",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 3,
"shares": 14
},
"is_liked": 0
},
{
"id": "9e9acdb4-371d-43a4-86b2-4404198f66bb",
"title": "Ipsa sed qui excepturi aut.",
"media_asset": {
"id": "9e9acdb4-0deb-4e61-a180-550f9fc26e42",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-0deb-4e61-a180-550f9fc26e42.musicxml"
},
"owner": {
"id": "9e9acdb4-0cc0-4612-9e2a-f99f98577247",
"name": "Mercedes Cummings",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 14,
"shares": 12
},
"is_liked": 0
},
{
"id": "9e9acdb4-37b1-4a47-b7f9-e864088fc92f",
"title": "Cum modi iste voluptatem porro dolor voluptas repudiandae.",
"media_asset": {
"id": "9e9acdb4-11d8-475e-ab4e-cf6f4b8b8760",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-11d8-475e-ab4e-cf6f4b8b8760.odi"
},
"owner": {
"id": "9e9acdb4-10a3-49ad-a802-fbf0455c9dfa",
"name": "Janie Pollich",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 9,
"likes": 0,
"comments": 12,
"shares": 13
},
"is_liked": 0
},
{
"id": "9e9acdb4-3841-41a2-a54f-90a9ffa45f77",
"title": "Est magnam voluptatem incidunt labore recusandae.",
"media_asset": {
"id": "9e9acdb4-15e3-41de-a662-526eb4bfedec",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-15e3-41de-a662-526eb4bfedec.wcm"
},
"owner": {
"id": "9e9acdb4-14a7-42c9-8858-4ba3f2450cdd",
"name": "Zella Gorczany DDS",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 4,
"shares": 14
},
"is_liked": 0
},
{
"id": "9e9acdb4-38be-4e67-935a-6442b044bbfd",
"title": "Repellendus est cum velit incidunt sed iure ab quis.",
"media_asset": {
"id": "9e9acdb4-1a37-47a8-87f4-3a34622c6834",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-1a37-47a8-87f4-3a34622c6834.fdf"
},
"owner": {
"id": "9e9acdb4-18b1-4395-89f8-ddcf84aeb259",
"name": "Tiana Gutkowski PhD",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 13,
"shares": 3
},
"is_liked": 0
},
{
"id": "9e9acdb4-396d-407d-b3dd-52960f93ec4e",
"title": "Fuga dolorem et eaque officiis animi quia sint vel.",
"media_asset": {
"id": "9e9acdb4-1e5a-46c5-9462-b1dc16c0d46a",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-1e5a-46c5-9462-b1dc16c0d46a.tiff"
},
"owner": {
"id": "9e9acdb4-1d1c-4eae-93c4-1045d683411e",
"name": "Mr. Nicklaus Feeney",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 12,
"shares": 12
},
"is_liked": 0
},
{
"id": "9e9acdb4-39f9-445f-a7d6-092c3e6a5ba5",
"title": "Odio nulla dolores eius ut et a dolores illum.",
"media_asset": {
"id": "9e9acdb4-229b-4972-9f38-bcc34811208b",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-229b-4972-9f38-bcc34811208b.uoml"
},
"owner": {
"id": "9e9acdb4-2148-43cd-a06e-22577efa0d01",
"name": "Dayne VonRueden",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 2,
"shares": 1
},
"is_liked": 0
},
{
"id": "9e9acdb4-3a8a-4589-8473-cd0b849af791",
"title": "Quis mollitia repellat officia deserunt non.",
"media_asset": {
"id": "9e9acdb4-2674-47e4-8da5-f550b853bd01",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-2674-47e4-8da5-f550b853bd01.nsc"
},
"owner": {
"id": "9e9acdb4-2527-4b86-a9c0-fef8b283cd41",
"name": "Amara Grimes",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 2,
"shares": 1
},
"is_liked": 0
},
{
"id": "9e9acdb4-3b10-4d8b-b035-a767d7eda7c1",
"title": "Id assumenda qui quia enim adipisci magni architecto.",
"media_asset": {
"id": "9e9acdb4-2a4e-445e-905c-8036b8589dcc",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-2a4e-445e-905c-8036b8589dcc.odt"
},
"owner": {
"id": "9e9acdb4-291c-4431-8c95-0033d6baffe8",
"name": "Aliya Brakus",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 10,
"shares": 13
},
"is_liked": 0
},
{
"id": "9e9acdb4-3bbe-44a0-a015-722e1bbc528b",
"title": "Nemo sed laboriosam et est est iste qui.",
"media_asset": {
"id": "9e9acdb4-2e2e-4d18-a7b5-dd2b95236b84",
"url": "http://localhost:8083/v1/media-assets/9e9acdb4-2e2e-4d18-a7b5-dd2b95236b84.gtar"
},
"owner": {
"id": "9e9acdb4-2cdf-4418-94bb-1feb3a1e5d71",
"name": "Mr. Andre Boyle",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 8,
"likes": 0,
"comments": 12,
"shares": 14
},
"is_liked": 0
}
],
"is_editable": true
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Playlist",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create
requires authentication
Add new Playlist
Example request:
curl --request POST \
"https://api.qplet.dev/v1/playlists" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"My favourite\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"description\": \"Write short or long description about your album in here ...\",
\"tracks\": [
\"00000000-a791-4783-9845-4b571a9e579f\"
]
}"
const url = new URL(
"https://api.qplet.dev/v1/playlists"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "My favourite",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"description": "Write short or long description about your album in here ...",
"tracks": [
"00000000-a791-4783-9845-4b571a9e579f"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'My favourite',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'description' => 'Write short or long description about your album in here ...',
'tracks' => [
'00000000-a791-4783-9845-4b571a9e579f',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=3wBwU7wnJpUmFCpRvl8ceIaRq48Pk3XdH76s4BzS; expires=Tue, 10 Jun 2025 12:23:12 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee88a-e873-4709-8c7a-65c9e435e435",
"name": "My favourite",
"description": "Write short or long description about your album in here ...",
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil",
"filename": "sit-officiis-velit-itaquecil",
"created_at": "2025-04-05T18:18:25+00:00",
"type": "image",
"analytics": {
"views": 733,
"likes": 0,
"comments": 0,
"shares": 2
}
},
"tracks_count": 1,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 13,
"shares": 15
},
"is_liked": 0
}
],
"is_editable": true
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update a Playlist
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"My favourite\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"description\": \"Write short or long description about your album in here ...\",
\"tracks\": [
\"00000000-a791-4783-9845-4b571a9e579f\"
]
}"
const url = new URL(
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "My favourite",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"description": "Write short or long description about your album in here ...",
"tracks": [
"00000000-a791-4783-9845-4b571a9e579f"
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'My favourite',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'description' => 'Write short or long description about your album in here ...',
'tracks' => [
'00000000-a791-4783-9845-4b571a9e579f',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=wuQcO0UwHwD33hiwPACXSDS3kKJwoqpBvU6eJ7hU; expires=Tue, 10 Jun 2025 12:23:12 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-b7fa-4324-b250-a3c6c78b65c4",
"name": "My favourite",
"description": "Write short or long description about your album in here ...",
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil",
"filename": "sit-officiis-velit-itaquecil",
"created_at": "2025-04-05T18:18:25+00:00",
"type": "image",
"analytics": {
"views": 373,
"likes": 0,
"comments": 0,
"shares": 11
}
},
"tracks_count": 1,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 15,
"shares": 9
},
"is_liked": 0
}
],
"is_editable": true
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Playlist",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete a Playlist
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=zM8AYGdnYk3AivOUZb51VsKckBsnGu32W2hb7vP4; expires=Tue, 10 Jun 2025 12:23:12 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Playlist",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching all available playlists.
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/playlists?filters[name]=" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists"
);
const params = {
"filters[name]": "",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[name]' => '',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=ZSBPmncCXVoIDE4ujJF9MteGvUJPphW9zgA0dLuD; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "a5bd1de4-1bee-427b-9288-e832f254bd8a",
"name": "New",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": false
},
{
"id": "a5bd1de4-1bee-427b-9288-e832f254bd8b",
"name": "Popular",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": false
},
{
"id": "a5bd1de4-1bee-427b-9288-e832f254bd8c",
"name": "Recommended",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": false
},
{
"id": "9e9acdb2-e29d-47a9-a5fa-51c90501de5d",
"name": "Consequatur",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": true
},
{
"id": "9e9acdb2-e1fb-49d2-9236-d2c10abd70e8",
"name": "Doloribus",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": true
},
{
"id": "9e9acdb2-e32d-4487-af8d-d44e56a7b783",
"name": "Rerum",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": true
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Tracks
Add track
requires authentication
Add track to the playlist
Example request:
curl --request POST \
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4/00000000-a791-4783-9845-4b571a9e579f" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4/00000000-a791-4783-9845-4b571a9e579f"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4/00000000-a791-4783-9845-4b571a9e579f';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=3xhue1jqnuaJcZmeHjw7te3Iwi6d3g16CnRgAh0T; expires=Tue, 10 Jun 2025 12:23:12 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Playlist",
"message": "No query results"
}
Example response (404):
{
"type": "Track",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove track
requires authentication
Remove track from the playlist
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4/00000000-a791-4783-9845-4b571a9e579f" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4/00000000-a791-4783-9845-4b571a9e579f"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4/00000000-a791-4783-9845-4b571a9e579f';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=HPvEaDJFltalyASQsNdfxTzaJ6SjCC7zUL7Xi0pp; expires=Tue, 10 Jun 2025 12:23:12 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Playlist",
"message": "No query results"
}
Example response (404):
{
"type": "Track",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Tracks
Store
requires authentication
Create a track in association to an entity
Example request:
curl --request POST \
"https://api.qplet.dev/v1/tracks" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"media_asset_id\": \"00000000-422e-41ff-a266-2b0a093307e7\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"album_id\": \"00000000-b7fa-4324-b250-a3c6c78b65c4\",
\"title\": \"Rolling in the Deep\",
\"genres\": [
\"a4900f3b-176e-3c66-80c5-cc8cbea4c9bb\"
],
\"lyrics\": {
\"is_own\": false,
\"author\": \"Hubby Bobby\",
\"content\": \"Lorem ipsum dolor sit amet\\\\nconsectetur adipiscing elit\\\\nPhasellus consectetur\\\\nfelis eu pretium accumsan\"
},
\"music\": {
\"is_own\": false,
\"author\": \"Bobby Hubby\"
}
}"
const url = new URL(
"https://api.qplet.dev/v1/tracks"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"media_asset_id": "00000000-422e-41ff-a266-2b0a093307e7",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"album_id": "00000000-b7fa-4324-b250-a3c6c78b65c4",
"title": "Rolling in the Deep",
"genres": [
"a4900f3b-176e-3c66-80c5-cc8cbea4c9bb"
],
"lyrics": {
"is_own": false,
"author": "Hubby Bobby",
"content": "Lorem ipsum dolor sit amet\\nconsectetur adipiscing elit\\nPhasellus consectetur\\nfelis eu pretium accumsan"
},
"music": {
"is_own": false,
"author": "Bobby Hubby"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/tracks';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'media_asset_id' => '00000000-422e-41ff-a266-2b0a093307e7',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'album_id' => '00000000-b7fa-4324-b250-a3c6c78b65c4',
'title' => 'Rolling in the Deep',
'genres' => [
'a4900f3b-176e-3c66-80c5-cc8cbea4c9bb',
],
'lyrics' => [
'is_own' => false,
'author' => 'Hubby Bobby',
'content' => 'Lorem ipsum dolor sit amet\\nconsectetur adipiscing elit\\nPhasellus consectetur\\nfelis eu pretium accumsan',
],
'music' => [
'is_own' => false,
'author' => 'Bobby Hubby',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=A7nfI7HqXt67EPrvBMocCKV7FUAbvVMrcNe1Dgdl; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee88e-2524-4041-9fa9-11dcee638567",
"title": "Rolling in the Deep",
"media_asset": {
"id": "00000000-422e-41ff-a266-2b0a093307e7",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e7.odft"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "https://via.placeholder.com/640x480.png/0022dd?text=ducimus"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 1,
"shares": 15
},
"is_liked": 0,
"lyrics": {
"is_own": false,
"author": "Hubby Bobby",
"content": "Lorem ipsum dolor sit amet\\nconsectetur adipiscing elit\\nPhasellus consectetur\\nfelis eu pretium accumsan"
},
"music": {
"is_own": false,
"author": "Bobby Hubby"
}
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update own track
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"media_asset_id\": \"00000000-422e-41ff-a266-2b0a093307e7\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"album_id\": \"00000000-b7fa-4324-b250-a3c6c78b65c4\",
\"title\": \"Rolling in the Deep (Updated)\",
\"genres\": [
\"6fded916-b2b9-3e9c-a877-750162f37f27\"
],
\"lyrics\": {
\"is_own\": false,
\"author\": \"Hubby Bobby\",
\"content\": \"Lorem ipsum dolor sit amet\\\\nconsectetur adipiscing elit\\\\nPhasellus consectetur\\\\nfelis eu pretium accumsan\"
},
\"music\": {
\"is_own\": false,
\"author\": \"Bobby Hubby\"
}
}"
const url = new URL(
"https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"media_asset_id": "00000000-422e-41ff-a266-2b0a093307e7",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"album_id": "00000000-b7fa-4324-b250-a3c6c78b65c4",
"title": "Rolling in the Deep (Updated)",
"genres": [
"6fded916-b2b9-3e9c-a877-750162f37f27"
],
"lyrics": {
"is_own": false,
"author": "Hubby Bobby",
"content": "Lorem ipsum dolor sit amet\\nconsectetur adipiscing elit\\nPhasellus consectetur\\nfelis eu pretium accumsan"
},
"music": {
"is_own": false,
"author": "Bobby Hubby"
}
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'media_asset_id' => '00000000-422e-41ff-a266-2b0a093307e7',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'album_id' => '00000000-b7fa-4324-b250-a3c6c78b65c4',
'title' => 'Rolling in the Deep (Updated)',
'genres' => [
'6fded916-b2b9-3e9c-a877-750162f37f27',
],
'lyrics' => [
'is_own' => false,
'author' => 'Hubby Bobby',
'content' => 'Lorem ipsum dolor sit amet\\nconsectetur adipiscing elit\\nPhasellus consectetur\\nfelis eu pretium accumsan',
],
'music' => [
'is_own' => false,
'author' => 'Bobby Hubby',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=OugdvFIkVSmLUSH5vJCEcpjICPkdZg2sC1NbZcbt; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep (Updated)",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "https://via.placeholder.com/640x480.png/0022dd?text=ducimus"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 9,
"likes": 0,
"comments": 14,
"shares": 5
},
"is_liked": 0,
"lyrics": {
"is_own": false,
"author": "Hubby Bobby",
"content": "Lorem ipsum dolor sit amet\\nconsectetur adipiscing elit\\nPhasellus consectetur\\nfelis eu pretium accumsan"
},
"music": {
"is_own": false,
"author": "Bobby Hubby"
}
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Track",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own track
Admin can remove any track
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=jfx60MDUQGxhPePuaYXlG9DNie3HnF9ZekhPPwkm; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Track",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching list of tracks
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/tracks?filters[title]=Rolling+in+the+Deep&filters[owner]=Joe+Shmoe&filters[owner_id]=00000000-df85-4307-a069-68612c4471e2&filters[genres]=%5B%229e9acd81-1040-4302-8433-0e7757b8cfad%22%2C%229e9acd81-13dc-4152-bf89-00b4df8a0913%22%5D&filters[subscribed]=&per_page=20&page=1&pagination_type=page" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/tracks"
);
const params = {
"filters[title]": "Rolling in the Deep",
"filters[owner]": "Joe Shmoe",
"filters[owner_id]": "00000000-df85-4307-a069-68612c4471e2",
"filters[genres]": "["9e9acd81-1040-4302-8433-0e7757b8cfad","9e9acd81-13dc-4152-bf89-00b4df8a0913"]",
"filters[subscribed]": "",
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/tracks';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[title]' => 'Rolling in the Deep',
'filters[owner]' => 'Joe Shmoe',
'filters[owner_id]' => '00000000-df85-4307-a069-68612c4471e2',
'filters[genres]' => '["9e9acd81-1040-4302-8433-0e7757b8cfad","9e9acd81-13dc-4152-bf89-00b4df8a0913"]',
'filters[subscribed]' => '',
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=SxEYaFkWyRKSaP1KzWNZ8ooDEgY1HigY3rGCNBos; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/tracks",
"per_page": 20,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
Returns single track
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/tracks/00000000-a791-4783-9845-4b571a9e579f';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=8orwxancgzSwgLdXfy75XxLpN3CE2oGx9Obwh5nV; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "9e9acd8c-29cc-4cd8-b51c-ca35f43d414a",
"url": "http://localhost:8083/v1/media-assets/9e9acd8c-29cc-4cd8-b51c-ca35f43d414a.tif"
},
"cover": {
"id": "9e9acd8c-2b3d-4eca-8daa-ce2f0e604e2b",
"url": "https://via.placeholder.com/640x480.png/0066cc?text=magnam"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 9,
"likes": 0,
"comments": 8,
"shares": 10
},
"is_liked": 0,
"lyrics": {
"is_own": 1,
"author": null,
"content": "Sunt voluptatibus sed sed aut sit veniam ex aut. Itaque optio reiciendis est possimus non. Voluptas voluptas eius rem voluptatem quis temporibus. Similique velit sunt quia molestiae."
},
"music": {
"is_own": 0,
"author": "Miss Jessica Brown MD"
}
}
}
Example response (404):
{
"type": "Track",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Data
MediaAssets
Own assets
requires authentication
Endpoint for fetching own MediaAssets.
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/media-assets/my?filters[type]=image&per_page=100&page=1&pagination_type=page" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/media-assets/my"
);
const params = {
"filters[type]": "image",
"per_page": "100",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/media-assets/my';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[type]' => 'image',
'per_page' => '100',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=1mdumJfH2l8t7p4Yqzp0AQC8Ef4GfiaxvyAdQHRG; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/media-assets/my",
"per_page": 100,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create
requires authentication
Add new MediaAsset
Example request:
curl --request POST \
"https://api.qplet.dev/v1/media-assets" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--form "is_public="\
--form "file=@/Users/andvla/Projects/Private/Qplet/Api/storage/app/public/logo.png"
const url = new URL(
"https://api.qplet.dev/v1/media-assets"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
"Accept-Language": "en-US",
};
const body = new FormData();
body.append('is_public', '');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/media-assets';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'multipart' => [
[
'name' => 'is_public',
'contents' => ''
],
[
'name' => 'file',
'contents' => fopen('/Users/andvla/Projects/Private/Qplet/Api/storage/app/public/logo.png', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=KrdaFcIXFpzpkmo8OlP6nJRKY9CQYHQ8jnDVKvVd; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "88fd20ba-dcd3-4449-ac69-e397ee7769a0",
"url": "http://localhost:8083/v1/media-assets/88fd20ba-dcd3-4449-ac69-e397ee7769a0.png",
"filename": "logo.png",
"created_at": "2025-06-10T10:23:14+00:00",
"type": "image",
"analytics": {
"views": 1107,
"likes": 0,
"comments": 0,
"shares": 15
}
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete a MediaAsset
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/media-assets/sed" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/media-assets/sed"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/media-assets/sed';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "MediaAsset",
"message": "No query results"
}
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=CnXlon4g3SbqFsi0vga5ab8sqqmYNSztcHbJT4zA; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the media asset you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching all available MediaAssets.
In order to list non-public MediaAssets { filters.is_public: false } you'll need an Admin role.
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/media-assets?filters[type]=image&filters[is_public]=1&filters[owner_id]=00000000-df85-4307-a069-68612c4471e2&per_page=100&page=1&pagination_type=page" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/media-assets"
);
const params = {
"filters[type]": "image",
"filters[is_public]": "1",
"filters[owner_id]": "00000000-df85-4307-a069-68612c4471e2",
"per_page": "100",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/media-assets';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[type]' => 'image',
'filters[is_public]' => '1',
'filters[owner_id]' => '00000000-df85-4307-a069-68612c4471e2',
'per_page' => '100',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=sArEXFqnXfkd5RciD7Q0T8V2pxhg9QdIOkLhXnUP; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/media-assets",
"per_page": 100,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get file
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/media-assets/qui.officiis" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/media-assets/qui.officiis"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/media-assets/qui.officiis';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "File",
"message": "No query results"
}
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=Lcq5poW8JYVAPnJVwhq43j4MBFDdv0qzS6qnyxHy; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the media asset you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get file
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/media-assets/download/ad.officiis" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/media-assets/download/ad.officiis"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/media-assets/download/ad.officiis';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "File",
"message": "No query results"
}
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=GTrc9WLd2AF5T7t4xwTsvpVHWqydVwXdeCbjApra; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the media asset you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
Endpoint for fetching MediaAsset details
When MediaAsset is private it can only be viewed by admin or owner
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/media-assets/at" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/media-assets/at"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/media-assets/at';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "MediaAsset",
"message": "No query results"
}
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=ETgRb0YlYIKUb6F4oPQslnfYCP1NZr9bYzmz5GLw; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the media asset you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Genres
List
Endpoint for fetching all available genres.
In order to list non-public genres { filters.is_public: false } you'll need an Admin role.
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/data/genres?filters[name]=Alternative&filters[is_public]=1&per_page=100&page=1&pagination_type=page" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/data/genres"
);
const params = {
"filters[name]": "Alternative",
"filters[is_public]": "1",
"per_page": "100",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/data/genres';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[name]' => 'Alternative',
'filters[is_public]' => '1',
'per_page' => '100',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=79qWX67NqnTzwMJT115Pp9iGJ7N9Z2xsDVq97twq; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "9e9acd81-1040-4302-8433-0e7757b8cfad",
"name": "Alternative",
"tracks": 413985
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://localhost:8083/v1/data/genres",
"per_page": 100,
"to": 1,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
Endpoint for fetching genre details
When genre is private it can only be viewed by admin
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/data/genres/9e9acd81-1040-4302-8433-0e7757b8cfad" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/data/genres/9e9acd81-1040-4302-8433-0e7757b8cfad"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/data/genres/9e9acd81-1040-4302-8433-0e7757b8cfad';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=oDkTifQ80zWVCXKLdk6eX2pbGbD2qssnOhxx0tGz; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9e9acd81-1040-4302-8433-0e7757b8cfad",
"name": "Alternative",
"tracks": 413985
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Genre",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Countries
Endpoint for fetching list of countries
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/data/countries" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/data/countries"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/data/countries';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=CmJUpO9gmDUt4jW0ZHlpYTI2OyTpvVcTWn9hv5Q5; expires=Tue, 10 Jun 2025 12:23:18 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "AF",
"name": "Afghanistan"
},
{
"id": "AX",
"name": "Åland Islands"
},
{
"id": "AL",
"name": "Albania"
},
{
"id": "DZ",
"name": "Algeria"
},
{
"id": "AS",
"name": "American Samoa"
},
{
"id": "AD",
"name": "Andorra"
},
{
"id": "AO",
"name": "Angola"
},
{
"id": "AI",
"name": "Anguilla"
},
{
"id": "AQ",
"name": "Antarctica"
},
{
"id": "AG",
"name": "Antigua and Barbuda"
},
{
"id": "AR",
"name": "Argentina"
},
{
"id": "AM",
"name": "Armenia"
},
{
"id": "AW",
"name": "Aruba"
},
{
"id": "AU",
"name": "Australia"
},
{
"id": "AT",
"name": "Austria"
},
{
"id": "AZ",
"name": "Azerbaijan"
},
{
"id": "BS",
"name": "Bahamas"
},
{
"id": "BH",
"name": "Bahrain"
},
{
"id": "BD",
"name": "Bangladesh"
},
{
"id": "BB",
"name": "Barbados"
},
{
"id": "BY",
"name": "Belarus"
},
{
"id": "BE",
"name": "Belgium"
},
{
"id": "BZ",
"name": "Belize"
},
{
"id": "BJ",
"name": "Benin"
},
{
"id": "BM",
"name": "Bermuda"
},
{
"id": "BT",
"name": "Bhutan"
},
{
"id": "BO",
"name": "Bolivia, Plurinational State of"
},
{
"id": "BQ",
"name": "Bonaire, Sint Eustatius and Saba"
},
{
"id": "BA",
"name": "Bosnia and Herzegovina"
},
{
"id": "BW",
"name": "Botswana"
},
{
"id": "BV",
"name": "Bouvet Island"
},
{
"id": "BR",
"name": "Brazil"
},
{
"id": "IO",
"name": "British Indian Ocean Territory"
},
{
"id": "BN",
"name": "Brunei Darussalam"
},
{
"id": "BG",
"name": "Bulgaria"
},
{
"id": "BF",
"name": "Burkina Faso"
},
{
"id": "BI",
"name": "Burundi"
},
{
"id": "KH",
"name": "Cambodia"
},
{
"id": "CM",
"name": "Cameroon"
},
{
"id": "CA",
"name": "Canada"
},
{
"id": "CV",
"name": "Cape Verde"
},
{
"id": "KY",
"name": "Cayman Islands"
},
{
"id": "CF",
"name": "Central African Republic"
},
{
"id": "TD",
"name": "Chad"
},
{
"id": "CL",
"name": "Chile"
},
{
"id": "CN",
"name": "China"
},
{
"id": "CX",
"name": "Christmas Island"
},
{
"id": "CC",
"name": "Cocos (Keeling) Islands"
},
{
"id": "CO",
"name": "Colombia"
},
{
"id": "KM",
"name": "Comoros"
},
{
"id": "CG",
"name": "Congo"
},
{
"id": "CD",
"name": "Congo, the Democratic Republic of the"
},
{
"id": "CK",
"name": "Cook Islands"
},
{
"id": "CR",
"name": "Costa Rica"
},
{
"id": "CI",
"name": "Côte d'Ivoire"
},
{
"id": "HR",
"name": "Croatia"
},
{
"id": "CU",
"name": "Cuba"
},
{
"id": "CW",
"name": "Curaçao"
},
{
"id": "CY",
"name": "Cyprus"
},
{
"id": "CZ",
"name": "Czech Republic"
},
{
"id": "DK",
"name": "Denmark"
},
{
"id": "DJ",
"name": "Djibouti"
},
{
"id": "DM",
"name": "Dominica"
},
{
"id": "DO",
"name": "Dominican Republic"
},
{
"id": "EC",
"name": "Ecuador"
},
{
"id": "EG",
"name": "Egypt"
},
{
"id": "SV",
"name": "El Salvador"
},
{
"id": "GQ",
"name": "Equatorial Guinea"
},
{
"id": "ER",
"name": "Eritrea"
},
{
"id": "EE",
"name": "Estonia"
},
{
"id": "ET",
"name": "Ethiopia"
},
{
"id": "FK",
"name": "Falkland Islands (Malvinas)"
},
{
"id": "FO",
"name": "Faroe Islands"
},
{
"id": "FJ",
"name": "Fiji"
},
{
"id": "FI",
"name": "Finland"
},
{
"id": "FR",
"name": "France"
},
{
"id": "GF",
"name": "French Guiana"
},
{
"id": "PF",
"name": "French Polynesia"
},
{
"id": "TF",
"name": "French Southern Territories"
},
{
"id": "GA",
"name": "Gabon"
},
{
"id": "GM",
"name": "Gambia"
},
{
"id": "GE",
"name": "Georgia"
},
{
"id": "DE",
"name": "Germany"
},
{
"id": "GH",
"name": "Ghana"
},
{
"id": "GI",
"name": "Gibraltar"
},
{
"id": "GR",
"name": "Greece"
},
{
"id": "GL",
"name": "Greenland"
},
{
"id": "GD",
"name": "Grenada"
},
{
"id": "GP",
"name": "Guadeloupe"
},
{
"id": "GU",
"name": "Guam"
},
{
"id": "GT",
"name": "Guatemala"
},
{
"id": "GG",
"name": "Guernsey"
},
{
"id": "GN",
"name": "Guinea"
},
{
"id": "GW",
"name": "Guinea-Bissau"
},
{
"id": "GY",
"name": "Guyana"
},
{
"id": "HT",
"name": "Haiti"
},
{
"id": "HM",
"name": "Heard Island and McDonald Mcdonald Islands"
},
{
"id": "VA",
"name": "Holy See (Vatican City State)"
},
{
"id": "HN",
"name": "Honduras"
},
{
"id": "HK",
"name": "Hong Kong"
},
{
"id": "HU",
"name": "Hungary"
},
{
"id": "IS",
"name": "Iceland"
},
{
"id": "IN",
"name": "India"
},
{
"id": "ID",
"name": "Indonesia"
},
{
"id": "IR",
"name": "Iran, Islamic Republic of"
},
{
"id": "IQ",
"name": "Iraq"
},
{
"id": "IE",
"name": "Ireland"
},
{
"id": "IM",
"name": "Isle of Man"
},
{
"id": "IL",
"name": "Israel"
},
{
"id": "IT",
"name": "Italy"
},
{
"id": "JM",
"name": "Jamaica"
},
{
"id": "JP",
"name": "Japan"
},
{
"id": "JE",
"name": "Jersey"
},
{
"id": "JO",
"name": "Jordan"
},
{
"id": "KZ",
"name": "Kazakhstan"
},
{
"id": "KE",
"name": "Kenya"
},
{
"id": "KI",
"name": "Kiribati"
},
{
"id": "KP",
"name": "Korea, Democratic People's Republic of"
},
{
"id": "KR",
"name": "Korea, Republic of"
},
{
"id": "KW",
"name": "Kuwait"
},
{
"id": "KG",
"name": "Kyrgyzstan"
},
{
"id": "LA",
"name": "Lao People's Democratic Republic"
},
{
"id": "LV",
"name": "Latvia"
},
{
"id": "LB",
"name": "Lebanon"
},
{
"id": "LS",
"name": "Lesotho"
},
{
"id": "LR",
"name": "Liberia"
},
{
"id": "LY",
"name": "Libya"
},
{
"id": "LI",
"name": "Liechtenstein"
},
{
"id": "LT",
"name": "Lithuania"
},
{
"id": "LU",
"name": "Luxembourg"
},
{
"id": "MO",
"name": "Macao"
},
{
"id": "MK",
"name": "Macedonia, the Former Yugoslav Republic of"
},
{
"id": "MG",
"name": "Madagascar"
},
{
"id": "MW",
"name": "Malawi"
},
{
"id": "MY",
"name": "Malaysia"
},
{
"id": "MV",
"name": "Maldives"
},
{
"id": "ML",
"name": "Mali"
},
{
"id": "MT",
"name": "Malta"
},
{
"id": "MH",
"name": "Marshall Islands"
},
{
"id": "MQ",
"name": "Martinique"
},
{
"id": "MR",
"name": "Mauritania"
},
{
"id": "MU",
"name": "Mauritius"
},
{
"id": "YT",
"name": "Mayotte"
},
{
"id": "MX",
"name": "Mexico"
},
{
"id": "FM",
"name": "Micronesia, Federated States of"
},
{
"id": "MD",
"name": "Moldova, Republic of"
},
{
"id": "MC",
"name": "Monaco"
},
{
"id": "MN",
"name": "Mongolia"
},
{
"id": "ME",
"name": "Montenegro"
},
{
"id": "MS",
"name": "Montserrat"
},
{
"id": "MA",
"name": "Morocco"
},
{
"id": "MZ",
"name": "Mozambique"
},
{
"id": "MM",
"name": "Myanmar"
},
{
"id": "NA",
"name": "Namibia"
},
{
"id": "NR",
"name": "Nauru"
},
{
"id": "NP",
"name": "Nepal"
},
{
"id": "NL",
"name": "Netherlands"
},
{
"id": "NC",
"name": "New Caledonia"
},
{
"id": "NZ",
"name": "New Zealand"
},
{
"id": "NI",
"name": "Nicaragua"
},
{
"id": "NE",
"name": "Niger"
},
{
"id": "NG",
"name": "Nigeria"
},
{
"id": "NU",
"name": "Niue"
},
{
"id": "NF",
"name": "Norfolk Island"
},
{
"id": "MP",
"name": "Northern Mariana Islands"
},
{
"id": "NO",
"name": "Norway"
},
{
"id": "OM",
"name": "Oman"
},
{
"id": "PK",
"name": "Pakistan"
},
{
"id": "PW",
"name": "Palau"
},
{
"id": "PS",
"name": "Palestine, State of"
},
{
"id": "PA",
"name": "Panama"
},
{
"id": "PG",
"name": "Papua New Guinea"
},
{
"id": "PY",
"name": "Paraguay"
},
{
"id": "PE",
"name": "Peru"
},
{
"id": "PH",
"name": "Philippines"
},
{
"id": "PN",
"name": "Pitcairn"
},
{
"id": "PL",
"name": "Poland"
},
{
"id": "PT",
"name": "Portugal"
},
{
"id": "PR",
"name": "Puerto Rico"
},
{
"id": "QA",
"name": "Qatar"
},
{
"id": "RE",
"name": "Réunion"
},
{
"id": "RO",
"name": "Romania"
},
{
"id": "RU",
"name": "Russian Federation"
},
{
"id": "RW",
"name": "Rwanda"
},
{
"id": "BL",
"name": "Saint Barthélemy"
},
{
"id": "SH",
"name": "Saint Helena, Ascension and Tristan da Cunha"
},
{
"id": "KN",
"name": "Saint Kitts and Nevis"
},
{
"id": "LC",
"name": "Saint Lucia"
},
{
"id": "MF",
"name": "Saint Martin (French part)"
},
{
"id": "PM",
"name": "Saint Pierre and Miquelon"
},
{
"id": "VC",
"name": "Saint Vincent and the Grenadines"
},
{
"id": "WS",
"name": "Samoa"
},
{
"id": "SM",
"name": "San Marino"
},
{
"id": "ST",
"name": "Sao Tome and Principe"
},
{
"id": "SA",
"name": "Saudi Arabia"
},
{
"id": "SN",
"name": "Senegal"
},
{
"id": "RS",
"name": "Serbia"
},
{
"id": "SC",
"name": "Seychelles"
},
{
"id": "SL",
"name": "Sierra Leone"
},
{
"id": "SG",
"name": "Singapore"
},
{
"id": "SX",
"name": "Sint Maarten (Dutch part)"
},
{
"id": "SK",
"name": "Slovakia"
},
{
"id": "SI",
"name": "Slovenia"
},
{
"id": "SB",
"name": "Solomon Islands"
},
{
"id": "SO",
"name": "Somalia"
},
{
"id": "ZA",
"name": "South Africa"
},
{
"id": "GS",
"name": "South Georgia and the South Sandwich Islands"
},
{
"id": "SS",
"name": "South Sudan"
},
{
"id": "ES",
"name": "Spain"
},
{
"id": "LK",
"name": "Sri Lanka"
},
{
"id": "SD",
"name": "Sudan"
},
{
"id": "SR",
"name": "Suriname"
},
{
"id": "SJ",
"name": "Svalbard and Jan Mayen"
},
{
"id": "SZ",
"name": "Swaziland"
},
{
"id": "SE",
"name": "Sweden"
},
{
"id": "CH",
"name": "Switzerland"
},
{
"id": "SY",
"name": "Syrian Arab Republic"
},
{
"id": "TW",
"name": "Taiwan"
},
{
"id": "TJ",
"name": "Tajikistan"
},
{
"id": "TZ",
"name": "Tanzania, United Republic of"
},
{
"id": "TH",
"name": "Thailand"
},
{
"id": "TL",
"name": "Timor-Leste"
},
{
"id": "TG",
"name": "Togo"
},
{
"id": "TK",
"name": "Tokelau"
},
{
"id": "TO",
"name": "Tonga"
},
{
"id": "TT",
"name": "Trinidad and Tobago"
},
{
"id": "TN",
"name": "Tunisia"
},
{
"id": "TR",
"name": "Turkey"
},
{
"id": "TM",
"name": "Turkmenistan"
},
{
"id": "TC",
"name": "Turks and Caicos Islands"
},
{
"id": "TV",
"name": "Tuvalu"
},
{
"id": "UG",
"name": "Uganda"
},
{
"id": "UA",
"name": "Ukraine"
},
{
"id": "AE",
"name": "United Arab Emirates"
},
{
"id": "GB",
"name": "United Kingdom"
},
{
"id": "US",
"name": "United States"
},
{
"id": "UM",
"name": "United States Minor Outlying Islands"
},
{
"id": "UY",
"name": "Uruguay"
},
{
"id": "UZ",
"name": "Uzbekistan"
},
{
"id": "VU",
"name": "Vanuatu"
},
{
"id": "VE",
"name": "Venezuela, Bolivarian Republic of"
},
{
"id": "VN",
"name": "Viet Nam"
},
{
"id": "VG",
"name": "Virgin Islands, British"
},
{
"id": "VI",
"name": "Virgin Islands, U.S."
},
{
"id": "WF",
"name": "Wallis and Futuna"
},
{
"id": "EH",
"name": "Western Sahara"
},
{
"id": "YE",
"name": "Yemen"
},
{
"id": "ZM",
"name": "Zambia"
},
{
"id": "ZW",
"name": "Zimbabwe"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
WIP
Routes that are still in progress
Missing Implementation
POST v1/playlists/{playlist}/{media}
requires authentication
Example request:
curl --request POST \
"https://api.qplet.dev/v1/playlists/ad/autem" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/ad/autem"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/ad/autem';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=RxnzPFw287u7APiZFUAuqIcJBN5EpsJWVKqiGgAt; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the playlist you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE v1/playlists/{playlist}/{media}
requires authentication
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/playlists/in/ratione" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/playlists/in/ratione"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/playlists/in/ratione';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=qXaRQfNFfoqvqdeMlM0kiSKEmSaHZBomFinG8Ev4; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the playlist you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST v1/interest/{entity}/{id}
requires authentication
Example request:
curl --request POST \
"https://api.qplet.dev/v1/interest/et/voluptas" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/interest/et/voluptas"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/interest/et/voluptas';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=4gzlBz4nbiMBCxHVcrtXFaxgpslCXZ4hZ507Cuc1; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE v1/interest/{entity}/{id}
requires authentication
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/interest/et/enim" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/interest/et/enim"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/interest/et/enim';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=x16lAs1C21Gqb9yDaH2IXEyAS8boTtq3Lg4tAAlK; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET v1/notifications
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/notifications" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/notifications"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/notifications';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=ydHHQIRju5k0X4eNGOcvLgKWWIor2s0ZxDBv9ZFQ; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET v1/notifications/{notification}/read
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/notifications/in/read" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/notifications/in/read"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/notifications/in/read';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=EMxydOxGFFh1JfRr4LyGe0AwuvDNBRSUkEc8M5Ru; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET v1/settings
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/settings" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/settings"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/settings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=Jd2Wm1iFZP5n8DLFEnrVlHlzIRnhrliS7QurmgwC; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PATCH v1/settings
requires authentication
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/settings" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/settings"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/settings';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=JBjEKM73GzKHHCOszODETBnjIOMgDDcr15iKmOyl; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Development
Refresh DB
Runs the migrations from scratch + runs dev seeders after
Equal to: php artisan migrate:fresh --seed
Example request:
curl --request POST \
"https://api.qplet.dev/v1/dev/db/fresh" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/dev/db/fresh"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/dev/db/fresh';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Admin
Contains all the routes that are supposed to be used for managing the application from Admin-panel
Health
Show
requires authentication
Provides the most basic details about the health of the services
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/health" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/health"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/health';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=KXWj910OmkpB8xPJVCKCrHqMoJQu9S8XsS6Dr8fi; expires=Tue, 10 Jun 2025 12:23:09 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"api": {
"version": 1
},
"statuses": {
"database": "healthy"
},
"env": "docs",
"debug": false
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Genres
Create
requires authentication
Add new Genre
Example request:
curl --request POST \
"https://api.qplet.dev/v1/genres" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"minima\",
\"is_public\": false
}"
const url = new URL(
"https://api.qplet.dev/v1/genres"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "minima",
"is_public": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/genres';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'minima',
'is_public' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=fcE2XJtEj5tobieFyC8xSW6ECyUNed4mj4ddqfU8; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee887-6031-4d9f-8055-272f1c78191e",
"name": "minima",
"tracks": 0
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update a Genre
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/genres/9e9acd81-1040-4302-8433-0e7757b8cfad" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"nulla\",
\"is_public\": false
}"
const url = new URL(
"https://api.qplet.dev/v1/genres/9e9acd81-1040-4302-8433-0e7757b8cfad"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "nulla",
"is_public": false
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/genres/9e9acd81-1040-4302-8433-0e7757b8cfad';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'nulla',
'is_public' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=oFRMFqRZGvUWnSpwBoEXEeO0p0LuIuxHhblTDDwe; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9e9acd81-1040-4302-8433-0e7757b8cfad",
"name": "nulla",
"tracks": 413985
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Genre",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete a Genre
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/genres/9e9acd81-1040-4302-8433-0e7757b8cfad" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/genres/9e9acd81-1040-4302-8433-0e7757b8cfad"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/genres/9e9acd81-1040-4302-8433-0e7757b8cfad';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=CuEkMZ9hd1FRgFIK3Uu0EDACJsM9DkmuQkJqY13p; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Genre",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User
Update user
requires authentication
Update user details using user ID
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"Joe Shmoe\",
\"password\": \"Ye4oKoEa3Ro9ll\",
\"password_repeat\": \"Ye4oKoEa3Ro9ll\",
\"profile\": {
\"gender\": \"male\",
\"nickname\": \"joe_shmoe\",
\"website\": \"https:\\/\\/qplet.ru\",
\"about\": \"I`m Joe Shmoe\\n\\n I love singing and dancing.\",
\"avatar_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"birthdate\": \"2000-01-01\"
}
}"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "Joe Shmoe",
"password": "Ye4oKoEa3Ro9ll",
"password_repeat": "Ye4oKoEa3Ro9ll",
"profile": {
"gender": "male",
"nickname": "joe_shmoe",
"website": "https:\/\/qplet.ru",
"about": "I`m Joe Shmoe\n\n I love singing and dancing.",
"avatar_id": "00000000-422e-41ff-a266-2b0a093307e6",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"birthdate": "2000-01-01"
}
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'Joe Shmoe',
'password' => 'Ye4oKoEa3Ro9ll',
'password_repeat' => 'Ye4oKoEa3Ro9ll',
'profile' => [
'gender' => 'male',
'nickname' => 'joe_shmoe',
'website' => 'https://qplet.ru',
'about' => 'I`m Joe Shmoe'."\n"
."\n"
.' I love singing and dancing.',
'avatar_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'birthdate' => '2000-01-01',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ban
requires authentication
Disable user account
Example request:
curl --request POST \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/ban" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"until\": \"2025-07-10T10:23:11+00:00\"
}"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/ban"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"until": "2025-07-10T10:23:11+00:00"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/ban';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'until' => '2025-07-10T10:23:11+00:00',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Unban
requires authentication
Activate user account
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/ban" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/ban"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1/ban';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Soft delete user from database
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/00000000-df85-4307-a069-68612c4471e1';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "User",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Complaints
Show
requires authentication
Returns single Complaint
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/complaints/voluptatem" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/complaints/voluptatem"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/complaints/voluptatem';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
{
"type": "Complaint",
"message": "No query results"
}
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=YkkUp2LcGfammpYVdyYFU7yrBDqri8NC1Q2vzMZX; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the complaint you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
requires authentication
Endpoint for fetching list of complaints
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/complaints?filters[author_id]=00000000-df85-4307-a069-68612c4471e1&per_page=20&page=1&pagination_type=page" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/complaints"
);
const params = {
"filters[author_id]": "00000000-df85-4307-a069-68612c4471e1",
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/complaints';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[author_id]' => '00000000-df85-4307-a069-68612c4471e1',
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=j6u16gFYv04eXlHnebadk4uWWsnZu4nSj98JNa2L; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/complaints",
"per_page": 20,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Analytics
Country
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/analytics/users/00000000-df85-4307-a069-68612c4471e1" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/analytics/users/00000000-df85-4307-a069-68612c4471e1"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/analytics/users/00000000-df85-4307-a069-68612c4471e1';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=a33x3oA8fYFqWafA3LJTlwD79mzDsgxwu0b5bLE0; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"views": 518,
"subscriptions": 738,
"subscribers": 922,
"events": 932,
"tracks": 899,
"playlists": 344,
"albums": 106
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Playlist
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/analytics/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/analytics/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/analytics/playlists/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=qxWVp6lTxMMzaqubCDqLWVrZ8BqummGvpourabYw; expires=Tue, 10 Jun 2025 12:23:19 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Album
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/analytics/albums/00000000-b7fa-4324-b250-a3c6c78b65c4" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/analytics/albums/00000000-b7fa-4324-b250-a3c6c78b65c4"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/analytics/albums/00000000-b7fa-4324-b250-a3c6c78b65c4';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=IgsIlO1UykvEp3SJNNR3BxMoDNvgHy8q8mtygGIN; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"tracks": 0,
"likes": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Track
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/analytics/tracks/00000000-a791-4783-9845-4b571a9e579f" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/analytics/tracks/00000000-a791-4783-9845-4b571a9e579f"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/analytics/tracks/00000000-a791-4783-9845-4b571a9e579f';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=s3s3IYmUhzbCxlu1BfVIyz925nVTuI4VDVB8Q82W; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"likes": 0,
"playbacks": 256,
"playlists": 866
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Post
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/analytics/posts/00000000-fdb0-43ce-b555-e0a26ed563ac" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/analytics/posts/00000000-fdb0-43ce-b555-e0a26ed563ac"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/analytics/posts/00000000-fdb0-43ce-b555-e0a26ed563ac';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=uN5QxFaLaXem0CQ2EnqbbWTks6bf2DY6SfqLiRck; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"likes": 0,
"comments": 0,
"views": 520
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Complaints
List types
Endpoint for fetching list of complaint types
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/complaints/types" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/complaints/types"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/complaints/types';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=1xx5FPN46VLVAGrNUhpP0T4fNVzQB71YgW1EJ4Yg; expires=Tue, 10 Jun 2025 12:23:09 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"name": "album"
},
{
"name": "event"
},
{
"name": "comment"
},
{
"name": "playlist"
},
{
"name": "post"
},
{
"name": "track"
},
{
"name": "user"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List reasons
Endpoint for fetching list of complaint types
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/complaints/types/sed/reasons" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/complaints/types/sed/reasons"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/complaints/types/sed/reasons';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=Kxb6oZGzZstLwl7kpMnVp8AH8Hc1AsFCS4WDuz53; expires=Tue, 10 Jun 2025 12:23:09 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store
requires authentication
Create a Complaint
Example request:
curl --request POST \
"https://api.qplet.dev/v1/complaints" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"reason_id\": \"00000000-a24e-421f-94b4-c12974b3a0d9\",
\"entity\": \"post\",
\"entity_id\": \"00000000-fdb0-43ce-b555-e0a26ed563ac\",
\"message\": \"Post contains inappropriate wording.\"
}"
const url = new URL(
"https://api.qplet.dev/v1/complaints"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"reason_id": "00000000-a24e-421f-94b4-c12974b3a0d9",
"entity": "post",
"entity_id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"message": "Post contains inappropriate wording."
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/complaints';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'reason_id' => '00000000-a24e-421f-94b4-c12974b3a0d9',
'entity' => 'post',
'entity_id' => '00000000-fdb0-43ce-b555-e0a26ed563ac',
'message' => 'Post contains inappropriate wording.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=roxZHd026pgUlTJzhFlb6QzK7ChQCXcLovLau4ni; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee88d-ca90-4819-8440-29fb95922cc0",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"message": "Post contains inappropriate wording.",
"type": "post",
"entity_id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"reason": {
"id": "00000000-a24e-421f-94b4-c12974b3a0d9",
"title": "Other",
"description": "Doloribus reprehenderit autem inventore expedita officiis. Ducimus aperiam nihil magnam atque neque. Et sed quam est consequatur velit. Repellat rerum hic eveniet voluptatem."
}
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own Complaint
Admin can remove any Complaint
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/complaints/est" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/complaints/est"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/complaints/est';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Complaint",
"message": "No query results"
}
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=kee0nrDbosibMgYxkmrbIwKUhiuWQj4eFQCCeEZU; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Unable to find the complaint you requested."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Contacts
Show
requires authentication
Returns single contact
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/contact/modi" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/contact/modi"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/contact/modi';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=pOyIOxm8opOnhSmhCeGawx8ZOSjySTBhgnGwie2F; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": null,
"name": null,
"email": null,
"message": null
}
}
Example response (404):
{
"type": "Contact",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
requires authentication
Endpoint for fetching list of contacts
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/contact?per_page=20&page=1&pagination_type=page" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/contact"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/contact';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=plpHbMO17oS5XZ2hLYtbPckEapDqHkfRXI0lJSlf; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/contact",
"per_page": 20,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own contact
Admin can remove any contact
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/contact/earum" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/contact/earum"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/contact/earum';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=EooIemBzf3wW9xaFaMc7UyOh45k38n9KQNzKC23q; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Contact",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store
Create a contact with optionally shared entity
- another contact
- album
- contact
- playlist
- track
Example request:
curl --request POST \
"https://api.qplet.dev/v1/contact" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"Dr. Rene Heaney DDS\",
\"email\": \"devante33@yahoo.com\",
\"message\": \"Reprehenderit maiores quis quis velit reiciendis est officia. Et assumenda quisquam quidem est odit rerum. Laboriosam quisquam voluptas ullam quae et. Laborum ratione nulla magni eos et porro.\"
}"
const url = new URL(
"https://api.qplet.dev/v1/contact"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "Dr. Rene Heaney DDS",
"email": "devante33@yahoo.com",
"message": "Reprehenderit maiores quis quis velit reiciendis est officia. Et assumenda quisquam quidem est odit rerum. Laboriosam quisquam voluptas ullam quae et. Laborum ratione nulla magni eos et porro."
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/contact';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'Dr. Rene Heaney DDS',
'email' => 'devante33@yahoo.com',
'message' => 'Reprehenderit maiores quis quis velit reiciendis est officia. Et assumenda quisquam quidem est odit rerum. Laboriosam quisquam voluptas ullam quae et. Laborum ratione nulla magni eos et porro.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=TzMhVChz8WBgiD5yCrjghSfxZ9z1oAeQVAPtMmH6; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee896-b386-4f2d-8dd8-bb4629282bca",
"name": "Dr. Rene Heaney DDS",
"email": "devante33@yahoo.com",
"message": "Reprehenderit maiores quis quis velit reiciendis est officia. Et assumenda quisquam quidem est odit rerum. Laboriosam quisquam voluptas ullam quae et. Laborum ratione nulla magni eos et porro."
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Conversations
List
requires authentication
Endpoint for fetching list of conversations
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/conversations?per_page=20&page=1&pagination_type=page" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/conversations"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/conversations';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=WFdNxC5CscDKr4HGcXMJPscDXyvF3zdjYI5n1FKv; expires=Tue, 10 Jun 2025 12:23:13 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
requires authentication
Returns single conversation
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
{
"type": "Conversation",
"message": "No query results"
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=WK9ldxKxwrvCLu5TQ121GvAxNjeZUYlzHtQAfhI8; expires=Tue, 10 Jun 2025 12:23:13 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store
requires authentication
Create a conversation in association to an entity
Example request:
curl --request POST \
"https://api.qplet.dev/v1/conversations" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"Name\",
\"type\": \"private\"
}"
const url = new URL(
"https://api.qplet.dev/v1/conversations"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "Name",
"type": "private"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/conversations';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'Name',
'type' => 'private',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=OXKUKFkd6MwqcWKlznZM8I7RKT0PiQ0ydWkNjnBH; expires=Tue, 10 Jun 2025 12:23:13 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update own conversation
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"content\": \"My conversation to the private\"
}"
const url = new URL(
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"content": "My conversation to the private"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'content' => 'My conversation to the private',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Conversation",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=8IU7JV7pLkczdnbQVel87Cnji8sqE2pG0cDCofzL; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own conversation
Admin can remove any conversation
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=lh4GuYlifBl5KmuuvMyCEVmCx0uFHLlG9sT9b9DB; expires=Tue, 10 Jun 2025 12:23:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Conversation",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Events
Store
requires authentication
Create a event with optionally shared entity
- another event
- album
- event
- playlist
- track
Example request:
curl --request POST \
"https://api.qplet.dev/v1/events" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"title\": \"My Event content\",
\"date\": \"2025-07-10\",
\"time\": \"18:00\",
\"type\": \"online\",
\"location\": \"Metro Manila\",
\"seats\": 500,
\"website\": \"https:\\/\\/www.example.com\",
\"content\": \"Some information about My Event. So this is the content.\",
\"banner_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\"
}"
const url = new URL(
"https://api.qplet.dev/v1/events"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"title": "My Event content",
"date": "2025-07-10",
"time": "18:00",
"type": "online",
"location": "Metro Manila",
"seats": 500,
"website": "https:\/\/www.example.com",
"content": "Some information about My Event. So this is the content.",
"banner_id": "00000000-422e-41ff-a266-2b0a093307e6",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'title' => 'My Event content',
'date' => '2025-07-10',
'time' => '18:00',
'type' => 'online',
'location' => 'Metro Manila',
'seats' => 500,
'website' => 'https://www.example.com',
'content' => 'Some information about My Event. So this is the content.',
'banner_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=LCNpsvd3mhenApA4bK5jfbD93us3TJkczRH2UgXI; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "9f1ee889-893e-4d6b-b8dc-c53d54ed53cb",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"title": "My Event content",
"content": "Some information about My Event. So this is the content.",
"date": "2025-07-10",
"time": "18:00:00",
"type": "online",
"location": "Metro Manila",
"seats": 500,
"free_seats": 500,
"website": "https://www.example.com",
"banner": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil"
},
"media": null,
"tags": null,
"created_at": 1749550991,
"analytics": {
"interested": 0,
"subscribed": 0,
"views": 0,
"likes": 0,
"comments": 0,
"shares": 0
}
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update own event
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"title\": \"My Event content\",
\"date\": \"2025-07-10\",
\"time\": \"18:00\",
\"type\": \"online\",
\"location\": \"Metro Manila\",
\"seats\": 500,
\"website\": \"https:\\/\\/www.example.com\",
\"content\": \"Some information about My Event. So this is the content.\",
\"banner_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\"
}"
const url = new URL(
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"title": "My Event content",
"date": "2025-07-10",
"time": "18:00",
"type": "online",
"location": "Metro Manila",
"seats": 500,
"website": "https:\/\/www.example.com",
"content": "Some information about My Event. So this is the content.",
"banner_id": "00000000-422e-41ff-a266-2b0a093307e6",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'title' => 'My Event content',
'date' => '2025-07-10',
'time' => '18:00',
'type' => 'online',
'location' => 'Metro Manila',
'seats' => 500,
'website' => 'https://www.example.com',
'content' => 'Some information about My Event. So this is the content.',
'banner_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=NwTUlXkrnPWPdK0P5t0eSmqZsQFYEacXFo6ch686; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"title": "My Event content",
"content": "Some information about My Event. So this is the content.",
"date": "2025-07-10",
"time": "18:00:00",
"type": "online",
"location": "Metro Manila",
"seats": 500,
"free_seats": 497,
"website": "https://www.example.com",
"banner": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil"
},
"media": null,
"tags": null,
"created_at": 1743877133,
"updated_at": 1749550991,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 9456,
"likes": 0,
"comments": 0,
"shares": 0
}
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Event",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own event
Admin can remove any event
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=7i1bYkwJezPPHFupRyphuoJIYukWM1OPQEMP1ken; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Event",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
Endpoint for fetching list of events
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/events?filters[title]=party&filters[author_id]=00000000-df85-4307-a069-68612c4471e1&filters[is_available]=1&filters[participant][id]=00000000-df85-4307-a069-68612c4471e1&filters[participant][inclusive]=&filters[subscribed_to_organiser]=1&filters[date][from]=2025-06-20&filters[date][to]=2025-07-10&per_page=20&page=1&pagination_type=page" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events"
);
const params = {
"filters[title]": "party",
"filters[author_id]": "00000000-df85-4307-a069-68612c4471e1",
"filters[is_available]": "1",
"filters[participant][id]": "00000000-df85-4307-a069-68612c4471e1",
"filters[participant][inclusive]": "",
"filters[subscribed_to_organiser]": "1",
"filters[date][from]": "2025-06-20",
"filters[date][to]": "2025-07-10",
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[title]' => 'party',
'filters[author_id]' => '00000000-df85-4307-a069-68612c4471e1',
'filters[is_available]' => '1',
'filters[participant][id]' => '00000000-df85-4307-a069-68612c4471e1',
'filters[participant][inclusive]' => '',
'filters[subscribed_to_organiser]' => '1',
'filters[date][from]' => '2025-06-20',
'filters[date][to]' => '2025-07-10',
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=daXo8gUV8nZMaqRyq4x8fm99UsqAaX7YQNbCfD5C; expires=Tue, 10 Jun 2025 12:23:15 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/events",
"per_page": 20,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show
Returns single event
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=52HqtBLryrBxGZpwh8Wi62FPJX68nYv48YLbEAhk; expires=Tue, 10 Jun 2025 12:23:15 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"title": "Ea id aperiam facere nam.",
"content": "Dolores porro est sunt autem ut iste aliquid fugiat. Sit rem explicabo laudantium expedita.",
"date": "2014-05-15",
"time": "16:01:06",
"type": "offline",
"location": "59220 Ullrich Walks\nMelbaberg, OR 02902",
"seats": "100",
"free_seats": 97,
"website": "https://www.zboncak.info/et-non-eaque-tempore",
"media": null,
"tags": null,
"is_subscribed": true,
"created_at": 1743877133,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 9456,
"likes": 0,
"comments": 0,
"shares": 0
}
}
}
Example response (404):
{
"type": "Event",
"message": "No query results"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List user subscriptions
Endpoint for fetching list of events user is subscribed to
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/events/subscribed/00000000-df85-4307-a069-68612c4471e3?per_page=20&page=1&pagination_type=page" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/subscribed/00000000-df85-4307-a069-68612c4471e3"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/subscribed/00000000-df85-4307-a069-68612c4471e3';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=ICMR7EzuwJedRfrhqgOHcMlMdzb9STMLbZ3hnmpY; expires=Tue, 10 Jun 2025 12:23:15 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"title": "Ea id aperiam facere nam.",
"content": "Dolores porro est sunt autem ut iste aliquid fugiat. Sit rem explicabo laudantium expedita.",
"date": "2014-05-15",
"time": "16:01:06",
"type": "offline",
"location": "59220 Ullrich Walks\nMelbaberg, OR 02902",
"seats": "100",
"free_seats": 97,
"website": "https://www.zboncak.info/et-non-eaque-tempore",
"media": null,
"tags": null,
"is_subscribed": true,
"created_at": 1743877133,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 9456,
"likes": 0,
"comments": 0,
"shares": 0
}
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://localhost:8083/v1/events/subscribed/00000000-df85-4307-a069-68612c4471e3",
"per_page": 20,
"to": 1,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Subscriptions
Subscribe
requires authentication
Subscribe signed in user to an event
Example request:
curl --request POST \
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/subscribe" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/subscribe"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/subscribe';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=Av9gHGLPC3izTuVnV8SgABHpioSnZPFnOaIFYsqj; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (404):
{
"type": "Event",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Unsubscribe
requires authentication
Unsubscribe signed in user from an event
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/subscribe" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/subscribe"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/subscribe';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=igkCFrnAmejohbDoJa98cbdg69TX1BEMsfUIvtdl; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (404):
{
"type": "Event",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show interest
requires authentication
Show interest of signed in user to an event
Example request:
curl --request POST \
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/show-interest" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/show-interest"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/show-interest';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=FNQDlIoYEbpwOs9kdpk51I8EGFuT1M5qMiAD3GmQ; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (404):
{
"type": "Event",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove interest
requires authentication
Remove interest of the signed in user from an event
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/show-interest" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/show-interest"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/00000000-fdb0-43ce-b555-e0a26ed563ac/show-interest';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (204):
Show headers
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=qEjI81XwpWXub6Fn69lNYoRqBATYj0wbGj9iV5ow; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
Empty response
Example response (401):
{
"message": "Unauthenticated."
}
Example response (404):
{
"type": "Event",
"message": "No query results"
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Own
Created by me
requires authentication
List of events created by currently logged-in user
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/events/my?per_page=20&page=1&pagination_type=page" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/my"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/my';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=VI3yQhb5qaryYhnvkPxeD5a0kAehiCyIBbepxKgS; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"path": "http://localhost:8083/v1/events/my",
"per_page": 20,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
My subscriptions
requires authentication
List of events currently logged-in user is subscribed to
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/events/my/subscriptions?per_page=20&page=1&pagination_type=page" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/events/my/subscriptions"
);
const params = {
"per_page": "20",
"page": "1",
"pagination_type": "page",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/events/my/subscriptions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'per_page' => '20',
'page' => '1',
'pagination_type' => 'page',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=wcymtmAUJz7Ruao4Oj3mxTdKrjqYPfOVOj5axRTn; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "00000000-fdb0-43ce-b555-e0a26ed563ac",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"title": "Ea id aperiam facere nam.",
"content": "Dolores porro est sunt autem ut iste aliquid fugiat. Sit rem explicabo laudantium expedita.",
"date": "2014-05-15",
"time": "16:01:06",
"type": "offline",
"location": "59220 Ullrich Walks\nMelbaberg, OR 02902",
"seats": "100",
"free_seats": 97,
"website": "https://www.zboncak.info/et-non-eaque-tempore",
"media": null,
"tags": null,
"is_subscribed": true,
"created_at": 1743877133,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 9456,
"likes": 0,
"comments": 0,
"shares": 0
}
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://localhost:8083/v1/events/my/subscriptions",
"per_page": 20,
"to": 1,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Likes
Store
requires authentication
Add like to an entity
- post
- album
- event
- playlist
- track
Example request:
curl --request POST \
"https://api.qplet.dev/v1/like/post/culpa" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/like/post/culpa"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/like/post/culpa';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=yRMaC8iuCaJs4FUzrLa95bs2NRXPefw3JUUcxvGB; expires=Tue, 10 Jun 2025 12:23:15 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"likes": 1
}
}
Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Delete own like
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/like/cumque/modi" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/like/cumque/modi"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/like/cumque/modi';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
{
"message": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (404):
{
"type": "Like",
"message": "No query results"
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=e4UKfkNHA7IXRVkOzUgEZGtslG86jkAZBwtuQ47k; expires=Tue, 10 Jun 2025 12:23:15 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Other
GET v1/deploy
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/deploy" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/deploy"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/deploy';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=siswcpXQwXqDaTFYHRqtpsXIRnXbXvbDL1pyZpbd; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
<pre>
All done!
</pre>
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Search
Search
Find relevant entities of type: albums, talents and tracks
Example request:
curl --request POST \
"https://api.qplet.dev/v1/search/voluptatem" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/search/voluptatem"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/search/voluptatem';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=zyv5ayAFWWZdL7PTjfNn1gra33EUusI451wPUMRv; expires=Tue, 10 Jun 2025 12:23:20 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "9e9acdb6-96aa-4b53-a3c1-53383b0fe862",
"name": "Eaque",
"description": null,
"is_liked": 0,
"entity": "album"
},
{
"id": "9e9acd9e-6456-4547-9df4-a190626d9b2d",
"title": "Eaque delectus et asperiores est.",
"media_asset": {
"id": "9e9acd9e-56ad-4d06-9e5b-a7102806672d",
"url": "http://localhost:8083/v1/media-assets/9e9acd9e-56ad-4d06-9e5b-a7102806672d.mxl"
},
"owner": {
"id": "9e9acd82-673d-4a96-8024-603b2c1ce346",
"name": "Dr. Zachary Hayes",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-21c9-41f9-803b-365b9e6e357b",
"name": "J-Pop",
"tracks": 930915
}
],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 3,
"shares": 8
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acda1-b5a5-4dc4-a51c-ae91cd87a7ba",
"title": "Et facilis recusandae sequi quisquam sed.",
"media_asset": {
"id": "9e9acda1-aa82-4a59-acd7-8d3e20c5dc7e",
"url": "http://localhost:8083/v1/media-assets/9e9acda1-aa82-4a59-acd7-8d3e20c5dc7e.wm"
},
"owner": {
"id": "9e9acd82-8be9-4be1-a30f-f24f77e9204f",
"name": "Zoie Jenkins DDS",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-1990-456d-9537-2ba8f2a30ee9",
"name": "Dance",
"tracks": 157735
},
{
"id": "9e9acd81-21c9-41f9-803b-365b9e6e357b",
"name": "J-Pop",
"tracks": 930915
}
],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 12,
"shares": 7
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acd9f-1f38-4c98-9e39-70ded41546fd",
"title": "Explicabo rerum mollitia commodi veritatis id beatae accusantium.",
"media_asset": {
"id": "9e9acd9f-18ba-4c8e-ae19-9714660d8780",
"url": "http://localhost:8083/v1/media-assets/9e9acd9f-18ba-4c8e-ae19-9714660d8780.uvva"
},
"owner": {
"id": "9e9acd82-6d8b-4004-95f7-c145cc588ae8",
"name": "Maxime Krajcik",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-29a5-4d31-9aaa-8c91a893508a",
"name": "R&B",
"tracks": 131166
}
],
"analytics": {
"playbacks": 8,
"likes": 0,
"comments": 15,
"shares": 0
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acdb7-bcba-4d81-8ec9-be16127fc1b0",
"name": "Blanche McLaughlin",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acda4-7ca6-4152-9847-ef71d50fbd24",
"name": "Loma King",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acd97-f436-4368-b67d-7d4db8360693",
"title": "Exercitationem magnam in ratione impedit eum unde dolores.",
"media_asset": {
"id": "9e9acd97-d362-4b8f-b0a4-86c3f752ede1",
"url": "http://localhost:8083/v1/media-assets/9e9acd97-d362-4b8f-b0a4-86c3f752ede1.m3u"
},
"owner": {
"id": "9e9acd82-0f28-4c21-b006-ec5330ebbe69",
"name": "Mr. Randal Lebsack DVM",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-2117-428f-8fa5-24fddea77ab6",
"name": "Instrumental",
"tracks": 77154
}
],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 6,
"shares": 10
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acd9e-b290-4c4e-a0c3-02cfe01bc4ba",
"name": "Alize Reichert I",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acd91-17d5-47bd-8d4d-600435a1dd07",
"name": "Dr. Liza Eichmann",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acda7-fb6b-4d13-8726-ca7e5c02be3d",
"name": "Taurean Boehm",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acd9d-3c15-4271-8542-2e50725625b1",
"title": "Incidunt nisi delectus saepe voluptatem deleniti occaecati.",
"media_asset": {
"id": "9e9acd9d-3443-4801-a183-2f169248bb2c",
"url": "http://localhost:8083/v1/media-assets/9e9acd9d-3443-4801-a183-2f169248bb2c.xdf"
},
"owner": {
"id": "9e9acd82-58ac-469a-b51d-606a6a962e34",
"name": "Curtis Bartell",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-273d-4bb1-8487-2d8103bfeb8b",
"name": "Opera",
"tracks": 478036
}
],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 1,
"shares": 13
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acdb6-a220-4d0d-b0c6-502ad1e7082f",
"name": "Unde",
"description": null,
"is_liked": 0,
"entity": "album"
},
{
"id": "9e9acdb3-3c18-4efc-8c7c-eb535820589f",
"name": "Nikita Kovacek",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acd9f-f985-47fd-931f-9669df709e0c",
"title": "Officia velit blanditiis voluptas aliquid sit.",
"media_asset": {
"id": "9e9acd9f-f117-4ed9-b9e6-8c6d487d21a7",
"url": "http://localhost:8083/v1/media-assets/9e9acd9f-f117-4ed9-b9e6-8c6d487d21a7.wvx"
},
"owner": {
"id": "9e9acd82-783d-491c-bf08-4a7de87faccb",
"name": "Maxine Ondricka",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-2611-4e3b-ba10-d47bef2de8e1",
"name": "Metal",
"tracks": 765780
}
],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 1,
"shares": 6
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acdb6-9f10-4e24-80ae-25ebad22af54",
"name": "Nulla",
"description": null,
"is_liked": 0,
"entity": "album"
},
{
"id": "9e9acdb6-8e14-42e4-95f0-ea8e2c74635f",
"name": "Eligendi",
"description": null,
"is_liked": 0,
"entity": "album"
},
{
"id": "9e9acd9d-d16e-4161-9e6a-17076a39b588",
"title": "Ab quis ea vitae perferendis nihil molestiae qui.",
"media_asset": {
"id": "9e9acd9d-c329-4570-b0bc-57d6b93e1e6d",
"url": "http://localhost:8083/v1/media-assets/9e9acd9d-c329-4570-b0bc-57d6b93e1e6d.rip"
},
"owner": {
"id": "9e9acd82-5d21-4623-95fd-bd4ac0b1c796",
"name": "Leslie Bogisich",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-269f-4a19-a816-513d9014ac84",
"name": "New Age",
"tracks": 338093
}
],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 8,
"shares": 13
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acd9c-2769-483d-b465-ad8fb61d252e",
"name": "Prof. Bennie Crona III",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acda9-757d-4844-8c32-e4b024dba207",
"name": "Golda Harvey",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acd9c-1b37-43e5-8aa7-5acf5e4686c4",
"title": "Nam dolores inventore quia pariatur nobis fugit saepe facilis.",
"media_asset": {
"id": "9e9acd9c-16f0-4c42-a42a-84e65b0b6218",
"url": "http://localhost:8083/v1/media-assets/9e9acd9c-16f0-4c42-a42a-84e65b0b6218.vcs"
},
"owner": {
"id": "9e9acd82-4969-4030-b26f-39b45e6677ac",
"name": "Hayley DuBuque Sr.",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-13dc-4152-bf89-00b4df8a0913",
"name": "Anime",
"tracks": 120823
},
{
"id": "9e9acd81-14cd-44c8-ae31-d49d4e35ee36",
"name": "Blues",
"tracks": 491640
}
],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 13,
"shares": 12
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acd8e-21ab-46ea-b060-ffc772d32e6e",
"name": "Jess King",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acdac-1ac3-4bbd-930b-ea601af2c1f7",
"title": "Ipsa natus esse omnis est rem eum dolores.",
"media_asset": {
"id": "9e9acdac-08f6-46b6-bbf9-d5d704cd998a",
"url": "http://localhost:8083/v1/media-assets/9e9acdac-08f6-46b6-bbf9-d5d704cd998a.uva"
},
"owner": {
"id": "9e9acd8b-6ba4-474d-9a32-906e46868524",
"name": "Jessie Ward",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-1040-4302-8433-0e7757b8cfad",
"name": "Alternative",
"tracks": 413985
}
],
"analytics": {
"playbacks": 1,
"likes": 0,
"comments": 9,
"shares": 0
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acda2-a67a-4c69-86d8-723d83f0e533",
"name": "Kaylah Hudson III",
"avatar_url": null,
"entity": "user"
},
{
"id": "9e9acdb0-ec28-4613-af89-e39b9d13cdab",
"title": "Iure sint et laborum vitae sit.",
"media_asset": {
"id": "9e9acdb0-d85b-4981-9c77-9029096caae4",
"url": "http://localhost:8083/v1/media-assets/9e9acdb0-d85b-4981-9c77-9029096caae4.xaml"
},
"owner": {
"id": "9e9acd8b-f4bc-4b06-b3ad-108c86718e2e",
"name": "Prof. Mable Mann Jr.",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-1f61-44fd-ac6a-fcd5e7694961",
"name": "Hip-Hop",
"tracks": 423195
}
],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 7,
"shares": 3
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acd9e-1f9e-4038-bebb-c7a0db3c5b5d",
"title": "Sed quisquam saepe quia autem molestiae ut.",
"media_asset": {
"id": "9e9acd9e-1741-488b-abcc-b0f93bf2d46d",
"url": "http://localhost:8083/v1/media-assets/9e9acd9e-1741-488b-abcc-b0f93bf2d46d.atom"
},
"owner": {
"id": "9e9acd82-629c-44ff-86f9-e4c653a623dc",
"name": "Mikel Maggio",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-13dc-4152-bf89-00b4df8a0913",
"name": "Anime",
"tracks": 120823
},
{
"id": "9e9acd81-2611-4e3b-ba10-d47bef2de8e1",
"name": "Metal",
"tracks": 765780
},
{
"id": "9e9acd81-2ad2-4cab-bdf9-54cb4017d740",
"name": "Reggae",
"tracks": 49448
}
],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 1,
"shares": 12
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acdad-25c3-4235-9063-82b109b04e97",
"title": "Consectetur cumque temporibus quod et deleniti amet architecto.",
"media_asset": {
"id": "9e9acdad-06cd-457c-8b41-b8fe23d5c492",
"url": "http://localhost:8083/v1/media-assets/9e9acdad-06cd-457c-8b41-b8fe23d5c492.scurl"
},
"owner": {
"id": "9e9acd8b-7c82-4dd5-a732-bd8df7e6b3a4",
"name": "Adrian Effertz",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-13dc-4152-bf89-00b4df8a0913",
"name": "Anime",
"tracks": 120823
},
{
"id": "9e9acd81-1841-48f9-93ab-0439a5de9c48",
"name": "Country",
"tracks": 271119
},
{
"id": "9e9acd81-1c86-4df9-adf4-361a4eb20e3f",
"name": "Enka",
"tracks": 430413
}
],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 14,
"shares": 12
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acd91-a3a2-4749-b755-ca71751faae7",
"title": "Assumenda eaque omnis repudiandae enim nobis ad.",
"media_asset": {
"id": "9e9acd91-9809-4c9a-97b5-245fa7390628",
"url": "http://localhost:8083/v1/media-assets/9e9acd91-9809-4c9a-97b5-245fa7390628.omdoc"
},
"owner": {
"id": "9e9acd81-d396-452c-9096-66ce4d2e6104",
"name": "Sadye Greenfelder",
"avatar_url": null
},
"genres": [
{
"id": "9e9acd81-1841-48f9-93ab-0439a5de9c48",
"name": "Country",
"tracks": 271119
},
{
"id": "9e9acd81-1da6-4a0e-9134-adfadb59b38b",
"name": "Folk",
"tracks": 456494
},
{
"id": "9e9acd81-290c-45a0-852c-1ea2c705ea20",
"name": "Progressive",
"tracks": 724985
}
],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 0,
"shares": 4
},
"is_liked": 0,
"entity": "track"
},
{
"id": "9e9acdb6-82fe-4d85-aac7-9fb11339d03d",
"name": "Eius",
"description": null,
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.cil",
"filename": "sit-officiis-velit-itaquecil",
"created_at": "2025-04-05T18:18:25+00:00",
"type": "image",
"analytics": {
"views": 1914,
"likes": 0,
"comments": 0,
"shares": 2
}
},
"is_liked": 0,
"entity": "album"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User Settings
List
requires authentication
Endpoint for all the user settings
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/me/settings" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=x7qoAM0Z3b4zFL9yFZZwBTXs7owE0CFdu3QuQd3Z; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"profile": null,
"contact": null,
"social": null,
"notifications": null,
"system": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Profile
Show
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/me/settings/profile" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/profile"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/profile';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=gxVse3k012EgL2CTTtAOrpZNgF4UKpgUU19FFpCh; expires=Tue, 10 Jun 2025 12:23:10 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Joe Shmoe",
"email": "admin@qplet.ru",
"is_subscribed": false,
"analytics": {
"tracks": 63,
"albums": 1,
"subscribers": 151
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Example request:
curl --request PUT \
"https://api.qplet.dev/v1/users/me/settings/profile" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"Joe Shmoe\",
\"password\": \"Ye4oKoEa3Ro9ll\",
\"password_repeat\": \"Ye4oKoEa3Ro9ll\",
\"profile\": {
\"gender\": \"male\",
\"nickname\": \"joe_shmoe\",
\"website\": \"https:\\/\\/qplet.ru\",
\"about\": \"I`m Joe Shmoe\\n\\n I love singing and dancing.\",
\"avatar_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"cover_id\": \"00000000-422e-41ff-a266-2b0a093307e6\",
\"birthdate\": \"2000-01-01\"
}
}"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/profile"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "Joe Shmoe",
"password": "Ye4oKoEa3Ro9ll",
"password_repeat": "Ye4oKoEa3Ro9ll",
"profile": {
"gender": "male",
"nickname": "joe_shmoe",
"website": "https:\/\/qplet.ru",
"about": "I`m Joe Shmoe\n\n I love singing and dancing.",
"avatar_id": "00000000-422e-41ff-a266-2b0a093307e6",
"cover_id": "00000000-422e-41ff-a266-2b0a093307e6",
"birthdate": "2000-01-01"
}
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/profile';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'Joe Shmoe',
'password' => 'Ye4oKoEa3Ro9ll',
'password_repeat' => 'Ye4oKoEa3Ro9ll',
'profile' => [
'gender' => 'male',
'nickname' => 'joe_shmoe',
'website' => 'https://qplet.ru',
'about' => 'I`m Joe Shmoe'."\n"
."\n"
.' I love singing and dancing.',
'avatar_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'cover_id' => '00000000-422e-41ff-a266-2b0a093307e6',
'birthdate' => '2000-01-01',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=wcqoqsFFN0NOVxAKCjnggLzS0zoHb0PN8apkNF6F; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Contact
Show
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/me/settings/contact" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/contact"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/contact';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=TzOsJskBFEi3mIDU6zpr0uoHx6MlpCaCQTr2v42i; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"country": {
"id": null,
"name": null
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Example request:
curl --request PUT \
"https://api.qplet.dev/v1/users/me/settings/contact" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"email\": \"another.joe@example.com\",
\"phone\": \"+7911 123456\",
\"country_id\": \"ru\",
\"city\": \"Moscow\",
\"zipcode\": \"101000\",
\"address\": \"Leninstreet 18\",
\"address_additional\": \"veniam\"
}"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/contact"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"email": "another.joe@example.com",
"phone": "+7911 123456",
"country_id": "ru",
"city": "Moscow",
"zipcode": "101000",
"address": "Leninstreet 18",
"address_additional": "veniam"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/contact';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'email' => 'another.joe@example.com',
'phone' => '+7911 123456',
'country_id' => 'ru',
'city' => 'Moscow',
'zipcode' => '101000',
'address' => 'Leninstreet 18',
'address_additional' => 'veniam',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=COJep2gFEBjifKj6OzUwNbxtRiNO0NNvsb7X0P72; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"phone": "+7911 123456",
"country": {
"id": "ru",
"name": "Russian Federation"
},
"city": "Moscow",
"zipcode": "101000",
"address": "Leninstreet 18",
"address_additional": "veniam"
}
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Social
Show
requires authentication
Update
requires authentication
System
Show
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/me/settings/system" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/system"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/system';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=e61yA7KSfFIQlOXbUPKjoYzVjR2VFlsVlmNyeHx8; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"language": null,
"first_screen": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Example request:
curl --request PUT \
"https://api.qplet.dev/v1/users/me/settings/system" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"language\": \"ru\",
\"first_screen\": \"wall\"
}"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/system"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"language": "ru",
"first_screen": "wall"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/system';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'language' => 'ru',
'first_screen' => 'wall',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=i6fFRfEBLr7w2BXAn6fFq2GcQrJOor4BGwxTZznE; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"language": "ru",
"first_screen": "wall"
}
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Notifications
Show
requires authentication
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/users/me/settings/notifications" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/notifications"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/notifications';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=t43s2OgnD18UmIa4t8cMwFKUyd7ffvQT5GBYwXvC; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"sound": null,
"profile": {
"view": null,
"subscription": null,
"subscribers": null
},
"event": {
"new": null,
"like": null,
"view": null,
"subscription": null,
"comment": null,
"updated": null
},
"post": {
"new": null,
"like": null,
"share": null,
"comment": null
},
"track": {
"new": null,
"like": null,
"comment": null
},
"album": {
"new": null,
"like": null,
"comment": null
},
"message": {
"new": null
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Example request:
curl --request PUT \
"https://api.qplet.dev/v1/users/me/settings/notifications" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"sound\": true,
\"profile\": {
\"view\": true,
\"subscription\": true,
\"subscribers\": true
},
\"event\": {
\"new\": true,
\"like\": true,
\"view\": true,
\"subscription\": true,
\"comment\": true,
\"updated\": true
},
\"post\": {
\"new\": true,
\"like\": true,
\"share\": true,
\"comment\": true
},
\"track\": {
\"new\": true,
\"like\": true,
\"comment\": true
},
\"album\": {
\"new\": true,
\"like\": true,
\"comment\": true
},
\"message\": {
\"new\": true
}
}"
const url = new URL(
"https://api.qplet.dev/v1/users/me/settings/notifications"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"sound": true,
"profile": {
"view": true,
"subscription": true,
"subscribers": true
},
"event": {
"new": true,
"like": true,
"view": true,
"subscription": true,
"comment": true,
"updated": true
},
"post": {
"new": true,
"like": true,
"share": true,
"comment": true
},
"track": {
"new": true,
"like": true,
"comment": true
},
"album": {
"new": true,
"like": true,
"comment": true
},
"message": {
"new": true
}
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api.qplet.dev/v1/users/me/settings/notifications';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'sound' => true,
'profile' => [
'view' => true,
'subscription' => true,
'subscribers' => true,
],
'event' => [
'new' => true,
'like' => true,
'view' => true,
'subscription' => true,
'comment' => true,
'updated' => true,
],
'post' => [
'new' => true,
'like' => true,
'share' => true,
'comment' => true,
],
'track' => [
'new' => true,
'like' => true,
'comment' => true,
],
'album' => [
'new' => true,
'like' => true,
'comment' => true,
],
'message' => [
'new' => true,
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
Show headers
cache-control: no-cache, private
content-type: application/json
api-version: 20230101-000000
access-control-allow-origin: *
set-cookie: qplet_core_service_session=YsYJzMfkNk0CFeapeMldd8UNG4focDIWAiAwDXZQ; expires=Tue, 10 Jun 2025 12:23:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"sound": true,
"profile": {
"view": true,
"subscription": true,
"subscribers": true
},
"event": {
"new": true,
"like": true,
"view": true,
"subscription": true,
"comment": true,
"updated": true
},
"post": {
"new": true,
"like": true,
"share": true,
"comment": true
},
"track": {
"new": true,
"like": true,
"comment": true
},
"album": {
"new": true,
"like": true,
"comment": true
},
"message": {
"new": true
}
}
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (422):
{
"message": "Validation Exception"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.