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=OogwB9nQxF0JRdoKi8cHg3u0NyJzJXnYujtIhYIw; expires=Fri, 28 Nov 2025 16:53:40 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=FceWGw5JWPQPkpBdZ3xEIdfivDJNNtng20Q9bCOL; expires=Fri, 28 Nov 2025 16:53:42 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=gtDXSZbhDaWfQEotWHdjLgHJxqyf1o2K9TwrAPz4; expires=Fri, 28 Nov 2025 16:53:42 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"token": "1691|gBgoqNPIADXargBH3JEl5I5wd2zIZ3dHNWcPfdUmf668b1ae"
}
}
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/ut" \
--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/ut"
);
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/ut';
$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/iste/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/iste/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/iste/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=06UqRTZKx4Ba4M6krYdLTOtKBlGBulMG4yT2QsHK; expires=Fri, 28 Nov 2025 16:53:42 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=SoZnANTpgRrLYIngfNZjHZJAhCdLFcq4U5TWe3Dl; expires=Fri, 28 Nov 2025 16:53:37 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": 100,
"albums": 5,
"subscribers": 126
},
"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=7BQbxnvG9qknkvgLhjDgQuuzvPDJuo3yFbSnegOh; expires=Fri, 28 Nov 2025 16:53:42 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"is_subscribed": false,
"analytics": {
"tracks": 46,
"albums": 4,
"subscribers": 208
}
}
}
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=0g6tuCJ86kfQX5qUk75xe3WG5iMLOQmgVFf3PYj5; expires=Fri, 28 Nov 2025 16:53:37 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%22a03ed1ae-33ff-43d6-9968-c3beac81b364%22%2C%22a03ed1ae-3e40-486f-be84-bc2ca4e2b5d8%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]": "["a03ed1ae-33ff-43d6-9968-c3beac81b364","a03ed1ae-3e40-486f-be84-bc2ca4e2b5d8"]",
"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]' => '["a03ed1ae-33ff-43d6-9968-c3beac81b364","a03ed1ae-3e40-486f-be84-bc2ca4e2b5d8"]',
'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=EiI5BhHHHiolraIVWvNW4aXOdQnQqt6rAolLZFHj; expires=Fri, 28 Nov 2025 16:53:42 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=NkNrXRoNp2rKFiRQ0LX0AGhdfm2Zfmklhsg9wATO; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a077478c-ba9b-43f8-81f8-3a02f4645686",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "My Post content",
"created_at": 1764341619,
"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=hLY6uQDLaoLwLDNZZTO32JplHFBH7XgMu8MRR38O; expires=Fri, 28 Nov 2025 16:53:39 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": 1761916670,
"updated_at": 1764341619,
"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=kuda9LohH81mFF2aurP47UKtgUYYE6R2S2TQTEJw; expires=Fri, 28 Nov 2025 16:53:39 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=5QR4ksqA5TbaRcmpdwZCU1seybnGrszxzkvszc4a; expires=Fri, 28 Nov 2025 16:53:42 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=54hlhNPz9ktxxXQApBpVxlhBEDzoeQNWXVSpRJnY; expires=Fri, 28 Nov 2025 16:53:42 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": "Saepe debitis omnis accusamus ex et et non. Officia velit totam eum. Iste et minima autem quis sit error.",
"created_at": 1761916670,
"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=yluKLAwbuZVp72DrEMOruTsDOUDF6S4CA1H4ckrr; expires=Fri, 28 Nov 2025 16:53:37 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a0774789-7025-45b5-96f0-07da4fc0adf5",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "My comment to the post",
"created_at": 1764341617
}
}
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=wdsIanPUVt9ir2jJUmNVkweOxKuxOVkn91SpqjYv; expires=Fri, 28 Nov 2025 16:53:37 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": 1761916670,
"updated_at": 1764341617
}
}
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=FuCIXR9gUF4VQMKXxobXS5zJh3y0GFzcX1Mr0mYK; expires=Fri, 28 Nov 2025 16:53:37 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=znWmwRikiIOt5vnfFgzSS2A0beZHwOHinkUtCKBt; expires=Fri, 28 Nov 2025 16:53:42 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": "Quis magni ut blanditiis explicabo aut sed. Vel quia dolorem voluptatem.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9acd-43a0-9a95-e1194fade735",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Inventore officia enim sequi qui exercitationem. Minus quia sit aperiam enim sint. Nam nostrum exercitationem maiores ipsam et totam. Quia ut sunt neque consequatur odio.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9b5c-4d9a-9e45-013935db3823",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Necessitatibus consequatur pariatur dolore eum et. Quod quis dolorum sit laboriosam porro magnam. Rerum aut nesciunt asperiores aliquam nemo laborum. Placeat mollitia nemo libero velit minus itaque.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9bf7-4bd7-80e8-981742cb4ee6",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Pariatur maiores minima et numquam laboriosam amet. Natus voluptatibus iusto dolore quis ea. Rem aliquam dicta non adipisci deserunt pariatur aut. Facere dolore quidem omnis consequatur et mollitia.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9c86-4634-a229-d2bfc19eed6c",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Id et id numquam non voluptatum labore. Nulla est aut rerum enim. Doloremque labore quisquam dolorem veniam cum.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9d22-4a7a-90ac-346eddd20a04",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Magnam eligendi qui ratione. Aperiam cumque omnis autem. Voluptate aliquam voluptatum quia incidunt vel sit est. Quas inventore temporibus nam dolorem.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9daa-4a2f-997e-e9581e246a4a",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Dolores est non molestiae fugiat optio et accusamus quod. Ipsa nostrum et ullam. Optio maiores illo consequatur consectetur.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9e62-4f16-b869-fd65585c4ae0",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Ipsam quia facilis velit sit asperiores. Aut optio est repellendus. Illo mollitia quibusdam autem. Molestiae cupiditate consectetur sequi.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9ee5-4e8e-84b8-6618cdd20744",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Est porro nesciunt est animi blanditiis rem repudiandae. Eaque amet similique eum dignissimos. Quasi ducimus vitae deleniti autem et. Fuga doloremque qui minus quis quidem dolores.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-9fa7-449f-9deb-8a90a949d4fc",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Voluptates veritatis cum omnis. Et non quas ex iusto. Quod sapiente consequatur quasi excepturi enim iusto quos. Dolorem numquam consequatur qui ducimus eligendi.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a025-4cdb-8aa2-ff91703437c9",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Est est excepturi rerum. Placeat omnis rem odio. Eos odio alias a magnam temporibus dignissimos est ut. Tenetur provident quo fugiat voluptatem. Nobis sunt laboriosam temporibus.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a0d3-430f-b122-c8387c919751",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Omnis mollitia dolorem voluptatem culpa ducimus. Non a animi doloremque vel rem nobis temporibus. Minima quidem optio mollitia et voluptas.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a161-41f3-9f12-f87d256e62af",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Autem repellat ex maiores earum et qui. Molestias qui repudiandae laboriosam consequuntur aut. Et incidunt perferendis quisquam molestiae et.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a211-4779-9f8d-55f550a83451",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Itaque cumque cumque et. Voluptatem deleniti voluptas ex quibusdam. Eveniet commodi quia qui tempora. Voluptatum quis ut quis sit qui tempora temporibus.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a295-433f-b8ba-6fc0fae52011",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Necessitatibus qui sequi aut ut quibusdam expedita. At aut optio nemo provident omnis temporibus quibusdam ut.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a33d-4f7a-8884-3618aa8b5bbb",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Eum esse neque iure tempore sunt possimus. Quo ipsam molestiae ullam similique aut voluptas. Nesciunt corrupti perspiciatis quia suscipit nisi eos at.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a3d2-4995-99cb-b9c981d567e6",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Cupiditate pariatur in occaecati maxime sequi unde praesentium deserunt. Omnis veniam rerum voluptas. Non esse vero laudantium accusantium. Quia quis cumque rem non est et.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a45a-4b8a-b994-1cbf71262706",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Perferendis inventore dolores eum. Placeat blanditiis explicabo ullam ipsum et possimus. Soluta quo voluptatem quam facere.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a4e5-4f4b-bc7a-04cffb680912",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Quasi totam ea optio in eaque. Necessitatibus ad tenetur molestias enim accusamus esse. Voluptas et repellendus et eum voluptatem. Fuga et provident quas aut neque beatae est.",
"created_at": 1761916670
},
{
"id": "a03ed1b9-a588-41a9-8427-619331b8a77f",
"entity": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"type": "post"
},
"attachments": [],
"content": "Fugiat officiis rem magni corporis autem optio. Corrupti molestiae neque natus hic distinctio. Blanditiis aut asperiores ducimus eum.",
"created_at": 1761916670
}
],
"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=i79Fy37LjSlsljQut6xISLrgrCIcotzyrbLNAYlm; expires=Fri, 28 Nov 2025 16:53:42 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": "et-dolores-aliquid-atdll",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.dll",
"extension": "dll",
"created_at": "2025-10-31T13:17:49.000000Z"
}
],
"content": "Quis magni ut blanditiis explicabo aut sed. Vel quia dolorem voluptatem.",
"created_at": 1761916670
}
}
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=SNFk34AGCZ1gOIBlMzPanfO2UQmulCQSMKWkiIVG; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a077478c-9ddf-4123-980d-e21f24238ae3",
"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.dll",
"filename": "et-dolores-aliquid-atdll",
"created_at": "2025-10-31T13:17:49+00:00",
"type": "image",
"analytics": {
"views": 543,
"likes": 0,
"comments": 0,
"shares": 10
}
},
"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": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 2,
"likes": 0,
"comments": 14,
"shares": 7
},
"is_liked": 0
}
],
"created_at": 1764341619
}
}
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=YPekAj0AZmkuWiAxk8WSYY4s13fqR84VC7Q4ffRC; expires=Fri, 28 Nov 2025 16:53:39 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.dll",
"filename": "et-dolores-aliquid-atdll",
"created_at": "2025-10-31T13:17:49+00:00",
"type": "image",
"analytics": {
"views": 2966,
"likes": 0,
"comments": 0,
"shares": 11
}
},
"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": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 5,
"shares": 15
},
"is_liked": 0
}
],
"created_at": 1761916710
}
}
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=HbxeCdY7dWYMR7fGw8OdDUV3ooBaQlsAJQcao3fz; expires=Fri, 28 Nov 2025 16:53:39 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=5&page=64&cursor=repellendus&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/albums"
);
const params = {
"filters[name]": "",
"filters[owner]": "",
"per_page": "5",
"page": "64",
"cursor": "repellendus",
"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/albums';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'query' => [
'filters[name]' => '',
'filters[owner]' => '',
'per_page' => '5',
'page' => '64',
'cursor' => 'repellendus',
'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=0V8wCo7UAATrpxiJQ6NBfyOMRxRDH9OlgxMBRJnt; expires=Fri, 28 Nov 2025 16:53:42 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [],
"meta": {
"current_page": 64,
"from": null,
"last_page": 11,
"path": "http://localhost:8083/v1/albums",
"per_page": 5,
"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=PByUDqaflzXgKqnQleFxllZ4DpW4mXA9GFp1s7pX; expires=Fri, 28 Nov 2025 16:53:42 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.dll",
"filename": "et-dolores-aliquid-atdll",
"created_at": "2025-10-31T13:17:49+00:00",
"type": "image",
"analytics": {
"views": 2038,
"likes": 0,
"comments": 0,
"shares": 9
}
},
"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": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"cover": {
"id": "a03ed1ba-448d-418b-8980-60336e0bdf37",
"url": "https://via.placeholder.com/640x480.png/00eeee?text=debitis"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 6,
"likes": 0,
"comments": 12,
"shares": 10
},
"is_liked": 0
},
{
"id": "a03ed1f8-12bf-4029-9480-c13f020cd7c4",
"title": "Iusto sit omnis assumenda quia.",
"media_asset": {
"id": "a03ed1f7-a3e8-458d-ac99-4d86528237e3",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-a3e8-458d-ac99-4d86528237e3.vcf"
},
"cover": {
"id": "a03ed1f7-a5ce-45b7-862b-ac8a35fa7a35",
"url": "https://via.placeholder.com/640x480.png/00ff88?text=quia"
},
"owner": {
"id": "a03ed1f7-a11a-4df9-a8ab-e64f197f8500",
"name": "Hailee Boyer",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 4,
"shares": 7
},
"is_liked": 0
},
{
"id": "a03ed1f8-13a3-4060-bd33-c513956ca1fa",
"title": "Velit doloribus et officia deserunt placeat ipsa soluta.",
"media_asset": {
"id": "a03ed1f7-a8cc-4a42-a8a4-679c219ead5f",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-a8cc-4a42-a8a4-679c219ead5f.chm"
},
"cover": {
"id": "a03ed1f7-aa20-49b7-b8fe-440079bcb8fc",
"url": "https://via.placeholder.com/640x480.png/009922?text=rerum"
},
"owner": {
"id": "a03ed1f7-a771-4f2d-97a8-2a4665ad78de",
"name": "Shemar Will",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 6,
"likes": 0,
"comments": 3,
"shares": 13
},
"is_liked": 0
},
{
"id": "a03ed1f8-147d-4195-aed1-247984210634",
"title": "Quod debitis exercitationem odit earum sed quaerat.",
"media_asset": {
"id": "a03ed1f7-ad67-4e3d-9326-88c1390c72d4",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-ad67-4e3d-9326-88c1390c72d4.pre"
},
"cover": {
"id": "a03ed1f7-aec6-4765-b349-589cfc81e68e",
"url": "https://via.placeholder.com/640x480.png/005566?text=et"
},
"owner": {
"id": "a03ed1f7-ab9a-432e-8955-5616b70d3a7d",
"name": "Vivienne Rosenbaum I",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 0,
"shares": 1
},
"is_liked": 0
},
{
"id": "a03ed1f8-156f-43a0-85f2-9917b98b46d5",
"title": "Voluptatum in quia tempore quaerat repudiandae culpa non et.",
"media_asset": {
"id": "a03ed1f7-b199-4b82-8888-5d2a094dabc5",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-b199-4b82-8888-5d2a094dabc5.uvvv"
},
"cover": {
"id": "a03ed1f7-b2f8-475b-a09d-0ada7aa65973",
"url": "https://via.placeholder.com/640x480.png/005533?text=nobis"
},
"owner": {
"id": "a03ed1f7-b037-498d-bf50-e9b9fadad771",
"name": "Dr. Jakob Beahan",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 10,
"shares": 5
},
"is_liked": 0
},
{
"id": "a03ed1f8-1655-41ff-9508-021f88c009a8",
"title": "Inventore quo non quia maxime et repellendus.",
"media_asset": {
"id": "a03ed1f7-b6cc-48c9-a75e-518117605105",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-b6cc-48c9-a75e-518117605105.mmf"
},
"cover": {
"id": "a03ed1f7-b87f-4894-b12c-7d5a9d873ad3",
"url": "https://via.placeholder.com/640x480.png/00ee11?text=qui"
},
"owner": {
"id": "a03ed1f7-b4f6-41bd-bfdf-8d4401c017d8",
"name": "Mabelle Crooks",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 7,
"shares": 8
},
"is_liked": 0
},
{
"id": "a03ed1f8-17bb-4c68-b27d-2ec4cfdad4f3",
"title": "Et qui non mollitia sunt et sed reprehenderit aut.",
"media_asset": {
"id": "a03ed1f7-bb50-4e20-94a5-2403d734c16e",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-bb50-4e20-94a5-2403d734c16e.avi"
},
"cover": {
"id": "a03ed1f7-bcc1-4dcb-a998-96d50d9c28dc",
"url": "https://via.placeholder.com/640x480.png/0000dd?text=cumque"
},
"owner": {
"id": "a03ed1f7-b9f1-42cf-9251-460d48ddb1bc",
"name": "Caleigh Kshlerin II",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 11,
"shares": 12
},
"is_liked": 0
},
{
"id": "a03ed1f8-1951-452c-a78c-f6632effe7e6",
"title": "Ut ut ipsam dolore harum.",
"media_asset": {
"id": "a03ed1f7-bfee-437a-97e7-d2f1b7ef1bac",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-bfee-437a-97e7-d2f1b7ef1bac.xspf"
},
"cover": {
"id": "a03ed1f7-c15c-4c40-be2e-ebf5f4c5b38b",
"url": "https://via.placeholder.com/640x480.png/0044cc?text=ipsam"
},
"owner": {
"id": "a03ed1f7-be52-436f-bbde-005561f12a46",
"name": "Trevor Konopelski",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 6,
"likes": 0,
"comments": 8,
"shares": 7
},
"is_liked": 0
},
{
"id": "a03ed1f8-1a65-4bc8-8bfd-be3038278ce2",
"title": "Quis et molestias quam sed.",
"media_asset": {
"id": "a03ed1f7-c426-4ca0-ba66-746c08dd5234",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-c426-4ca0-ba66-746c08dd5234.igs"
},
"cover": {
"id": "a03ed1f7-c574-4b00-acfc-be342284a200",
"url": "https://via.placeholder.com/640x480.png/002211?text=quas"
},
"owner": {
"id": "a03ed1f7-c2ca-4d20-9ab8-04ba3f4f77d6",
"name": "Clotilde Trantow",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 4,
"shares": 11
},
"is_liked": 0
},
{
"id": "a03ed1f8-1b74-4598-8a05-82382f0b3cdd",
"title": "Ullam repellat architecto accusantium ab exercitationem.",
"media_asset": {
"id": "a03ed1f7-c861-4248-bc89-8497f0fc2cb5",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-c861-4248-bc89-8497f0fc2cb5.ahead"
},
"cover": {
"id": "a03ed1f7-c9b5-4fbb-be0e-31636d3bf364",
"url": "https://via.placeholder.com/640x480.png/00aa11?text=consequatur"
},
"owner": {
"id": "a03ed1f7-c6fc-4530-ac7d-94fcea1bd637",
"name": "Eloisa Sanford",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 14,
"shares": 10
},
"is_liked": 0
},
{
"id": "a03ed1f8-1ccb-4149-8518-b0859a7a9e14",
"title": "Quam voluptas repellat nesciunt amet veritatis quia eos consectetur.",
"media_asset": {
"id": "a03ed1f7-cc90-41a3-858a-c4ecebafbc8a",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-cc90-41a3-858a-c4ecebafbc8a.rmvb"
},
"cover": {
"id": "a03ed1f7-cdf1-4d1a-94ef-898c8d8d88f0",
"url": "https://via.placeholder.com/640x480.png/00aaee?text=maxime"
},
"owner": {
"id": "a03ed1f7-cb30-46ce-b41e-8d9019cf7e1a",
"name": "Elza Jenkins",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 8,
"shares": 15
},
"is_liked": 0
},
{
"id": "a03ed1f8-1dab-46a5-ac77-6da86a072dce",
"title": "Et expedita corrupti consectetur facilis.",
"media_asset": {
"id": "a03ed1f7-d72e-4948-94d8-97d554b8ede2",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-d72e-4948-94d8-97d554b8ede2.vxml"
},
"cover": {
"id": "a03ed1f7-da7e-4395-a5f4-2afa2a289bff",
"url": "https://via.placeholder.com/640x480.png/001188?text=qui"
},
"owner": {
"id": "a03ed1f7-d539-4bbd-817b-cd30ec7f9f8b",
"name": "Dawn West",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 1,
"likes": 0,
"comments": 5,
"shares": 0
},
"is_liked": 0
},
{
"id": "a03ed1f8-1e54-460a-848b-5625ecff388c",
"title": "Inventore vel aut neque quia tempora distinctio ea.",
"media_asset": {
"id": "a03ed1f7-df3d-4c55-87a8-099a5b4836dc",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-df3d-4c55-87a8-099a5b4836dc.ics"
},
"cover": {
"id": "a03ed1f7-e0c2-4bc1-9ea7-27dddd232548",
"url": "https://via.placeholder.com/640x480.png/00aa99?text=nihil"
},
"owner": {
"id": "a03ed1f7-dd8e-49a1-a3b6-0e65b5cacea0",
"name": "Mr. Gennaro Nikolaus",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 4,
"shares": 10
},
"is_liked": 0
},
{
"id": "a03ed1f8-1ef5-4d4e-b409-cd38518efa66",
"title": "Vel voluptatum sunt sint pariatur.",
"media_asset": {
"id": "a03ed1f7-e3ec-43ae-bde2-8d44f83ef38b",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-e3ec-43ae-bde2-8d44f83ef38b.ez2"
},
"cover": {
"id": "a03ed1f7-e56b-4018-a0a2-bf73865bbd31",
"url": "https://via.placeholder.com/640x480.png/0055cc?text=a"
},
"owner": {
"id": "a03ed1f7-e25c-4bde-bf74-a9c809ead685",
"name": "Prof. Deven Tremblay",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 12,
"shares": 3
},
"is_liked": 0
},
{
"id": "a03ed1f8-1f91-42e3-a820-f1fdc4c8f815",
"title": "Et voluptate officia quia atque.",
"media_asset": {
"id": "a03ed1f7-e847-4b52-9733-f1b12ceebf55",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-e847-4b52-9733-f1b12ceebf55.fvt"
},
"cover": {
"id": "a03ed1f7-e9bf-42df-96b1-8ac0bb71889b",
"url": "https://via.placeholder.com/640x480.png/00dd99?text=consequatur"
},
"owner": {
"id": "a03ed1f7-e6eb-45c5-9f69-ae2e734c0a86",
"name": "Broderick Kemmer",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 10,
"shares": 3
},
"is_liked": 0
},
{
"id": "a03ed1f8-2071-44b5-a6cb-d8c62ca7a4fc",
"title": "Corrupti dolorem corrupti est sit sunt amet atque ut.",
"media_asset": {
"id": "a03ed1f7-ec9c-45dd-8ada-ce1da8029bea",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-ec9c-45dd-8ada-ce1da8029bea.otp"
},
"cover": {
"id": "a03ed1f7-edf9-4177-9131-15a4361dffdb",
"url": "https://via.placeholder.com/640x480.png/00ee33?text=veniam"
},
"owner": {
"id": "a03ed1f7-eb2f-4207-b4b0-11b32f5d2029",
"name": "Roger Lynch",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 5,
"shares": 0
},
"is_liked": 0
},
{
"id": "a03ed1f8-2150-4b3f-b799-31c345fe045b",
"title": "Amet natus expedita placeat libero alias.",
"media_asset": {
"id": "a03ed1f7-f4f1-479c-b9a0-9427c2efa445",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-f4f1-479c-b9a0-9427c2efa445.potx"
},
"cover": {
"id": "a03ed1f7-f8c1-4bdd-ad76-d16e7f6d0cb1",
"url": "https://via.placeholder.com/640x480.png/0077ee?text=cumque"
},
"owner": {
"id": "a03ed1f7-f216-4cc6-b48c-bc7378b68cba",
"name": "Shakira Mosciski PhD",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 9,
"likes": 0,
"comments": 11,
"shares": 0
},
"is_liked": 0
},
{
"id": "a03ed1f8-22a5-4ed7-85c5-df0fc04ab88e",
"title": "Facilis quis voluptatum nihil consequuntur cumque.",
"media_asset": {
"id": "a03ed1f7-ff0c-40d8-861b-0fb54c536106",
"url": "http://localhost:8083/v1/media-assets/a03ed1f7-ff0c-40d8-861b-0fb54c536106.wmd"
},
"cover": {
"id": "a03ed1f8-01d8-4f40-98ce-c5363918b050",
"url": "https://via.placeholder.com/640x480.png/00aa99?text=asperiores"
},
"owner": {
"id": "a03ed1f7-fbc0-4bac-a444-98c3eccee817",
"name": "Kadin Volkman III",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 1,
"likes": 0,
"comments": 15,
"shares": 10
},
"is_liked": 0
},
{
"id": "a03ed1f8-238c-4254-9ae1-8fab3ca2e182",
"title": "Tempore earum cum deserunt facilis.",
"media_asset": {
"id": "a03ed1f8-0646-4c82-a98a-de28ab2bac3d",
"url": "http://localhost:8083/v1/media-assets/a03ed1f8-0646-4c82-a98a-de28ab2bac3d.xm"
},
"cover": {
"id": "a03ed1f8-08a3-442e-9713-49acb9ee0a3a",
"url": "https://via.placeholder.com/640x480.png/0077aa?text=accusantium"
},
"owner": {
"id": "a03ed1f8-04ba-487b-ba3e-2bbc451bce34",
"name": "Marina Jenkins",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 8,
"shares": 11
},
"is_liked": 0
},
{
"id": "a03ed1f8-2483-443e-a625-59ef851298d0",
"title": "Soluta unde distinctio labore explicabo.",
"media_asset": {
"id": "a03ed1f8-0b7f-4d43-b2ec-3c11dca50214",
"url": "http://localhost:8083/v1/media-assets/a03ed1f8-0b7f-4d43-b2ec-3c11dca50214.igs"
},
"cover": {
"id": "a03ed1f8-0cda-4bfc-8bd2-8dd90cc81a0e",
"url": "https://via.placeholder.com/640x480.png/00eecc?text=fugiat"
},
"owner": {
"id": "a03ed1f8-0a1e-4e5a-89de-6ca88a9cce24",
"name": "Julio Hartmann DVM",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 12,
"likes": 0,
"comments": 12,
"shares": 1
},
"is_liked": 0
},
{
"id": "a03ed1f8-2553-4d24-927d-45f8eb795513",
"title": "Animi unde voluptas itaque amet.",
"media_asset": {
"id": "a03ed1f8-0fa4-4d89-b54c-fb82c56d1266",
"url": "http://localhost:8083/v1/media-assets/a03ed1f8-0fa4-4d89-b54c-fb82c56d1266.stw"
},
"cover": {
"id": "a03ed1f8-114a-4e07-942a-c14e81d438ae",
"url": "https://via.placeholder.com/640x480.png/00dd99?text=nemo"
},
"owner": {
"id": "a03ed1f8-0e49-4b79-ae66-526dcf9c7c38",
"name": "Miss Claudine Eichmann",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 5,
"shares": 13
},
"is_liked": 0
}
],
"created_at": 1761916710
}
}
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=AbxA0lW1wdLMokw7gfpyiur4sN4nslrcQjzFGykB; expires=Fri, 28 Nov 2025 16:53:36 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=1v6j2Unezvg9TPIMUgY32hKC1BNsvHTYyIRI4MT3; expires=Fri, 28 Nov 2025 16:53:37 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=fgLQDsTS8vdl5d3vVJHL5MZubC2REV90oN1NLDWo; expires=Fri, 28 Nov 2025 16:53:38 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=rEgxq2XyE6Hw2kbQeDZAV5LRgaJzxwPCxiKuKDrY; expires=Fri, 28 Nov 2025 16:53:38 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": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 8,
"shares": 5
},
"is_liked": 0
},
{
"id": "a03ed1f3-c50e-43b8-b658-c18c367b4e02",
"title": "Quia nesciunt quisquam veritatis facilis.",
"media_asset": {
"id": "a03ed1f3-61f6-439a-a4ed-da6c1c426eec",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-61f6-439a-a4ed-da6c1c426eec.doc"
},
"owner": {
"id": "a03ed1f3-605f-41cc-8567-75ff68c7d0be",
"name": "Korbin Corwin",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 2,
"likes": 0,
"comments": 15,
"shares": 6
},
"is_liked": 0
},
{
"id": "a03ed1f3-c62a-47d9-add0-2056e1fb12d2",
"title": "Eius eos illum saepe delectus nihil quis.",
"media_asset": {
"id": "a03ed1f3-6687-46f6-b888-097ae1e0491b",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-6687-46f6-b888-097ae1e0491b.tmo"
},
"owner": {
"id": "a03ed1f3-6557-4cb5-9cb3-708b81363614",
"name": "Dr. Dejah Graham",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 2,
"shares": 4
},
"is_liked": 0
},
{
"id": "a03ed1f3-c717-434f-9995-062ace0f3669",
"title": "Explicabo accusantium accusamus maxime minus sunt sint corporis.",
"media_asset": {
"id": "a03ed1f3-6ae1-4557-b76c-9439ef613e98",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-6ae1-4557-b76c-9439ef613e98.tmo"
},
"owner": {
"id": "a03ed1f3-694f-4807-bd46-b42551951c3b",
"name": "Dave Daugherty",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 13,
"shares": 9
},
"is_liked": 0
},
{
"id": "a03ed1f3-c84f-4d06-a44f-7b2758451cb4",
"title": "Autem voluptas minima ad aut assumenda sit.",
"media_asset": {
"id": "a03ed1f3-72da-473d-aab6-004cdb14be5d",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-72da-473d-aab6-004cdb14be5d.class"
},
"owner": {
"id": "a03ed1f3-708f-4139-bbc8-ed9ef22fc439",
"name": "Winifred Lubowitz I",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 10,
"shares": 15
},
"is_liked": 0
},
{
"id": "a03ed1f3-c94e-4500-b2a4-8535dff730c8",
"title": "Enim quaerat iste totam excepturi incidunt hic quam.",
"media_asset": {
"id": "a03ed1f3-7999-42d9-bb23-652473e0400c",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-7999-42d9-bb23-652473e0400c.sv4crc"
},
"owner": {
"id": "a03ed1f3-779f-4f00-a311-1918bdfb5ca7",
"name": "Dr. Everardo Gulgowski IV",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 0,
"shares": 14
},
"is_liked": 0
},
{
"id": "a03ed1f3-cab7-4345-ac2b-8d1e99114033",
"title": "Voluptas eum aut omnis incidunt quaerat unde omnis.",
"media_asset": {
"id": "a03ed1f3-8197-40a2-9ec1-afbf4f137b70",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-8197-40a2-9ec1-afbf4f137b70.gtw"
},
"owner": {
"id": "a03ed1f3-7f46-4d57-94a8-08ee636c7bd0",
"name": "Parker Tremblay II",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 6,
"likes": 0,
"comments": 7,
"shares": 15
},
"is_liked": 0
},
{
"id": "a03ed1f3-cb8c-4c8d-b48b-43d609ac6660",
"title": "Quia officiis dolore pariatur aut ex asperiores ea.",
"media_asset": {
"id": "a03ed1f3-85cf-4ad4-8c0b-e28741c55ddb",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-85cf-4ad4-8c0b-e28741c55ddb.wgt"
},
"owner": {
"id": "a03ed1f3-848f-4311-99b5-73cf2651da12",
"name": "Deven Schamberger",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 1,
"shares": 14
},
"is_liked": 0
},
{
"id": "a03ed1f3-cc25-4dff-be08-3d185f0d3bad",
"title": "Ex iure nulla aut sint.",
"media_asset": {
"id": "a03ed1f3-89da-456a-b77f-7cc92b238ffd",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-89da-456a-b77f-7cc92b238ffd.ppm"
},
"owner": {
"id": "a03ed1f3-8865-4f6e-8185-c7574521e70c",
"name": "Maye Tillman Sr.",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 9,
"shares": 1
},
"is_liked": 0
},
{
"id": "a03ed1f3-ccea-48fa-a7da-774874ec535f",
"title": "Numquam rem sapiente nesciunt est possimus architecto.",
"media_asset": {
"id": "a03ed1f3-8fa5-4a91-8069-ec3129701de0",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-8fa5-4a91-8069-ec3129701de0.sema"
},
"owner": {
"id": "a03ed1f3-8df9-4a07-8d50-f48219bfa32c",
"name": "Tod Gaylord",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 15,
"shares": 4
},
"is_liked": 0
},
{
"id": "a03ed1f3-cd74-492c-9dbd-cc4d41f61485",
"title": "Praesentium vel deserunt repellendus reprehenderit molestiae voluptas quia.",
"media_asset": {
"id": "a03ed1f3-9485-40dd-a106-41615d6859ae",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-9485-40dd-a106-41615d6859ae.mobi"
},
"owner": {
"id": "a03ed1f3-9326-4a9d-84c9-c15c88892447",
"name": "Donna Morar",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 12,
"likes": 0,
"comments": 9,
"shares": 12
},
"is_liked": 0
},
{
"id": "a03ed1f3-cdfd-4cee-8c3b-126c56b1cfc6",
"title": "Voluptates asperiores ut voluptas dolorem non nisi et minima.",
"media_asset": {
"id": "a03ed1f3-98c3-4e33-9e49-f2f051f53543",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-98c3-4e33-9e49-f2f051f53543.xslt"
},
"owner": {
"id": "a03ed1f3-975d-4bbc-9777-6454740b8014",
"name": "Clovis Leffler",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 6,
"shares": 10
},
"is_liked": 0
},
{
"id": "a03ed1f3-ce84-45a6-afcc-ea2bc4eb3353",
"title": "Quia necessitatibus quam consequatur et ex rerum dolorum.",
"media_asset": {
"id": "a03ed1f3-9d2d-4e06-bed3-121bcc5d69eb",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-9d2d-4e06-bed3-121bcc5d69eb.mus"
},
"owner": {
"id": "a03ed1f3-9bc8-4ac4-82c8-526d7fd4589f",
"name": "Freddie Thompson",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 4,
"shares": 3
},
"is_liked": 0
},
{
"id": "a03ed1f3-cf77-4c5a-9431-ca5e4790a4d0",
"title": "Sed debitis voluptas provident.",
"media_asset": {
"id": "a03ed1f3-a1bc-447c-b861-df80d762d280",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-a1bc-447c-b861-df80d762d280.h264"
},
"owner": {
"id": "a03ed1f3-a03d-496f-a055-96dd35d42f11",
"name": "Yoshiko Kuphal",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 4,
"shares": 5
},
"is_liked": 0
},
{
"id": "a03ed1f3-d02b-48ef-a144-84e0b1611793",
"title": "Temporibus unde nesciunt voluptates.",
"media_asset": {
"id": "a03ed1f3-a650-41b9-b8cb-31502edb2eed",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-a650-41b9-b8cb-31502edb2eed.odp"
},
"owner": {
"id": "a03ed1f3-a504-43f5-8a35-9f308ba82a2b",
"name": "Bettye Heidenreich",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 13,
"shares": 15
},
"is_liked": 0
},
{
"id": "a03ed1f3-d0b3-4ff7-beab-52c8dcce618f",
"title": "Quam omnis ut et dicta iste.",
"media_asset": {
"id": "a03ed1f3-aa79-4455-b3c0-8a503ba3210c",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-aa79-4455-b3c0-8a503ba3210c.bdm"
},
"owner": {
"id": "a03ed1f3-a90e-4251-97e6-deb91445a6d1",
"name": "Devyn Mayert",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 10,
"shares": 8
},
"is_liked": 0
},
{
"id": "a03ed1f3-d158-4a85-a608-2c5ac40e4e54",
"title": "Vel quibusdam exercitationem quidem ut.",
"media_asset": {
"id": "a03ed1f3-ae7d-4fc4-ad32-5cd3290bb56e",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-ae7d-4fc4-ad32-5cd3290bb56e.karbon"
},
"owner": {
"id": "a03ed1f3-ad2c-4ea0-a831-e3eb1d8e692c",
"name": "Savannah Gusikowski V",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 7,
"shares": 3
},
"is_liked": 0
},
{
"id": "a03ed1f3-d1e3-4d18-8dab-dac94a44872b",
"title": "Nihil quibusdam qui doloremque ipsa et et voluptas.",
"media_asset": {
"id": "a03ed1f3-b2a8-4ee1-8ae9-7a09ebb8676e",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-b2a8-4ee1-8ae9-7a09ebb8676e.js"
},
"owner": {
"id": "a03ed1f3-b156-4319-8e84-f9cb5202ee19",
"name": "Florine O'Hara IV",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 14,
"shares": 13
},
"is_liked": 0
},
{
"id": "a03ed1f3-d26f-446f-bf54-b1cae1195a38",
"title": "Laborum assumenda hic pariatur illo suscipit et.",
"media_asset": {
"id": "a03ed1f3-b733-46dd-8f25-01ee8f7e6691",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-b733-46dd-8f25-01ee8f7e6691.docm"
},
"owner": {
"id": "a03ed1f3-b57f-45b2-a5e1-caaebff12916",
"name": "Colby Feeney",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 13,
"shares": 5
},
"is_liked": 0
},
{
"id": "a03ed1f3-d31f-4052-a2dc-c7b98f40f190",
"title": "Enim dolorum dolorem et et sapiente voluptatum.",
"media_asset": {
"id": "a03ed1f3-bb3f-4412-84ac-e61f541534a1",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-bb3f-4412-84ac-e61f541534a1.fig"
},
"owner": {
"id": "a03ed1f3-b9f5-4570-980d-1ba5b2419826",
"name": "Hattie Gerhold",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 2,
"shares": 3
},
"is_liked": 0
},
{
"id": "a03ed1f3-d3a5-40cc-91d8-fb0cd7221663",
"title": "Quia nostrum ut possimus praesentium vel blanditiis.",
"media_asset": {
"id": "a03ed1f3-bfa9-4c15-9369-095f2cf2dc9d",
"url": "http://localhost:8083/v1/media-assets/a03ed1f3-bfa9-4c15-9369-095f2cf2dc9d.sxd"
},
"owner": {
"id": "a03ed1f3-bde7-45d9-9271-8e32cf9ff84e",
"name": "Louie Krajcik I",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 0,
"likes": 0,
"comments": 2,
"shares": 2
},
"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=JI6KbXm6gnVajkjVahNXJlbqFek6jeWIhREp8Q9V; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a077478b-7308-425d-b5a1-64e9a809646b",
"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.dll",
"filename": "et-dolores-aliquid-atdll",
"created_at": "2025-10-31T13:17:49+00:00",
"type": "image",
"analytics": {
"views": 1761,
"likes": 0,
"comments": 0,
"shares": 2
}
},
"tracks_count": 1,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 8,
"likes": 0,
"comments": 4,
"shares": 13
},
"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=xmaQgonaOfCpX4VDzaAn3WbeYwC2ubtbWQ7xdyE5; expires=Fri, 28 Nov 2025 16:53:38 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.dll",
"filename": "et-dolores-aliquid-atdll",
"created_at": "2025-10-31T13:17:49+00:00",
"type": "image",
"analytics": {
"views": 1867,
"likes": 0,
"comments": 0,
"shares": 14
}
},
"tracks_count": 1,
"tracks": [
{
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 2,
"shares": 8
},
"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=oWL98d1w0InaxzMmk7BRIdgEMwqhh3XTsPVXyUlE; expires=Fri, 28 Nov 2025 16:53:38 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=G480OGr7SOVjPi8lo3tsUrdJ8hx2fRqpac70O11r; expires=Fri, 28 Nov 2025 16:53:42 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": "a03ed1f2-5ca4-4afc-b0c0-43f5723eb205",
"name": "Earum",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": true
},
{
"id": "a03ed1f2-5d75-4349-bf88-2a60bcaf90aa",
"name": "Expedita",
"description": null,
"cover": null,
"tracks_count": 0,
"tracks": [],
"is_editable": true
},
{
"id": "a03ed1f2-5e31-4847-957d-eb849fbf5152",
"name": "Sed",
"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=wXJrxXpTYgquSdIviyfFsOX4UJOzX2M1KL2tpyHu; expires=Fri, 28 Nov 2025 16:53:38 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=VqOuihxOTZB6XNYnY6rDzHQnSmrq2wGeEvqkRpeH; expires=Fri, 28 Nov 2025 16:53:38 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\": [
\"3784b94e-7206-3999-8f4b-f16e184c8131\"
],
\"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": [
"3784b94e-7206-3999-8f4b-f16e184c8131"
],
"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' => [
'3784b94e-7206-3999-8f4b-f16e184c8131',
],
'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=4gYTqd6xGpkAvvqavgcrrqLYZFpS9dvky5588Xot; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a077478c-ac8c-4fd9-ba38-3a6282d1504c",
"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.pgp"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "https://via.placeholder.com/640x480.png/000044?text=eveniet"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 6,
"likes": 0,
"comments": 13,
"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\": [
\"f4a42dc3-72ce-337f-9beb-d6033b80ab28\"
],
\"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": [
"f4a42dc3-72ce-337f-9beb-d6033b80ab28"
],
"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' => [
'f4a42dc3-72ce-337f-9beb-d6033b80ab28',
],
'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=rT6jH2u7eWZCPRF5Rq0SNilWQ4uLWBfetgfCrUGC; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep (Updated)",
"media_asset": {
"id": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "https://via.placeholder.com/640x480.png/000044?text=eveniet"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 2,
"likes": 0,
"comments": 10,
"shares": 7
},
"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=ZxRrJwiDZocgGFN6UBZWeW5BlXIizyJgmiB5qghI; expires=Fri, 28 Nov 2025 16:53:39 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%22a03ed1ae-33ff-43d6-9968-c3beac81b364%22%2C%22a03ed1ae-3e40-486f-be84-bc2ca4e2b5d8%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]": "["a03ed1ae-33ff-43d6-9968-c3beac81b364","a03ed1ae-3e40-486f-be84-bc2ca4e2b5d8"]",
"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]' => '["a03ed1ae-33ff-43d6-9968-c3beac81b364","a03ed1ae-3e40-486f-be84-bc2ca4e2b5d8"]',
'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=dS8TfPEGb6PFFKEkwKHLnWmLzwzFv8Ao1da9R5eE; expires=Fri, 28 Nov 2025 16:53:43 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=4d4J1wVwTuU48Zmr3uoEAKyWrAidEKf0A1jUnxbB; expires=Fri, 28 Nov 2025 16:53:43 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-a791-4783-9845-4b571a9e579f",
"title": "Rolling in the Deep",
"media_asset": {
"id": "a03ed1ba-42fa-47c4-80d1-ad691774032f",
"url": "http://localhost:8083/v1/media-assets/a03ed1ba-42fa-47c4-80d1-ad691774032f.ssf"
},
"cover": {
"id": "a03ed1ba-448d-418b-8980-60336e0bdf37",
"url": "https://via.placeholder.com/640x480.png/00eeee?text=debitis"
},
"owner": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"genres": [],
"analytics": {
"playbacks": 13,
"likes": 0,
"comments": 3,
"shares": 7
},
"is_liked": 0,
"lyrics": {
"is_own": 0,
"author": "Dereck Bergnaum",
"content": "Autem dolores ut est est. Dolorem et dolorem ab sequi. Illum vitae omnis quidem neque aut."
},
"music": {
"is_own": 1,
"author": null
}
}
}
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=bZp0G9vH7oPiEnYpNslOvK9rloXWc3mmtwCqrc2k; expires=Fri, 28 Nov 2025 16:53:39 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=@/var/www/html/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('/var/www/html/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=AMumwcKXvBdCvlLj0RIApd5LDPsLYgehNpABbAkv; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "b015a0bf-44d9-4743-8939-dcfce8048f99",
"url": "http://localhost:8083/v1/media-assets/b015a0bf-44d9-4743-8939-dcfce8048f99.png",
"filename": "logo.png",
"created_at": "2025-11-28T14:53:39+00:00",
"type": "image",
"analytics": {
"views": 2628,
"likes": 0,
"comments": 0,
"shares": 13
}
}
}
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/commodi" \
--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/commodi"
);
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/commodi';
$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=JksGQZ1ZERPgfpTDr9nhsmg0AUv2Dm2SxAtZTPdu; expires=Fri, 28 Nov 2025 16:53:39 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=vff0uwH7L7Gs1uZ5hnUdYGQtc9tNS0PL51ZGRPbG; expires=Fri, 28 Nov 2025 16:53:43 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/in.omnis" \
--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/in.omnis"
);
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/in.omnis';
$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=ULf6AZgl00q2Kv9UXmr3zkkDLSNmaxkYHyVP05uS; expires=Fri, 28 Nov 2025 16:53:43 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/et.laudantium" \
--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/et.laudantium"
);
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/et.laudantium';
$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=pO1TG5x8uWS8RpKs8piN0ECFiQcFi1NybNInzKwv; expires=Fri, 28 Nov 2025 16:53:43 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/rem" \
--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/rem"
);
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/rem';
$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=F9WcorD4HA3ANLEHg5p2EMlhBmEFgDnnWrShqfZf; expires=Fri, 28 Nov 2025 16:53:43 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=grHM7fa2fhS7ENOTH5kes7O4O0k91RCMJNBtRwLC; expires=Fri, 28 Nov 2025 16:53:42 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "a03ed1ae-33ff-43d6-9968-c3beac81b364",
"name": "Alternative",
"tracks": 791415
}
],
"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/a03ed1ae-33ff-43d6-9968-c3beac81b364" \
--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/a03ed1ae-33ff-43d6-9968-c3beac81b364"
);
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/a03ed1ae-33ff-43d6-9968-c3beac81b364';
$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=clMryjQMsQNx6P1DRhvyLhDiXmn6f5kuWnZai8Ae; expires=Fri, 28 Nov 2025 16:53:42 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a03ed1ae-33ff-43d6-9968-c3beac81b364",
"name": "Alternative",
"tracks": 791415
}
}
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=01PrWSVNkLDYrF5m9kQ0ZgMgHv4mpYfjFoEHMBKm; expires=Fri, 28 Nov 2025 16:53:42 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/at/illo" \
--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/at/illo"
);
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/at/illo';
$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=NTXlyyOP7vPZjPY3VZalnp5lx835YF9zRjl2xIB5; expires=Fri, 28 Nov 2025 16:53:43 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/porro/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/playlists/porro/culpa"
);
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/porro/culpa';
$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=dbItxOPXOwDyEXSzksalSBJq5tfxYr2WjOOk7rgP; expires=Fri, 28 Nov 2025 16:53:43 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/nisi/qui" \
--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/nisi/qui"
);
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/nisi/qui';
$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=HvLAb9KtUtbsV6HhNcgXWuGFyQSTwseS8j3OAF58; expires=Fri, 28 Nov 2025 16:53:43 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/provident/ut" \
--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/provident/ut"
);
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/provident/ut';
$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=eYJVoT2vnE0wEceYQI6XlsYwORgLEOBEB0SbTJ5C; expires=Fri, 28 Nov 2025 16:53:43 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=4iOJBF5Nw8D0BjhR4gRYwOgsN77a361qHSmvzze0; expires=Fri, 28 Nov 2025 16:53:43 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/quasi/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/quasi/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/quasi/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=DsZcA66scByBV9zcQxRfGHsQxwxoaLfKX1njEwCr; expires=Fri, 28 Nov 2025 16:53:43 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=yX4bPMojSC6OwBHFgft40zUhCV6BPHU75jQHJz2X; expires=Fri, 28 Nov 2025 16:53:43 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=q57QgRzHADzbb6q3VxsdKqBFUE0P3kVWgu2KqAcv; expires=Fri, 28 Nov 2025 16:53:43 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=FHlpi1d8nLgcZcU3yznkOTqAr8FrO6MHFSzll2yn; expires=Fri, 28 Nov 2025 16:53:37 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\": \"molestiae\",
\"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": "molestiae",
"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' => 'molestiae',
'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=EunXGDpilk3fDxHZdi55WdKp2xt1UI4V0UGfqlX8; expires=Fri, 28 Nov 2025 16:53:37 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a0774789-8133-4319-a733-9b340b07c464",
"name": "molestiae",
"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/a03ed1ae-33ff-43d6-9968-c3beac81b364" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"name\": \"quia\",
\"is_public\": false
}"
const url = new URL(
"https://api.qplet.dev/v1/genres/a03ed1ae-33ff-43d6-9968-c3beac81b364"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"name": "quia",
"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/a03ed1ae-33ff-43d6-9968-c3beac81b364';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'name' => 'quia',
'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=N6vp161Dsvl9NausBX7MVwHGt2QIgdztdp9tsQZm; expires=Fri, 28 Nov 2025 16:53:37 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a03ed1ae-33ff-43d6-9968-c3beac81b364",
"name": "quia",
"tracks": 791415
}
}
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/a03ed1ae-33ff-43d6-9968-c3beac81b364" \
--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/a03ed1ae-33ff-43d6-9968-c3beac81b364"
);
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/a03ed1ae-33ff-43d6-9968-c3beac81b364';
$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=ST8QvGXhFTY0eVhlLEFaAjEoAZ2aMAW5kQ2OqotG; expires=Fri, 28 Nov 2025 16:53:37 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-12-28T14:53:38+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-12-28T14:53:38+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-12-28T14:53:38+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/sint" \
--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/sint"
);
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/sint';
$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=oACaRf0jCg4f2IhVesYN7btPeCY0dQFldhuAr0aP; expires=Fri, 28 Nov 2025 16:53:39 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=xfSmws1elQ4Nh8rUZlkQn49TLOU2x54ksDii3YfR; expires=Fri, 28 Nov 2025 16:53:39 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=tytHRQKG3DBjNt6jtsSZmyMuHgWOxp3AT835rfd7; expires=Fri, 28 Nov 2025 16:53:43 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"views": 602,
"subscriptions": 983,
"subscribers": 571,
"events": 605,
"tracks": 386,
"playlists": 983,
"albums": 185
}
}
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=qCLEgEjVCb5HXQD1NBbEPevAw9oMmo4HEuH8yXIz; expires=Fri, 28 Nov 2025 16:53:43 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=a0wTDj2RwsRo8ufV2o19T4NL1lSXxKAAggiAQ9QG; expires=Fri, 28 Nov 2025 16:53:43 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=uGpGdN1SGT6XTFOJR4qYvqEZb6wW6A7poxqzMjug; expires=Fri, 28 Nov 2025 16:53:43 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"likes": 0,
"playbacks": 171,
"playlists": 939
}
}
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=9eRzESxrXks1tiDxAfFIqj8nOyDGNUPB636OC8jP; expires=Fri, 28 Nov 2025 16:53:43 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"likes": 0,
"comments": 0,
"views": 230
}
}
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=clfP8tVRW9ilLhvP0ChhSnFR3kqja3B4HfGgLwml; expires=Fri, 28 Nov 2025 16:53:37 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"name": "album"
},
{
"name": "event"
},
{
"name": "comment"
},
{
"name": "playlist"
},
{
"name": "post"
},
{
"name": "track"
},
{
"name": "user"
},
{
"name": "message"
},
{
"name": "conversation"
}
]
}
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/quibusdam/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/quibusdam/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/quibusdam/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=JP5wGZRGJXWrbdPKA2y9Gy5B4Ywn6duWcHyxT2jq; expires=Fri, 28 Nov 2025 16:53:37 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=56WSVfqcnBTqyz2k1iQulCuckLiuHf2P9r7sN4LT; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a077478c-8b18-4b44-915d-f0014b83966d",
"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": "Repellendus consequuntur sint fuga eveniet neque. Ad sunt magnam harum sint. Est rerum vero sit culpa perferendis eveniet."
}
}
}
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/et" \
--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/et"
);
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/et';
$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=JWD3FtmaHmlOB0oZuJ4MVeHB1Q1PdJqQoRuggIWK; expires=Fri, 28 Nov 2025 16:53:39 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/voluptatibus" \
--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/voluptatibus"
);
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/voluptatibus';
$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=ec0rFOL6JOc3R64Jm7JKFY3LsaZ8GG20pn7BBhaS; expires=Fri, 28 Nov 2025 16:53:39 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=RnNc4gQskjVCTgtA3Elt4BdAVnuAu4mJltc4mEO8; expires=Fri, 28 Nov 2025 16:53:39 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/nisi" \
--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/nisi"
);
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/nisi';
$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=JCKwibEysnhLRiDUFcOdOhQeMZqjpzbxOMkF37uJ; expires=Fri, 28 Nov 2025 16:53:39 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\": \"Mrs. Hope Botsford\",
\"email\": \"erik86@durgan.com\",
\"message\": \"Laborum sequi voluptatem velit quia tempora omnis. Sit consectetur perferendis veniam unde sit deleniti. Et amet quod aliquam. Quia velit hic velit voluptatibus sapiente.\"
}"
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": "Mrs. Hope Botsford",
"email": "erik86@durgan.com",
"message": "Laborum sequi voluptatem velit quia tempora omnis. Sit consectetur perferendis veniam unde sit deleniti. Et amet quod aliquam. Quia velit hic velit voluptatibus sapiente."
};
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' => 'Mrs. Hope Botsford',
'email' => 'erik86@durgan.com',
'message' => 'Laborum sequi voluptatem velit quia tempora omnis. Sit consectetur perferendis veniam unde sit deleniti. Et amet quod aliquam. Quia velit hic velit voluptatibus sapiente.',
],
]
);
$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=tbeKOI6dukKBceWqdbbJLA1JGXR9Wi36oYZ501yy; expires=Fri, 28 Nov 2025 16:53:43 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a0774792-bfa6-4657-a2d7-07930c371255",
"name": "Mrs. Hope Botsford",
"email": "erik86@durgan.com",
"message": "Laborum sequi voluptatem velit quia tempora omnis. Sit consectetur perferendis veniam unde sit deleniti. Et amet quod aliquam. Quia velit hic velit voluptatibus sapiente."
}
}
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
Chats
List
requires authentication
Endpoint for fetching a 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 (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=AIknP9SGTtKfOaiv4AeVqB9qFeHsVWSPhe55ORRQ; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "a03ed1f5-5df1-47fb-af27-0388084242ed",
"name": "Author Test Country",
"unread_count": 1,
"latest_message": {
"id": "a03ed1f5-a37c-42ac-878b-a62e9bd59920",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Est maiores sed deserunt voluptatum dolorem. Quam iusto deserunt ut est similique. Fugiat aperiam minus velit sed eligendi.",
"created_at": 1761916702
},
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
}
]
},
{
"id": "a03ed1f5-c803-4e2f-9219-1a78fb0d520a",
"name": "Fan Test Country",
"unread_count": 0,
"latest_message": {
"id": "a03ed1f6-1210-46a8-a3b2-f5347c6117ec",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Quos quia soluta quis veniam quia. Inventore ea sunt sequi dolorum. Blanditiis ipsum reiciendis voluptas et modi et.",
"created_at": 1761916702
},
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
}
]
},
{
"id": "a03ed1f6-12c4-4d3a-aa35-fa1cf9244e47",
"name": "Author Test Country",
"unread_count": 2,
"latest_message": {
"id": "a03ed1f6-6228-47e6-a905-fd1732e6fbcf",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Consequatur ut nisi molestias quam commodi quo eos. Est recusandae ut nihil veniam qui dolor amet et. Reprehenderit eligendi aut alias sunt. At ab beatae eaque odio ipsa.",
"created_at": 1761916703
},
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
}
]
},
{
"id": "a03ed1f4-b1dc-4399-9420-510892ac9ef9",
"name": "Fan Test Country",
"unread_count": 2,
"latest_message": {
"id": "a03ed1f4-f63d-4cc7-ad35-58f41c1b5181",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Tenetur voluptates voluptatem eos aliquid repudiandae. Fuga alias provident cum itaque error ipsum. Dolorem eum eum corporis similique dolorem eos sed. Laudantium ex explicabo minima laudantium quas.",
"created_at": 1761916702
},
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
}
]
},
{
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"name": "Fan Test Country, Author Test Country",
"unread_count": 2,
"latest_message": {
"id": "a03ed1f5-c761-448c-90b6-ddf95beeb2b1",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Necessitatibus cum quo culpa aut ipsam perferendis velit. Et sit sint omnis cum qui quo. Est eos velit dolores eos. Doloribus doloribus dolor saepe voluptatibus vero adipisci est.",
"created_at": 1761916702
},
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
}
]
}
],
"meta": {
"path": "http://localhost:8083/v1/conversations",
"per_page": 20,
"next_cursor": null,
"prev_cursor": 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.
Search
requires authentication
Global search across conversations
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/conversations/search" \
--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/search"
);
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/search';
$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=HZuF3AW2aqk81raT6nWt18tu3Mhc3DOfOOXRL0PG; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "7ac8ab55-6731-40b8-84ba-d0b63191a8c3",
"type": "message",
"match": "This is a sample message containing the search term."
},
{
"id": "7aae5b91-3e71-4255-bb02-4eb8fecf0c80",
"type": "participant",
"match": "Anita"
},
{
"id": "024384a8-d462-46d9-a05c-a39d09fafbc8",
"type": "participant",
"match": "User with name matching the search term."
}
]
}
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 with a list of recent messages
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 (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=AcQGaNBS4KaaFXeX7VTYc1HNhoDmmBdaqsUihWpl; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"name": "Fan Test Country, Author Test Country",
"unread_count": 2,
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
}
],
"messages": [
{
"id": "a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Qui dolorem fuga veniam voluptatibus. Harum harum modi unde quisquam omnis. Saepe voluptatem doloremque magnam aliquam molestiae consequuntur ut possimus.",
"created_at": 1761916603
},
{
"id": "a03ed1f4-4c2a-4801-a381-0adc3791f8c8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Tenetur sit iure mollitia qui minus. Iure neque et sit. Sint est magni neque. Iste optio voluptates voluptatem id dolorum quam.",
"created_at": 1761916610
},
{
"id": "a03ed1f4-4e3b-461b-abc8-2ba4b17b9a2e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Deserunt animi quia autem fugiat. Et expedita ducimus sit doloribus. Aperiam est magni vel repudiandae sed sequi. Dolorem laborum nam doloremque deserunt consequatur.",
"created_at": 1761916617
},
{
"id": "a03ed1f4-5020-4177-bb5c-c549689c6af4",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Vel voluptas nesciunt quidem dolorum molestiae ut. Sunt iusto aperiam in distinctio. Ducimus autem recusandae officiis veniam nam ut consequatur.",
"created_at": 1761916624
},
{
"id": "a03ed1f4-5257-47aa-8532-8418628aa2ba",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Iure est ut quae sit et. Veniam neque accusantium libero quam quia labore. Aut inventore consectetur porro velit in atque enim quasi. Vero voluptatem quibusdam autem minus.",
"created_at": 1761916631
},
{
"id": "a03ed1f4-544d-4fd1-8196-599c1adc75c7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Id iusto magnam suscipit quas repudiandae ex. Magni ut non eius eveniet. Error magnam mollitia et velit repellat quasi. Id est quod ipsa ipsam est et.",
"created_at": 1761916638
},
{
"id": "a03ed1f4-569a-48c2-bbae-817960a0635f",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Eos consequatur cum numquam officia vero molestiae nihil. Omnis nihil neque iure. Sapiente incidunt quo ratione aut porro adipisci. Est molestiae autem alias laboriosam rerum.",
"created_at": 1761916645
},
{
"id": "a03ed1f4-58a6-4db3-b84d-cbfc5117dd19",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Facilis minima eligendi corporis deserunt. Impedit ut facere assumenda voluptate est quis. Et rerum blanditiis exercitationem et. Dolor sit numquam voluptatum et.",
"created_at": 1761916652
},
{
"id": "a03ed1f4-5ac3-4046-a679-85eecc1bebe6",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Illo ratione ut rerum repellendus nostrum neque. Porro exercitationem quos quia non corrupti magnam. Voluptas deserunt omnis quod ut aliquid sequi et.",
"created_at": 1761916659
},
{
"id": "a03ed1f4-5cd2-4414-8239-ce96e8ecf4e7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Harum veritatis perspiciatis doloremque ex distinctio qui magni sint. Quos sed autem officiis asperiores error velit unde.",
"created_at": 1761916666
},
{
"id": "a03ed1f4-5ebf-43a7-9536-bd197dc9a7a8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Id vitae voluptates ut magni molestiae quo quasi. Hic aut dicta qui est earum eaque ut. Veritatis atque quidem maxime minima perferendis cumque dolorem aut.",
"created_at": 1761916673
},
{
"id": "a03ed1f4-607d-45fa-bf75-a84530f41570",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Aut enim commodi quo eveniet eligendi autem magni. Aut sit in sint eos in. Ut reprehenderit sunt deleniti earum qui quisquam eum. Libero accusamus officia vero sint impedit.",
"created_at": 1761916680
},
{
"id": "a03ed1f4-62c9-4323-8e93-fc6a0351ac7b",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Est reiciendis quia quas non quam corrupti nihil. Sit earum aut unde qui sapiente. Quo et non quam vero iusto. Libero laborum sed tempora voluptatibus assumenda porro in qui.",
"created_at": 1761916687
},
{
"id": "a03ed1f4-64d6-4bbc-80f1-3f6f6ae7dd38",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Aut deserunt odio vel repudiandae. Natus qui voluptatem est. Quis et qui id repudiandae qui non dolor. Voluptate quibusdam numquam enim illo et ipsum qui.",
"created_at": 1761916694
},
{
"id": "a03ed1f4-669e-45c7-83b5-4e5889d6d99d",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Ut alias deleniti eum ea ipsa. Autem provident minima omnis aut consequuntur reprehenderit. Recusandae error corrupti sit natus nihil dicta.",
"created_at": 1761916701
},
{
"id": "a03ed1f4-fa29-4a87-858d-85815b43f610",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Rem non in dolorum ut minima est facilis. Dolor hic consectetur magni praesentium officia porro.",
"created_at": 1761916604
},
{
"id": "a03ed1f4-fbf3-427a-ade8-48aad834b6f2",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Atque et commodi quia qui consequatur et. Laborum saepe dolor sequi explicabo velit et. Eum consequatur veritatis inventore ut.",
"created_at": 1761916611
},
{
"id": "a03ed1f4-fe10-42bc-ab18-7ea912a49743",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Dolore in et aliquam tenetur consequatur ea. Perspiciatis vel deserunt sed. Fuga ea inventore id sunt. Dicta nisi et perspiciatis numquam voluptatem dignissimos laborum velit.",
"created_at": 1761916618
},
{
"id": "a03ed1f4-ffde-4426-a300-131495fd6ef4",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Veniam dolorem facilis qui quisquam at libero et. Mollitia aliquam amet quas facilis nam quidem. Cumque et corporis quis molestias consectetur rem omnis. Delectus labore vel quia non.",
"created_at": 1761916625
},
{
"id": "a03ed1f5-0273-4b16-8ad2-87649b752c60",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Perspiciatis quia aut sed voluptas natus quibusdam accusamus. Eligendi voluptates omnis aut soluta dolor. Aperiam consequatur rerum id amet.",
"created_at": 1761916632
},
{
"id": "a03ed1f5-055c-4892-9479-317d97200d43",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Earum deserunt sunt reprehenderit quibusdam perferendis aut. Eaque tempore ut tempore qui ipsa vel. Reiciendis reprehenderit dolor praesentium perferendis. Laboriosam eveniet ipsa non omnis.",
"created_at": 1761916639
},
{
"id": "a03ed1f5-0767-41f6-959c-aa118f101d21",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Earum molestiae quo temporibus non non. Placeat perferendis atque ea molestiae laborum sint necessitatibus. Ea mollitia ipsam itaque similique rerum.",
"created_at": 1761916646
},
{
"id": "a03ed1f5-099e-4542-8b20-f9df155f7fe6",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Assumenda molestiae aut voluptatem qui quis natus. Unde totam ut vel numquam. Consectetur quibusdam aperiam repudiandae. Consequatur placeat quis eum qui.",
"created_at": 1761916653
},
{
"id": "a03ed1f5-0b9d-4629-8f8e-4630b62c1a4b",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Nihil corrupti non quam est cupiditate omnis. Voluptatem ut perspiciatis corporis qui.",
"created_at": 1761916660
},
{
"id": "a03ed1f5-0d98-46fb-9e54-01ee46462d44",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Qui quia vel ea minima explicabo commodi et. Et vero voluptatum similique aliquam. Quaerat nam aut est omnis vel.",
"created_at": 1761916667
},
{
"id": "a03ed1f5-0fa2-43b8-ae6c-2dc060e34544",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Aspernatur dolore non aut iusto impedit aut. Ea est veritatis nihil eos sit unde. Necessitatibus cumque quisquam deleniti magni sunt ut.",
"created_at": 1761916674
},
{
"id": "a03ed1f5-11f7-4ff6-8db0-8a6ad85b62b9",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Veniam ipsam consequuntur nemo harum omnis. Consequuntur exercitationem voluptatum cum sapiente. Omnis neque sint nesciunt aperiam autem possimus. Aut voluptatum totam laboriosam.",
"created_at": 1761916681
},
{
"id": "a03ed1f5-141f-45cd-a6e8-e30a2119b4b9",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Eveniet illum est quis dignissimos officia aut. Aliquam aut officiis quia similique optio. Recusandae est pariatur et ut cum.",
"created_at": 1761916688
},
{
"id": "a03ed1f5-1616-4053-9a63-9aa503e20a53",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Modi et earum provident est omnis. Cum excepturi enim aut id. Sapiente sit recusandae sed est sit fugit.",
"created_at": 1761916695
},
{
"id": "a03ed1f5-17d4-48b0-96b3-32906185e01e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Animi quidem doloribus perferendis quaerat a. Hic nihil nemo voluptates qui aut in. Beatae numquam sapiente in culpa.",
"created_at": 1761916702
},
{
"id": "a03ed1f5-a81f-4df3-ae76-92e970438660",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Asperiores ut asperiores ea praesentium autem ratione cupiditate delectus. Provident provident veritatis minima incidunt. Rem laboriosam reprehenderit architecto illo. Ullam veritatis sunt enim ut.",
"created_at": 1761916604
},
{
"id": "a03ed1f5-aa7c-40fe-a7d2-efb5b7e031d0",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Non quia expedita ut eos nisi laboriosam distinctio aliquid. Similique aut eius maxime nostrum. Ad explicabo ut qui vitae dolorem.",
"created_at": 1761916611
},
{
"id": "a03ed1f5-acfc-4308-b816-63503756bd6a",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Dolor qui sit nam ut. Ratione repudiandae est odit. Placeat accusamus reiciendis sed nihil assumenda et accusantium. Qui eveniet quia modi ipsam corporis consequuntur.",
"created_at": 1761916618
},
{
"id": "a03ed1f5-af58-46a6-9023-9c4dd10cade7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "In eius fugit deserunt voluptas perspiciatis molestias. Ipsum quas rerum omnis eligendi veniam accusantium esse qui. Corporis et reprehenderit vitae amet fugit at dicta perspiciatis.",
"created_at": 1761916625
},
{
"id": "a03ed1f5-b15a-467b-a7f8-56e0ad98e999",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Quaerat veritatis dicta in dolores quia. Aut officia nesciunt dolor quo. Omnis qui dolorum dolorem omnis autem voluptatem quam.",
"created_at": 1761916632
},
{
"id": "a03ed1f5-b385-46e9-8417-dbe01d95aa8e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Ab voluptatem rerum ut culpa architecto exercitationem aspernatur. Adipisci numquam voluptate deleniti incidunt. Et facere numquam rerum et et. Mollitia voluptas suscipit recusandae quia qui.",
"created_at": 1761916639
},
{
"id": "a03ed1f5-b625-49ee-8e41-b5a94ea617ee",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Repellat reprehenderit sed perspiciatis. Voluptas eos cumque soluta exercitationem tempora quia placeat. Rem amet dignissimos odit recusandae sapiente a eaque.",
"created_at": 1761916646
},
{
"id": "a03ed1f5-b892-4c9c-b3c0-f40c2c911a23",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Eaque quo nam vitae repellendus facilis exercitationem. Reiciendis eos dicta exercitationem excepturi. Qui veniam eligendi maxime nihil tempora qui assumenda sed. Ut velit rerum accusamus nihil.",
"created_at": 1761916653
},
{
"id": "a03ed1f5-baf9-4fb9-95c6-f426c7070787",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Et occaecati laudantium aut non soluta inventore ducimus. Consequatur molestiae sint corrupti eum fuga quaerat nihil reprehenderit. Et sit vero dolorem earum nisi et.",
"created_at": 1761916660
},
{
"id": "a03ed1f5-bcea-4e93-9c75-6654e29a81a1",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Autem nisi vero voluptate ea dolores incidunt quam. Vitae assumenda quia temporibus voluptates perferendis aliquid ipsa. Dolorum et et quis et sequi dolor rerum. Amet vero quaerat et ut.",
"created_at": 1761916667
},
{
"id": "a03ed1f5-bee3-4fdf-8fd2-78814ba7f874",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Adipisci enim fugit impedit. Ipsum dicta iste molestias et suscipit aut. Modi impedit reiciendis earum ex qui soluta recusandae ullam. Ut est voluptatibus sequi natus iure. Qui a dolore ut.",
"created_at": 1761916674
},
{
"id": "a03ed1f5-c0f0-4387-87d6-4dd67f5653af",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Modi architecto in praesentium vel. Dolore est non aliquid autem ea sed dolor. Voluptates sit tempore vel sit assumenda perspiciatis sed.",
"created_at": 1761916681
},
{
"id": "a03ed1f5-c2d5-4867-a662-3612e0e2faa7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Quod corrupti eveniet vero tenetur et et et molestiae. Nesciunt omnis rem ut. Facere tempora velit accusamus iure beatae occaecati inventore expedita. Repellat quia omnis qui quidem rem a qui.",
"created_at": 1761916688
},
{
"id": "a03ed1f5-c566-49e3-b708-a4d1636ff3db",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Et qui totam soluta dolor. Vitae unde eligendi itaque cum. Fuga mollitia officiis ut autem.",
"created_at": 1761916695
},
{
"id": "a03ed1f5-c761-448c-90b6-ddf95beeb2b1",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Necessitatibus cum quo culpa aut ipsam perferendis velit. Et sit sint omnis cum qui quo. Est eos velit dolores eos. Doloribus doloribus dolor saepe voluptatibus vero adipisci est.",
"created_at": 1761916702
}
]
}
}
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.
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\",
\"participants\": [
[
\"00000000-df85-4307-a069-68612c4471e3\",
\"00000000-df85-4307-a069-68612c4471e2\"
]
]
}"
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",
"participants": [
[
"00000000-df85-4307-a069-68612c4471e3",
"00000000-df85-4307-a069-68612c4471e2"
]
]
};
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',
'participants' => [
[
'00000000-df85-4307-a069-68612c4471e3',
'00000000-df85-4307-a069-68612c4471e2',
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Example response (422):
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=PB2MkylzkpTRyrqiWImtovXMxAfaGEhXhFJ8Q9eG; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "The participants must have at least 2 items. (and 1 more error)",
"errors": {
"participants": [
"The participants must have at least 2 items."
],
"participants.0": [
"The participants.0 must be a valid UUID."
]
}
}
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 "{
\"name\": \"New name\"
}"
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 = {
"name": "New name"
};
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' => [
'name' => 'New 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=Jvu3LltPYbbADFqx8LF3nPABK8d2Fufj2X7wlOY3; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"name": "Fan Test Country, Author Test Country",
"unread_count": 3,
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
}
]
}
}
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"
}
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=n4OyWIuS2h1NCstx3TAAgiHXoOoCBLkeeHoyPE2A; expires=Fri, 28 Nov 2025 16:53:38 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.
Settings
requires authentication
Returns settings for specific conversation
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/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/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/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/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/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=GuJrB7aKjLRRsV7Y6Gywc13jt9ae3EKtxz8dkKJA; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"name": "Fan Test Country, Author Test Country",
"unread_count": 0,
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
}
],
"messages": [
{
"id": "a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Qui dolorem fuga veniam voluptatibus. Harum harum modi unde quisquam omnis. Saepe voluptatem doloremque magnam aliquam molestiae consequuntur ut possimus.",
"created_at": 1761916603
},
{
"id": "a03ed1f4-4c2a-4801-a381-0adc3791f8c8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Tenetur sit iure mollitia qui minus. Iure neque et sit. Sint est magni neque. Iste optio voluptates voluptatem id dolorum quam.",
"created_at": 1761916610
},
{
"id": "a03ed1f4-4e3b-461b-abc8-2ba4b17b9a2e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Deserunt animi quia autem fugiat. Et expedita ducimus sit doloribus. Aperiam est magni vel repudiandae sed sequi. Dolorem laborum nam doloremque deserunt consequatur.",
"created_at": 1761916617
},
{
"id": "a03ed1f4-5020-4177-bb5c-c549689c6af4",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Vel voluptas nesciunt quidem dolorum molestiae ut. Sunt iusto aperiam in distinctio. Ducimus autem recusandae officiis veniam nam ut consequatur.",
"created_at": 1761916624
},
{
"id": "a03ed1f4-5257-47aa-8532-8418628aa2ba",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Iure est ut quae sit et. Veniam neque accusantium libero quam quia labore. Aut inventore consectetur porro velit in atque enim quasi. Vero voluptatem quibusdam autem minus.",
"created_at": 1761916631
},
{
"id": "a03ed1f4-544d-4fd1-8196-599c1adc75c7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Id iusto magnam suscipit quas repudiandae ex. Magni ut non eius eveniet. Error magnam mollitia et velit repellat quasi. Id est quod ipsa ipsam est et.",
"created_at": 1761916638
},
{
"id": "a03ed1f4-569a-48c2-bbae-817960a0635f",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Eos consequatur cum numquam officia vero molestiae nihil. Omnis nihil neque iure. Sapiente incidunt quo ratione aut porro adipisci. Est molestiae autem alias laboriosam rerum.",
"created_at": 1761916645
},
{
"id": "a03ed1f4-58a6-4db3-b84d-cbfc5117dd19",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Facilis minima eligendi corporis deserunt. Impedit ut facere assumenda voluptate est quis. Et rerum blanditiis exercitationem et. Dolor sit numquam voluptatum et.",
"created_at": 1761916652
},
{
"id": "a03ed1f4-5ac3-4046-a679-85eecc1bebe6",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Illo ratione ut rerum repellendus nostrum neque. Porro exercitationem quos quia non corrupti magnam. Voluptas deserunt omnis quod ut aliquid sequi et.",
"created_at": 1761916659
},
{
"id": "a03ed1f4-5cd2-4414-8239-ce96e8ecf4e7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Harum veritatis perspiciatis doloremque ex distinctio qui magni sint. Quos sed autem officiis asperiores error velit unde.",
"created_at": 1761916666
},
{
"id": "a03ed1f4-5ebf-43a7-9536-bd197dc9a7a8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Id vitae voluptates ut magni molestiae quo quasi. Hic aut dicta qui est earum eaque ut. Veritatis atque quidem maxime minima perferendis cumque dolorem aut.",
"created_at": 1761916673
},
{
"id": "a03ed1f4-607d-45fa-bf75-a84530f41570",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Aut enim commodi quo eveniet eligendi autem magni. Aut sit in sint eos in. Ut reprehenderit sunt deleniti earum qui quisquam eum. Libero accusamus officia vero sint impedit.",
"created_at": 1761916680
},
{
"id": "a03ed1f4-62c9-4323-8e93-fc6a0351ac7b",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Est reiciendis quia quas non quam corrupti nihil. Sit earum aut unde qui sapiente. Quo et non quam vero iusto. Libero laborum sed tempora voluptatibus assumenda porro in qui.",
"created_at": 1761916687
},
{
"id": "a03ed1f4-64d6-4bbc-80f1-3f6f6ae7dd38",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Aut deserunt odio vel repudiandae. Natus qui voluptatem est. Quis et qui id repudiandae qui non dolor. Voluptate quibusdam numquam enim illo et ipsum qui.",
"created_at": 1761916694
},
{
"id": "a03ed1f4-669e-45c7-83b5-4e5889d6d99d",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Ut alias deleniti eum ea ipsa. Autem provident minima omnis aut consequuntur reprehenderit. Recusandae error corrupti sit natus nihil dicta.",
"created_at": 1761916701
},
{
"id": "a03ed1f4-fa29-4a87-858d-85815b43f610",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Rem non in dolorum ut minima est facilis. Dolor hic consectetur magni praesentium officia porro.",
"created_at": 1761916604
},
{
"id": "a03ed1f4-fbf3-427a-ade8-48aad834b6f2",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Atque et commodi quia qui consequatur et. Laborum saepe dolor sequi explicabo velit et. Eum consequatur veritatis inventore ut.",
"created_at": 1761916611
},
{
"id": "a03ed1f4-fe10-42bc-ab18-7ea912a49743",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Dolore in et aliquam tenetur consequatur ea. Perspiciatis vel deserunt sed. Fuga ea inventore id sunt. Dicta nisi et perspiciatis numquam voluptatem dignissimos laborum velit.",
"created_at": 1761916618
},
{
"id": "a03ed1f4-ffde-4426-a300-131495fd6ef4",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Veniam dolorem facilis qui quisquam at libero et. Mollitia aliquam amet quas facilis nam quidem. Cumque et corporis quis molestias consectetur rem omnis. Delectus labore vel quia non.",
"created_at": 1761916625
},
{
"id": "a03ed1f5-0273-4b16-8ad2-87649b752c60",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Perspiciatis quia aut sed voluptas natus quibusdam accusamus. Eligendi voluptates omnis aut soluta dolor. Aperiam consequatur rerum id amet.",
"created_at": 1761916632
},
{
"id": "a03ed1f5-055c-4892-9479-317d97200d43",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Earum deserunt sunt reprehenderit quibusdam perferendis aut. Eaque tempore ut tempore qui ipsa vel. Reiciendis reprehenderit dolor praesentium perferendis. Laboriosam eveniet ipsa non omnis.",
"created_at": 1761916639
},
{
"id": "a03ed1f5-0767-41f6-959c-aa118f101d21",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Earum molestiae quo temporibus non non. Placeat perferendis atque ea molestiae laborum sint necessitatibus. Ea mollitia ipsam itaque similique rerum.",
"created_at": 1761916646
},
{
"id": "a03ed1f5-099e-4542-8b20-f9df155f7fe6",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Assumenda molestiae aut voluptatem qui quis natus. Unde totam ut vel numquam. Consectetur quibusdam aperiam repudiandae. Consequatur placeat quis eum qui.",
"created_at": 1761916653
},
{
"id": "a03ed1f5-0b9d-4629-8f8e-4630b62c1a4b",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Nihil corrupti non quam est cupiditate omnis. Voluptatem ut perspiciatis corporis qui.",
"created_at": 1761916660
},
{
"id": "a03ed1f5-0d98-46fb-9e54-01ee46462d44",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Qui quia vel ea minima explicabo commodi et. Et vero voluptatum similique aliquam. Quaerat nam aut est omnis vel.",
"created_at": 1761916667
},
{
"id": "a03ed1f5-0fa2-43b8-ae6c-2dc060e34544",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Aspernatur dolore non aut iusto impedit aut. Ea est veritatis nihil eos sit unde. Necessitatibus cumque quisquam deleniti magni sunt ut.",
"created_at": 1761916674
},
{
"id": "a03ed1f5-11f7-4ff6-8db0-8a6ad85b62b9",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Veniam ipsam consequuntur nemo harum omnis. Consequuntur exercitationem voluptatum cum sapiente. Omnis neque sint nesciunt aperiam autem possimus. Aut voluptatum totam laboriosam.",
"created_at": 1761916681
},
{
"id": "a03ed1f5-141f-45cd-a6e8-e30a2119b4b9",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Eveniet illum est quis dignissimos officia aut. Aliquam aut officiis quia similique optio. Recusandae est pariatur et ut cum.",
"created_at": 1761916688
},
{
"id": "a03ed1f5-1616-4053-9a63-9aa503e20a53",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Modi et earum provident est omnis. Cum excepturi enim aut id. Sapiente sit recusandae sed est sit fugit.",
"created_at": 1761916695
},
{
"id": "a03ed1f5-17d4-48b0-96b3-32906185e01e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Animi quidem doloribus perferendis quaerat a. Hic nihil nemo voluptates qui aut in. Beatae numquam sapiente in culpa.",
"created_at": 1761916702
},
{
"id": "a03ed1f5-a81f-4df3-ae76-92e970438660",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Asperiores ut asperiores ea praesentium autem ratione cupiditate delectus. Provident provident veritatis minima incidunt. Rem laboriosam reprehenderit architecto illo. Ullam veritatis sunt enim ut.",
"created_at": 1761916604
},
{
"id": "a03ed1f5-aa7c-40fe-a7d2-efb5b7e031d0",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Non quia expedita ut eos nisi laboriosam distinctio aliquid. Similique aut eius maxime nostrum. Ad explicabo ut qui vitae dolorem.",
"created_at": 1761916611
},
{
"id": "a03ed1f5-acfc-4308-b816-63503756bd6a",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Dolor qui sit nam ut. Ratione repudiandae est odit. Placeat accusamus reiciendis sed nihil assumenda et accusantium. Qui eveniet quia modi ipsam corporis consequuntur.",
"created_at": 1761916618
},
{
"id": "a03ed1f5-af58-46a6-9023-9c4dd10cade7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "In eius fugit deserunt voluptas perspiciatis molestias. Ipsum quas rerum omnis eligendi veniam accusantium esse qui. Corporis et reprehenderit vitae amet fugit at dicta perspiciatis.",
"created_at": 1761916625
},
{
"id": "a03ed1f5-b15a-467b-a7f8-56e0ad98e999",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Quaerat veritatis dicta in dolores quia. Aut officia nesciunt dolor quo. Omnis qui dolorum dolorem omnis autem voluptatem quam.",
"created_at": 1761916632
},
{
"id": "a03ed1f5-b385-46e9-8417-dbe01d95aa8e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Ab voluptatem rerum ut culpa architecto exercitationem aspernatur. Adipisci numquam voluptate deleniti incidunt. Et facere numquam rerum et et. Mollitia voluptas suscipit recusandae quia qui.",
"created_at": 1761916639
},
{
"id": "a03ed1f5-b625-49ee-8e41-b5a94ea617ee",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Repellat reprehenderit sed perspiciatis. Voluptas eos cumque soluta exercitationem tempora quia placeat. Rem amet dignissimos odit recusandae sapiente a eaque.",
"created_at": 1761916646
},
{
"id": "a03ed1f5-b892-4c9c-b3c0-f40c2c911a23",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Eaque quo nam vitae repellendus facilis exercitationem. Reiciendis eos dicta exercitationem excepturi. Qui veniam eligendi maxime nihil tempora qui assumenda sed. Ut velit rerum accusamus nihil.",
"created_at": 1761916653
},
{
"id": "a03ed1f5-baf9-4fb9-95c6-f426c7070787",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Et occaecati laudantium aut non soluta inventore ducimus. Consequatur molestiae sint corrupti eum fuga quaerat nihil reprehenderit. Et sit vero dolorem earum nisi et.",
"created_at": 1761916660
},
{
"id": "a03ed1f5-bcea-4e93-9c75-6654e29a81a1",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Autem nisi vero voluptate ea dolores incidunt quam. Vitae assumenda quia temporibus voluptates perferendis aliquid ipsa. Dolorum et et quis et sequi dolor rerum. Amet vero quaerat et ut.",
"created_at": 1761916667
},
{
"id": "a03ed1f5-bee3-4fdf-8fd2-78814ba7f874",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Adipisci enim fugit impedit. Ipsum dicta iste molestias et suscipit aut. Modi impedit reiciendis earum ex qui soluta recusandae ullam. Ut est voluptatibus sequi natus iure. Qui a dolore ut.",
"created_at": 1761916674
},
{
"id": "a03ed1f5-c0f0-4387-87d6-4dd67f5653af",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Modi architecto in praesentium vel. Dolore est non aliquid autem ea sed dolor. Voluptates sit tempore vel sit assumenda perspiciatis sed.",
"created_at": 1761916681
},
{
"id": "a03ed1f5-c2d5-4867-a662-3612e0e2faa7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Quod corrupti eveniet vero tenetur et et et molestiae. Nesciunt omnis rem ut. Facere tempora velit accusamus iure beatae occaecati inventore expedita. Repellat quia omnis qui quidem rem a qui.",
"created_at": 1761916688
},
{
"id": "a03ed1f5-c566-49e3-b708-a4d1636ff3db",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Et qui totam soluta dolor. Vitae unde eligendi itaque cum. Fuga mollitia officiis ut autem.",
"created_at": 1761916695
},
{
"id": "a03ed1f5-c761-448c-90b6-ddf95beeb2b1",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Necessitatibus cum quo culpa aut ipsam perferendis velit. Et sit sint omnis cum qui quo. Est eos velit dolores eos. Doloribus doloribus dolor saepe voluptatibus vero adipisci est.",
"created_at": 1761916702
}
]
}
}
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.
Messages
Search
requires authentication
Search within a specific conversation
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/search" \
--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/search"
);
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/search';
$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=g1UonTnBA1NQhUeyXaxcvvbmHAOKjvIjqL74pSAa; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "7ac8ab55-6731-40b8-84ba-d0b63191a8c3",
"type": "message",
"match": "This is a sample message containing the search term."
},
{
"id": "7aae5b91-3e71-4255-bb02-4eb8fecf0c80",
"type": "message",
"match": "User with name matching the search term."
}
]
}
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.
Store
requires authentication
Send a message to user or conversation
Example request:
curl --request POST \
"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 message to the private chat\",
\"attachments\": [
\"6aa921cf-590a-34f8-83b9-fa723ffa6887\"
]
}"
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 message to the private chat",
"attachments": [
"6aa921cf-590a-34f8-83b9-fa723ffa6887"
]
};
fetch(url, {
method: "POST",
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->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'content' => 'My message to the private chat',
'attachments' => [
'6aa921cf-590a-34f8-83b9-fa723ffa6887',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));Example response (401):
{
"message": "Unauthenticated."
}
Example response (422):
{
"message": "Validation Exception"
}
Example response (422):
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=2650QoDN3yOQsda3JDb8moZjSnwy81mnFqSAaMkb; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"message": "The selected attachments.0 is invalid.",
"errors": {
"attachments.0": [
"The selected attachments.0 is invalid."
]
}
}
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 message
Example request:
curl --request PATCH \
"https://api.qplet.dev/v1/conversations/nulla/a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8" \
--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/nulla/a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8"
);
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/nulla/a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8';
$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": "Message",
"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=Ajrr2e5dajKebammFWhKoOFBFxd4gHRd0chVy0zn; expires=Fri, 28 Nov 2025 16:53:39 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 message
Admin can remove any message
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/conversations/incidunt/a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8" \
--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/incidunt/a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8"
);
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/incidunt/a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8';
$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": "Message",
"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=NmwnTYtQraz5iOTTaUI4I4F9PhN8oWbVWW8HoRO7; expires=Fri, 28 Nov 2025 16:53:39 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.
Participants
List participants
requires authentication
Get a list of users participating in this conversation.
Example request:
curl --request GET \
--get "https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/participants" \
--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/participants"
);
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/participants';
$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=F1ZkHj44yUDgNH7qOVPSgqMEQ0043bU78RrT6DZa; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"analytics": {
"tracks": 17,
"albums": 4,
"subscribers": 348
}
},
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"analytics": {
"tracks": 40,
"albums": 5,
"subscribers": 356
}
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"email": "admin@qplet.ru",
"analytics": {
"tracks": 32,
"albums": 2,
"subscribers": 127
}
}
]
}
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.
Add participants
requires authentication
Add one or more existing users to the conversation.
Example request:
curl --request POST \
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/participants" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"participants\": [
\"00000000-df85-4307-a069-68612c4471e2\"
]
}"
const url = new URL(
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/participants"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"participants": [
"00000000-df85-4307-a069-68612c4471e2"
]
};
fetch(url, {
method: "POST",
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/participants';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'participants' => [
'00000000-df85-4307-a069-68612c4471e2',
],
],
]
);
$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=OEyf2uhXNW2EB5EvNyvGHbMMPhlIuViwnMKXFIFf; expires=Fri, 28 Nov 2025 16:53:39 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "00000000-53f7-4a5b-8c34-e171172c8ba8",
"name": "Fan Test Country, Author Test Country",
"unread_count": 3,
"participants": [
{
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
{
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
}
],
"messages": [
{
"id": "a03ed1f4-4a3f-418d-94d1-4fdcc3c0bfa8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Qui dolorem fuga veniam voluptatibus. Harum harum modi unde quisquam omnis. Saepe voluptatem doloremque magnam aliquam molestiae consequuntur ut possimus.",
"created_at": 1761916603
},
{
"id": "a03ed1f4-4c2a-4801-a381-0adc3791f8c8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Tenetur sit iure mollitia qui minus. Iure neque et sit. Sint est magni neque. Iste optio voluptates voluptatem id dolorum quam.",
"created_at": 1761916610
},
{
"id": "a03ed1f4-4e3b-461b-abc8-2ba4b17b9a2e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Deserunt animi quia autem fugiat. Et expedita ducimus sit doloribus. Aperiam est magni vel repudiandae sed sequi. Dolorem laborum nam doloremque deserunt consequatur.",
"created_at": 1761916617
},
{
"id": "a03ed1f4-5020-4177-bb5c-c549689c6af4",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Vel voluptas nesciunt quidem dolorum molestiae ut. Sunt iusto aperiam in distinctio. Ducimus autem recusandae officiis veniam nam ut consequatur.",
"created_at": 1761916624
},
{
"id": "a03ed1f4-5257-47aa-8532-8418628aa2ba",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Iure est ut quae sit et. Veniam neque accusantium libero quam quia labore. Aut inventore consectetur porro velit in atque enim quasi. Vero voluptatem quibusdam autem minus.",
"created_at": 1761916631
},
{
"id": "a03ed1f4-544d-4fd1-8196-599c1adc75c7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Id iusto magnam suscipit quas repudiandae ex. Magni ut non eius eveniet. Error magnam mollitia et velit repellat quasi. Id est quod ipsa ipsam est et.",
"created_at": 1761916638
},
{
"id": "a03ed1f4-569a-48c2-bbae-817960a0635f",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Eos consequatur cum numquam officia vero molestiae nihil. Omnis nihil neque iure. Sapiente incidunt quo ratione aut porro adipisci. Est molestiae autem alias laboriosam rerum.",
"created_at": 1761916645
},
{
"id": "a03ed1f4-58a6-4db3-b84d-cbfc5117dd19",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Facilis minima eligendi corporis deserunt. Impedit ut facere assumenda voluptate est quis. Et rerum blanditiis exercitationem et. Dolor sit numquam voluptatum et.",
"created_at": 1761916652
},
{
"id": "a03ed1f4-5ac3-4046-a679-85eecc1bebe6",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Illo ratione ut rerum repellendus nostrum neque. Porro exercitationem quos quia non corrupti magnam. Voluptas deserunt omnis quod ut aliquid sequi et.",
"created_at": 1761916659
},
{
"id": "a03ed1f4-5cd2-4414-8239-ce96e8ecf4e7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Harum veritatis perspiciatis doloremque ex distinctio qui magni sint. Quos sed autem officiis asperiores error velit unde.",
"created_at": 1761916666
},
{
"id": "a03ed1f4-5ebf-43a7-9536-bd197dc9a7a8",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Id vitae voluptates ut magni molestiae quo quasi. Hic aut dicta qui est earum eaque ut. Veritatis atque quidem maxime minima perferendis cumque dolorem aut.",
"created_at": 1761916673
},
{
"id": "a03ed1f4-607d-45fa-bf75-a84530f41570",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Aut enim commodi quo eveniet eligendi autem magni. Aut sit in sint eos in. Ut reprehenderit sunt deleniti earum qui quisquam eum. Libero accusamus officia vero sint impedit.",
"created_at": 1761916680
},
{
"id": "a03ed1f4-62c9-4323-8e93-fc6a0351ac7b",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Est reiciendis quia quas non quam corrupti nihil. Sit earum aut unde qui sapiente. Quo et non quam vero iusto. Libero laborum sed tempora voluptatibus assumenda porro in qui.",
"created_at": 1761916687
},
{
"id": "a03ed1f4-64d6-4bbc-80f1-3f6f6ae7dd38",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Aut deserunt odio vel repudiandae. Natus qui voluptatem est. Quis et qui id repudiandae qui non dolor. Voluptate quibusdam numquam enim illo et ipsum qui.",
"created_at": 1761916694
},
{
"id": "a03ed1f4-669e-45c7-83b5-4e5889d6d99d",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e1",
"name": "Fan Test Country",
"avatar_url": null
},
"content": "Ut alias deleniti eum ea ipsa. Autem provident minima omnis aut consequuntur reprehenderit. Recusandae error corrupti sit natus nihil dicta.",
"created_at": 1761916701
},
{
"id": "a03ed1f4-fa29-4a87-858d-85815b43f610",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Rem non in dolorum ut minima est facilis. Dolor hic consectetur magni praesentium officia porro.",
"created_at": 1761916604
},
{
"id": "a03ed1f4-fbf3-427a-ade8-48aad834b6f2",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Atque et commodi quia qui consequatur et. Laborum saepe dolor sequi explicabo velit et. Eum consequatur veritatis inventore ut.",
"created_at": 1761916611
},
{
"id": "a03ed1f4-fe10-42bc-ab18-7ea912a49743",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Dolore in et aliquam tenetur consequatur ea. Perspiciatis vel deserunt sed. Fuga ea inventore id sunt. Dicta nisi et perspiciatis numquam voluptatem dignissimos laborum velit.",
"created_at": 1761916618
},
{
"id": "a03ed1f4-ffde-4426-a300-131495fd6ef4",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Veniam dolorem facilis qui quisquam at libero et. Mollitia aliquam amet quas facilis nam quidem. Cumque et corporis quis molestias consectetur rem omnis. Delectus labore vel quia non.",
"created_at": 1761916625
},
{
"id": "a03ed1f5-0273-4b16-8ad2-87649b752c60",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Perspiciatis quia aut sed voluptas natus quibusdam accusamus. Eligendi voluptates omnis aut soluta dolor. Aperiam consequatur rerum id amet.",
"created_at": 1761916632
},
{
"id": "a03ed1f5-055c-4892-9479-317d97200d43",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Earum deserunt sunt reprehenderit quibusdam perferendis aut. Eaque tempore ut tempore qui ipsa vel. Reiciendis reprehenderit dolor praesentium perferendis. Laboriosam eveniet ipsa non omnis.",
"created_at": 1761916639
},
{
"id": "a03ed1f5-0767-41f6-959c-aa118f101d21",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Earum molestiae quo temporibus non non. Placeat perferendis atque ea molestiae laborum sint necessitatibus. Ea mollitia ipsam itaque similique rerum.",
"created_at": 1761916646
},
{
"id": "a03ed1f5-099e-4542-8b20-f9df155f7fe6",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Assumenda molestiae aut voluptatem qui quis natus. Unde totam ut vel numquam. Consectetur quibusdam aperiam repudiandae. Consequatur placeat quis eum qui.",
"created_at": 1761916653
},
{
"id": "a03ed1f5-0b9d-4629-8f8e-4630b62c1a4b",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Nihil corrupti non quam est cupiditate omnis. Voluptatem ut perspiciatis corporis qui.",
"created_at": 1761916660
},
{
"id": "a03ed1f5-0d98-46fb-9e54-01ee46462d44",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Qui quia vel ea minima explicabo commodi et. Et vero voluptatum similique aliquam. Quaerat nam aut est omnis vel.",
"created_at": 1761916667
},
{
"id": "a03ed1f5-0fa2-43b8-ae6c-2dc060e34544",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Aspernatur dolore non aut iusto impedit aut. Ea est veritatis nihil eos sit unde. Necessitatibus cumque quisquam deleniti magni sunt ut.",
"created_at": 1761916674
},
{
"id": "a03ed1f5-11f7-4ff6-8db0-8a6ad85b62b9",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Veniam ipsam consequuntur nemo harum omnis. Consequuntur exercitationem voluptatum cum sapiente. Omnis neque sint nesciunt aperiam autem possimus. Aut voluptatum totam laboriosam.",
"created_at": 1761916681
},
{
"id": "a03ed1f5-141f-45cd-a6e8-e30a2119b4b9",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Eveniet illum est quis dignissimos officia aut. Aliquam aut officiis quia similique optio. Recusandae est pariatur et ut cum.",
"created_at": 1761916688
},
{
"id": "a03ed1f5-1616-4053-9a63-9aa503e20a53",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Modi et earum provident est omnis. Cum excepturi enim aut id. Sapiente sit recusandae sed est sit fugit.",
"created_at": 1761916695
},
{
"id": "a03ed1f5-17d4-48b0-96b3-32906185e01e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e2",
"name": "Author Test Country",
"avatar_url": null
},
"content": "Animi quidem doloribus perferendis quaerat a. Hic nihil nemo voluptates qui aut in. Beatae numquam sapiente in culpa.",
"created_at": 1761916702
},
{
"id": "a03ed1f5-a81f-4df3-ae76-92e970438660",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Asperiores ut asperiores ea praesentium autem ratione cupiditate delectus. Provident provident veritatis minima incidunt. Rem laboriosam reprehenderit architecto illo. Ullam veritatis sunt enim ut.",
"created_at": 1761916604
},
{
"id": "a03ed1f5-aa7c-40fe-a7d2-efb5b7e031d0",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Non quia expedita ut eos nisi laboriosam distinctio aliquid. Similique aut eius maxime nostrum. Ad explicabo ut qui vitae dolorem.",
"created_at": 1761916611
},
{
"id": "a03ed1f5-acfc-4308-b816-63503756bd6a",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Dolor qui sit nam ut. Ratione repudiandae est odit. Placeat accusamus reiciendis sed nihil assumenda et accusantium. Qui eveniet quia modi ipsam corporis consequuntur.",
"created_at": 1761916618
},
{
"id": "a03ed1f5-af58-46a6-9023-9c4dd10cade7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "In eius fugit deserunt voluptas perspiciatis molestias. Ipsum quas rerum omnis eligendi veniam accusantium esse qui. Corporis et reprehenderit vitae amet fugit at dicta perspiciatis.",
"created_at": 1761916625
},
{
"id": "a03ed1f5-b15a-467b-a7f8-56e0ad98e999",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Quaerat veritatis dicta in dolores quia. Aut officia nesciunt dolor quo. Omnis qui dolorum dolorem omnis autem voluptatem quam.",
"created_at": 1761916632
},
{
"id": "a03ed1f5-b385-46e9-8417-dbe01d95aa8e",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Ab voluptatem rerum ut culpa architecto exercitationem aspernatur. Adipisci numquam voluptate deleniti incidunt. Et facere numquam rerum et et. Mollitia voluptas suscipit recusandae quia qui.",
"created_at": 1761916639
},
{
"id": "a03ed1f5-b625-49ee-8e41-b5a94ea617ee",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Repellat reprehenderit sed perspiciatis. Voluptas eos cumque soluta exercitationem tempora quia placeat. Rem amet dignissimos odit recusandae sapiente a eaque.",
"created_at": 1761916646
},
{
"id": "a03ed1f5-b892-4c9c-b3c0-f40c2c911a23",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Eaque quo nam vitae repellendus facilis exercitationem. Reiciendis eos dicta exercitationem excepturi. Qui veniam eligendi maxime nihil tempora qui assumenda sed. Ut velit rerum accusamus nihil.",
"created_at": 1761916653
},
{
"id": "a03ed1f5-baf9-4fb9-95c6-f426c7070787",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Et occaecati laudantium aut non soluta inventore ducimus. Consequatur molestiae sint corrupti eum fuga quaerat nihil reprehenderit. Et sit vero dolorem earum nisi et.",
"created_at": 1761916660
},
{
"id": "a03ed1f5-bcea-4e93-9c75-6654e29a81a1",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Autem nisi vero voluptate ea dolores incidunt quam. Vitae assumenda quia temporibus voluptates perferendis aliquid ipsa. Dolorum et et quis et sequi dolor rerum. Amet vero quaerat et ut.",
"created_at": 1761916667
},
{
"id": "a03ed1f5-bee3-4fdf-8fd2-78814ba7f874",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Adipisci enim fugit impedit. Ipsum dicta iste molestias et suscipit aut. Modi impedit reiciendis earum ex qui soluta recusandae ullam. Ut est voluptatibus sequi natus iure. Qui a dolore ut.",
"created_at": 1761916674
},
{
"id": "a03ed1f5-c0f0-4387-87d6-4dd67f5653af",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Modi architecto in praesentium vel. Dolore est non aliquid autem ea sed dolor. Voluptates sit tempore vel sit assumenda perspiciatis sed.",
"created_at": 1761916681
},
{
"id": "a03ed1f5-c2d5-4867-a662-3612e0e2faa7",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Quod corrupti eveniet vero tenetur et et et molestiae. Nesciunt omnis rem ut. Facere tempora velit accusamus iure beatae occaecati inventore expedita. Repellat quia omnis qui quidem rem a qui.",
"created_at": 1761916688
},
{
"id": "a03ed1f5-c566-49e3-b708-a4d1636ff3db",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Et qui totam soluta dolor. Vitae unde eligendi itaque cum. Fuga mollitia officiis ut autem.",
"created_at": 1761916695
},
{
"id": "a03ed1f5-c761-448c-90b6-ddf95beeb2b1",
"author": {
"id": "00000000-df85-4307-a069-68612c4471e3",
"name": "Admin Test Country",
"avatar_url": null
},
"content": "Necessitatibus cum quo culpa aut ipsam perferendis velit. Et sit sint omnis cum qui quo. Est eos velit dolores eos. Doloribus doloribus dolor saepe voluptatibus vero adipisci est.",
"created_at": 1761916702
}
]
}
}
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 participant
requires authentication
Remove a user from the conversation.
Example request:
curl --request DELETE \
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/participants" \
--header "Authorization: Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US" \
--data "{
\"user_id\": \"00000000-df85-4307-a069-68612c4471e2\"
}"
const url = new URL(
"https://api.qplet.dev/v1/conversations/00000000-53f7-4a5b-8c34-e171172c8ba8/participants"
);
const headers = {
"Authorization": "Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty",
"Content-Type": "application/json",
"Accept": "application/json",
"Accept-Language": "en-US",
};
let body = {
"user_id": "00000000-df85-4307-a069-68612c4471e2"
};
fetch(url, {
method: "DELETE",
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/participants';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer 3|lnvo4g0zUDVYTM6tqvVwUxP3jrt8ci8Nv8zpAbty',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Accept-Language' => 'en-US',
],
'json' => [
'user_id' => '00000000-df85-4307-a069-68612c4471e2',
],
]
);
$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.
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-12-28\",
\"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-12-28",
"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-12-28',
'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=EVDFF7QBb3hoYcJMnBUxl1j7zXivaxIZ5MnMlwQ2; expires=Fri, 28 Nov 2025 16:53:38 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": {
"id": "a077478a-d276-4ab8-a01f-552fc970f03d",
"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-12-28",
"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.dll"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.dll"
},
"media": null,
"tags": null,
"created_at": 1764341618,
"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-12-28\",
\"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-12-28",
"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-12-28',
'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=vOHHsvJPMffakifMOKP6Alk4uQlfxHRckBkmKE3L; expires=Fri, 28 Nov 2025 16:53:38 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-12-28",
"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.dll"
},
"cover": {
"id": "00000000-422e-41ff-a266-2b0a093307e6",
"url": "http://localhost:8083/v1/media-assets/00000000-422e-41ff-a266-2b0a093307e6.dll"
},
"media": null,
"tags": null,
"created_at": 1761916708,
"updated_at": 1764341618,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 4041,
"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=X2HcJhdDc2306CGd6QJJkn7qsSzOQDZdNPvhe9e6; expires=Fri, 28 Nov 2025 16:53:38 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]=&filters[date][from]=2025-12-08&filters[date][to]=2025-12-28&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]": "",
"filters[date][from]": "2025-12-08",
"filters[date][to]": "2025-12-28",
"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]' => '',
'filters[date][from]' => '2025-12-08',
'filters[date][to]' => '2025-12-28',
'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=cmrFYVpyz3qohTAa91GRbrDqriTBkzIrxSS3ZU7s; expires=Fri, 28 Nov 2025 16:53:39 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=0yLxlAvLvSne2Q93XIjDusFlj8GrLuTGEpfFgcZ5; expires=Fri, 28 Nov 2025 16:53:39 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": "Eum laboriosam voluptatibus voluptatibus inventore voluptate nobis et.",
"content": "At veniam porro dicta consectetur. Non et ipsum quia repudiandae doloremque labore. Fuga dolor et provident quae.",
"date": "2013-03-18",
"time": "04:27:27",
"type": "offline",
"location": "9974 Leann Meadows\nSouth Boydstad, GA 78113",
"seats": "60",
"free_seats": 57,
"website": "https://www.rau.org/consequuntur-fuga-sit-dolorem-quibusdam-ducimus",
"media": null,
"tags": null,
"is_subscribed": true,
"created_at": 1761916708,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 4041,
"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=66r8n8ccCNmApVq8cZfXngVNoIPU1uTQ3oH7kKWK; expires=Fri, 28 Nov 2025 16:53:39 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": "Eum laboriosam voluptatibus voluptatibus inventore voluptate nobis et.",
"content": "At veniam porro dicta consectetur. Non et ipsum quia repudiandae doloremque labore. Fuga dolor et provident quae.",
"date": "2013-03-18",
"time": "04:27:27",
"type": "offline",
"location": "9974 Leann Meadows\nSouth Boydstad, GA 78113",
"seats": "60",
"free_seats": 57,
"website": "https://www.rau.org/consequuntur-fuga-sit-dolorem-quibusdam-ducimus",
"media": null,
"tags": null,
"is_subscribed": true,
"created_at": 1761916708,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 4041,
"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=JhFmItk2E4gRZp5EPvGb1WcSJDonaaOr5kARYtLD; expires=Fri, 28 Nov 2025 16:53:38 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=ZreoSRLtLJ5yhLBXRJjldudgJsPgrWaN73wbIlcv; expires=Fri, 28 Nov 2025 16:53:38 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=tx0WzBNLPEz5LKVxltWBOoDbqwhP7Asf9atA9Ell; expires=Fri, 28 Nov 2025 16:53:38 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=Gq3JSKir0Qc8yrY88j1YvsrHUnJLOsRgdSyQsTmk; expires=Fri, 28 Nov 2025 16:53:38 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=cByr5irG0YzLAKd8xMqmRQV3WMJn6RDJryKFGBGa; expires=Fri, 28 Nov 2025 16:53:38 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=LTnz6R2mutx4wRSNnVtBvTyP1FKxJwTaCxSFWSrC; expires=Fri, 28 Nov 2025 16:53:38 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": "Eum laboriosam voluptatibus voluptatibus inventore voluptate nobis et.",
"content": "At veniam porro dicta consectetur. Non et ipsum quia repudiandae doloremque labore. Fuga dolor et provident quae.",
"date": "2013-03-18",
"time": "04:27:27",
"type": "offline",
"location": "9974 Leann Meadows\nSouth Boydstad, GA 78113",
"seats": "60",
"free_seats": 57,
"website": "https://www.rau.org/consequuntur-fuga-sit-dolorem-quibusdam-ducimus",
"media": null,
"tags": null,
"is_subscribed": true,
"created_at": 1761916708,
"analytics": {
"interested": 0,
"subscribed": 3,
"views": 4041,
"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/inventore" \
--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/inventore"
);
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/inventore';
$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=kfJICYZ35RZeyvKj4hdrXnkTwVG9ApcynqjADLOT; expires=Fri, 28 Nov 2025 16:53:39 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/expedita/in" \
--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/expedita/in"
);
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/expedita/in';
$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=6eqXzP2YsGYv4JemMI1SAqVGsy2cImhh2KYpHtcR; expires=Fri, 28 Nov 2025 16:53:39 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=kgZdw8Y4HcOiol17UKBTW3ESWORCm5z2YGkKUDRn; expires=Fri, 28 Nov 2025 16:53:43 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/expedita" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Accept-Language: en-US"const url = new URL(
"https://api.qplet.dev/v1/search/expedita"
);
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/expedita';
$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=WbSR9XTRmWDmjiw6OAqAF9AfKUb9cRJ5w6BTNvWB; expires=Fri, 28 Nov 2025 16:53:43 GMT; Max-Age=7200; path=/; httponly; samesite=lax
{
"data": [
{
"id": "a03ed1bd-eb2a-4ccf-bc7f-ee369c721948",
"title": "Minima est numquam vitae sequi natus.",
"media_asset": {
"id": "a03ed1bd-e130-4601-acca-6385cea99e67",
"url": "http://localhost:8083/v1/media-assets/a03ed1bd-e130-4601-acca-6385cea99e67.skd"
},
"owner": {
"id": "a03ed1af-1790-44c2-9aff-3e74a03dd406",
"name": "Mr. Gaetano Leffler I",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-5270-4bc8-b2f8-b3dc6d5c92f1",
"name": "Instrumental",
"tracks": 805707
},
{
"id": "a03ed1ae-5cb8-4bc8-829c-1374c942a7c2",
"name": "Reggae",
"tracks": 969797
},
{
"id": "a03ed1ae-5f53-40aa-b2c4-04faef02b4cc",
"name": "Vocal",
"tracks": 245235
}
],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 11,
"shares": 13
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1dc-379a-4c3a-b04f-f90516974f21",
"name": "Mr. Braulio Lindgren III",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1df-d513-425c-833c-33d4b7f3b78b",
"name": "Mikayla Howe",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1c2-8178-4fe6-86f5-b15b8eec3d19",
"title": "Nesciunt aut odio pariatur aut aliquid.",
"media_asset": {
"id": "a03ed1c2-41d0-42c2-85e3-8a01a4cb40f9",
"url": "http://localhost:8083/v1/media-assets/a03ed1c2-41d0-42c2-85e3-8a01a4cb40f9.cod"
},
"owner": {
"id": "a03ed1af-44d5-4388-af5d-bc870d1f4b16",
"name": "Ansel Gutmann",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-3e40-486f-be84-bc2ca4e2b5d8",
"name": "Anime",
"tracks": 839941
},
{
"id": "a03ed1ae-4fb9-4988-904b-67e48ea6428f",
"name": "Workout",
"tracks": 65801
},
{
"id": "a03ed1ae-57e4-45ab-a354-bd02e454a5a5",
"name": "Metal",
"tracks": 289291
}
],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 9,
"shares": 10
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1e5-0b33-419c-a993-ea78b5eb0fdf",
"name": "Alfonzo Carroll",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1d6-bab2-49b4-a94f-e38e838a81cb",
"title": "Impedit provident ipsam enim porro nesciunt vitae qui.",
"media_asset": {
"id": "a03ed1d6-b14a-4f70-aa1c-f941a3af0f6c",
"url": "http://localhost:8083/v1/media-assets/a03ed1d6-b14a-4f70-aa1c-f941a3af0f6c.xsl"
},
"owner": {
"id": "a03ed1af-fc82-4e2d-9bde-887c2cb157b4",
"name": "Lila Fadel",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-512b-4bd9-a72e-0a848a0afa2a",
"name": "Indie",
"tracks": 633888
},
{
"id": "a03ed1ae-588b-4bd5-a459-741efc7c5d31",
"name": "New Age",
"tracks": 358498
}
],
"analytics": {
"playbacks": 11,
"likes": 0,
"comments": 13,
"shares": 6
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1c7-362b-4141-8617-47c85ccb28dc",
"name": "Christop Howell",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1d1-cb64-44d2-b064-ff49f8e88df2",
"name": "Arvilla Hills",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1ed-160b-4643-bb8d-4f657ff29162",
"title": "Aliquid odit mollitia odio voluptatibus aut ratione.",
"media_asset": {
"id": "a03ed1ed-0abe-4b50-b51f-5c9bb9f5473d",
"url": "http://localhost:8083/v1/media-assets/a03ed1ed-0abe-4b50-b51f-5c9bb9f5473d.hal"
},
"owner": {
"id": "a03ed1b9-cbcb-4a14-a64d-52736c8954ad",
"name": "Prof. Paula Emard I",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-512b-4bd9-a72e-0a848a0afa2a",
"name": "Indie",
"tracks": 633888
}
],
"analytics": {
"playbacks": 4,
"likes": 0,
"comments": 12,
"shares": 12
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1af-e5ed-4895-ac36-0579f5b35c13",
"name": "Linwood Kunze",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1f6-8f95-4c71-95c4-e2a6a4ca9bb7",
"name": "Magnam",
"description": null,
"is_liked": 0,
"entity": "album"
},
{
"id": "a03ed1d3-dbde-4bd1-9958-723d329c5a04",
"title": "Accusamus quod cupiditate non ipsa.",
"media_asset": {
"id": "a03ed1d3-cacf-49a7-a832-561c3d0c0dd0",
"url": "http://localhost:8083/v1/media-assets/a03ed1d3-cacf-49a7-a832-561c3d0c0dd0.pptx"
},
"owner": {
"id": "a03ed1af-e241-4e2c-9133-a71975aa0027",
"name": "Dr. Bertha Gorczany I",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-5919-4022-bc9f-37b10aa1a291",
"name": "Opera",
"tracks": 753094
}
],
"analytics": {
"playbacks": 7,
"likes": 0,
"comments": 1,
"shares": 0
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1d1-e43c-43a6-bac2-e77b326dbd6b",
"name": "Myah Lang PhD",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1dd-24d7-49a2-9856-1e0d73909352",
"title": "Ut quo quibusdam est dolore quam dolorem officiis.",
"media_asset": {
"id": "a03ed1dc-fd0b-4cb4-a21f-accc585c03ba",
"url": "http://localhost:8083/v1/media-assets/a03ed1dc-fd0b-4cb4-a21f-accc585c03ba.uvs"
},
"owner": {
"id": "a03ed1b0-22a5-4621-bb3d-3dc9dbeeb9f6",
"name": "Mellie Schinner",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-5a55-4dcf-95d1-7e9023cc6797",
"name": "Post-Disco",
"tracks": 608971
}
],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 1,
"shares": 6
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1d5-f325-4e27-93e4-e58e9cd55809",
"name": "Hudson Parisian Sr.",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1ca-a0a1-425e-9566-ae47cda14047",
"title": "In suscipit exercitationem et earum temporibus ratione.",
"media_asset": {
"id": "a03ed1ca-86a2-4775-bc0e-d47a2ad541e4",
"url": "http://localhost:8083/v1/media-assets/a03ed1ca-86a2-4775-bc0e-d47a2ad541e4.aif"
},
"owner": {
"id": "a03ed1af-8659-4b06-9e34-83e751a5f216",
"name": "Lukas Kessler",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-421f-4a87-802c-b98ed3a7e25a",
"name": "Classical",
"tracks": 639582
},
{
"id": "a03ed1ae-56b3-48ca-8737-d4586f9cfcd0",
"name": "Kayokyoku",
"tracks": 958435
}
],
"analytics": {
"playbacks": 15,
"likes": 0,
"comments": 8,
"shares": 5
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1e1-d409-4f86-940e-52813d2f8b46",
"title": "Dolore officia quae beatae rem sit est.",
"media_asset": {
"id": "a03ed1e1-acf3-4f0d-95bb-e68e2a956e06",
"url": "http://localhost:8083/v1/media-assets/a03ed1e1-acf3-4f0d-95bb-e68e2a956e06.otc"
},
"owner": {
"id": "a03ed1b0-421f-4008-aa27-6d0ce74f49ee",
"name": "Donna Rodriguez",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-4666-4ab1-9f85-9706fd6b8922",
"name": "Country",
"tracks": 362657
},
{
"id": "a03ed1ae-588b-4bd5-a459-741efc7c5d31",
"name": "New Age",
"tracks": 358498
},
{
"id": "a03ed1ae-5b8d-48a7-b4bb-b5d63b39c415",
"name": "R&B",
"tracks": 953452
}
],
"analytics": {
"playbacks": 10,
"likes": 0,
"comments": 8,
"shares": 3
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1e8-9755-4be1-9006-95dc3a8578dc",
"title": "Labore et reiciendis error voluptas est sed.",
"media_asset": {
"id": "a03ed1e8-8dc8-416a-915f-a69dc84ec777",
"url": "http://localhost:8083/v1/media-assets/a03ed1e8-8dc8-416a-915f-a69dc84ec777.yang"
},
"owner": {
"id": "a03ed1b9-7b9c-405c-ba92-0b1b306670ff",
"name": "Prof. Eliseo Schaefer",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-4d04-4c82-80c0-c9ed57677dba",
"name": "Electronic",
"tracks": 369562
},
{
"id": "a03ed1ae-5b8d-48a7-b4bb-b5d63b39c415",
"name": "R&B",
"tracks": 953452
}
],
"analytics": {
"playbacks": 5,
"likes": 0,
"comments": 15,
"shares": 11
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1c6-e05e-42b7-8c93-99aa22aa89a4",
"title": "Dolor neque accusamus ducimus molestias ut dolorem inventore.",
"media_asset": {
"id": "a03ed1c6-c430-4f73-b665-871ec5396698",
"url": "http://localhost:8083/v1/media-assets/a03ed1c6-c430-4f73-b665-871ec5396698.uvh"
},
"owner": {
"id": "a03ed1af-6359-4d10-9570-d35aa6c10672",
"name": "Prof. Tyra Blanda II",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-5ae4-48aa-b285-bc84738f8abb",
"name": "Progressive",
"tracks": 137860
}
],
"analytics": {
"playbacks": 3,
"likes": 0,
"comments": 7,
"shares": 15
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1cf-bca3-48d8-aed8-bcf4c1d6a54d",
"name": "Darrick Hegmann",
"avatar_url": null,
"entity": "user"
},
{
"id": "a03ed1f6-894e-44eb-b74a-227598e2f5d6",
"name": "Suscipit",
"description": null,
"is_liked": 0,
"entity": "album"
},
{
"id": "a03ed1f6-6eb1-4d54-9832-046d7d0f5c69",
"name": "Nobis",
"description": null,
"is_liked": 0,
"entity": "album"
},
{
"id": "a03ed1c0-6e3f-4d82-bbcf-f8c5284adc25",
"title": "Maxime iure quisquam molestias nesciunt.",
"media_asset": {
"id": "a03ed1c0-53f6-485c-b894-b8ed6e63513f",
"url": "http://localhost:8083/v1/media-assets/a03ed1c0-53f6-485c-b894-b8ed6e63513f.scurl"
},
"owner": {
"id": "a03ed1af-33c6-4dbf-a778-e632b566624d",
"name": "Barry Medhurst",
"avatar_url": null
},
"genres": [
{
"id": "a03ed1ae-5590-4bd6-b984-6573c91056d1",
"name": "K-Pop",
"tracks": 966847
}
],
"analytics": {
"playbacks": 8,
"likes": 0,
"comments": 1,
"shares": 3
},
"is_liked": 0,
"entity": "track"
},
{
"id": "a03ed1ca-0ee0-4c0e-8f2b-19cf7f7ddf6c",
"name": "Mr. Pablo Nolan IV",
"avatar_url": null,
"entity": "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.
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=Bhjctvkwff4hOlV0uYuhAxsVWkf7b1T1eC9S2AJm; expires=Fri, 28 Nov 2025 16:53:37 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=qopx6cQcNnULOPqJ0IGAQO2Zxs2Q3zVW0EJm1tVN; expires=Fri, 28 Nov 2025 16:53:37 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": 22,
"albums": 2,
"subscribers": 177
}
}
}
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=wuC6miweGj8gROpZC9OvZahnYSuBKxVPiSKOU4ni; expires=Fri, 28 Nov 2025 16:53:38 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=87nvw5ID8V9m1IuV6YQ1GIuTWhfgr326tZUgPbXA; expires=Fri, 28 Nov 2025 16:53:38 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\": \"ut\"
}"
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": "ut"
};
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' => 'ut',
],
]
);
$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=Aqpi5kbk12r3WESA1swttb3Unqw7iLcN6gLRHka7; expires=Fri, 28 Nov 2025 16:53:38 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": "ut"
}
}
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=WohIasOkS6BKb6FsacxcnntuB4KTbnQhyZM39wVr; expires=Fri, 28 Nov 2025 16:53:38 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=NC4vrWKUP5EMllCrIKLomdGtkf0ug1LTJP5kZy8I; expires=Fri, 28 Nov 2025 16:53:38 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=nHXSWLGFOUww9WTyDukoYPPwgvkLvk4ecDtPpto9; expires=Fri, 28 Nov 2025 16:53:38 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=la4A0R72IfhdEY8pN6CdHNsFmNLRVJU4QtD5hD4P; expires=Fri, 28 Nov 2025 16:53:38 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.