Introduction
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_BEARER_TOKEN}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Get a bearer token from the POST /v1/auth/login endpoint.
Authentication
Token Authentication
Register
Create a new account and issue a Sanctum bearer token.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/auth/register" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Jane Doe\",
\"email\": \"[email protected]\",
\"password\": \"password123\",
\"device_name\": \"ios-app\",
\"profile\": {
\"handle\": \"jane_doe\",
\"display_name\": \"Jane Doe\",
\"bio\": \"architecto\",
\"avatar_url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
},
\"referral_code\": \"AbCdEfGhIjKlMnOpQrStUv\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/auth/register"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Jane Doe",
"email": "[email protected]",
"password": "password123",
"device_name": "ios-app",
"profile": {
"handle": "jane_doe",
"display_name": "Jane Doe",
"bio": "architecto",
"avatar_url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
},
"referral_code": "AbCdEfGhIjKlMnOpQrStUv"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Registration succeeded.):
{
"data": {
"id": "",
"type": "users",
"attributes": {
"name": "Mittie Considine",
"email": "[email protected]",
"email_verified_at": "2026-07-06T10:01:48+00:00",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
},
"meta": {
"token": "1|example-token",
"token_type": "Bearer",
"expires_at": null
}
}
Example response (422, Validation failed.):
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email has already been taken."
]
}
}
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.
Login
Authenticate a user and issue a Sanctum bearer token.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/auth/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\",
\"password\": \"password123\",
\"device_name\": \"ios-app\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/auth/login"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "[email protected]",
"password": "password123",
"device_name": "ios-app"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Login succeeded.):
{
"data": {
"id": "",
"type": "users",
"attributes": {
"name": "Viva Marquardt",
"email": "[email protected]",
"email_verified_at": "2026-07-06T10:01:48+00:00",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
},
"meta": {
"token": "1|example-token",
"token_type": "Bearer",
"expires_at": null
}
}
Example response (422, Credentials were invalid.):
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The provided credentials are incorrect."
]
}
}
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 Current User
requires authentication
Return the authenticated user for the current bearer token.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/auth/me" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/me"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Authenticated user profile.):
{
"data": {
"id": "",
"type": "users",
"attributes": {
"name": "Morgan Hirthe",
"email": "[email protected]",
"email_verified_at": "2026-07-06T10:01:48+00:00",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"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.
Logout
requires authentication
Revoke the current Sanctum token.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/auth/logout" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/logout"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (204, Token revoked.):
Empty response
Example response (401, Authentication failed.):
{
"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.
List Tokens
requires authentication
List personal access tokens for the authenticated user.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/auth/tokens" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/tokens"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Token list payload.):
{
"data": [
{
"id": "1",
"type": "personal-access-tokens",
"attributes": {
"name": "ios-app",
"abilities": [
"auth:me",
"auth:logout"
],
"last_used_at": null,
"expires_at": "2026-02-24T12:00:00+00:00",
"created_at": "2026-02-23T12:00:00+00:00",
"updated_at": "2026-02-23T12:00:00+00:00",
"is_current": true
}
}
]
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing required ability.):
{
"message": "Forbidden."
}
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.
Revoke All Tokens
requires authentication
Revoke all personal access tokens for the authenticated user.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/auth/tokens" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/tokens"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, All tokens revoked.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing required ability.):
{
"message": "Forbidden."
}
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.
Revoke Token
requires authentication
Revoke one personal access token owned by the authenticated user.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/auth/tokens/42" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/tokens/42"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Token revoked.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing required ability.):
{
"message": "Forbidden."
}
Example response (404, Token does not belong to current user or no longer exists.):
{
"message": "Token not found."
}
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.
Registration
Registration Policy
Return the current referral requirement for registration.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/auth/registration-policy" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/registration-policy"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Registration policy.):
{
"referral_required": 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.
Password Reset
Request Password Reset
Send a password reset link to the provided email if an account exists.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/auth/password/forgot" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/auth/password/forgot"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "[email protected]"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Password reset request accepted.):
{
"message": "If the account exists, a password reset link has been sent."
}
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
Reset the user password using a valid reset token.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/auth/password/reset" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"token\": \"reset-token-value\",
\"email\": \"[email protected]\",
\"password\": \"new-password123\",
\"password_confirmation\": \"new-password123\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/auth/password/reset"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"token": "reset-token-value",
"email": "[email protected]",
"password": "new-password123",
"password_confirmation": "new-password123"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Password reset succeeded.):
{
"message": "Your password has been reset."
}
Example response (422, Reset token or payload was invalid.):
{
"message": "The given data was invalid.",
"errors": {
"email": [
"This password reset token 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.
Read Reset Token Payload
Return reset token and email payload for API clients handling email reset links.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/auth/password/reset/reset-token-value?email=jane%40example.com" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/password/reset/reset-token-value"
);
const params = {
"email": "[email protected]",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Reset payload data.):
{
"token": "reset-token-value",
"email": "[email protected]"
}
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.
Email Verification
Verify Email
Verify a user email using the signed verification link parameters.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/auth/email/verify/01HZX3W3T4J8Q57XNZD5BPHJ92/8c4f4370e5db9b5be6d0f4c95495f49f998fa32a" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/email/verify/01HZX3W3T4J8Q57XNZD5BPHJ92/8c4f4370e5db9b5be6d0f4c95495f49f998fa32a"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Email was verified.):
{
"message": "Email verified successfully."
}
Example response (403, Signed URL was invalid, expired, or mismatched.):
{
"message": "Invalid verification link."
}
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.
Send Verification Email
requires authentication
Send (or resend) an email verification link to the authenticated user.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/auth/email/verification-notification" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/auth/email/verification-notification"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Verification email queued/sent.):
{
"message": "Verification link sent."
}
Example response (200, User already verified.):
{
"message": "Email is already verified."
}
Example response (401, Authentication failed.):
{
"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.
Categories
List Categories
List categories ordered for client-side hierarchy rendering.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/categories" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/categories"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Category list.):
{
"data": [
{
"id": "",
"type": "categories",
"attributes": {
"name": "Eius Et",
"slug": "eius-et",
"parent_id": null,
"path": "eius-et",
"category_level": 1,
"is_last": true
}
},
{
"id": "",
"type": "categories",
"attributes": {
"name": "Animi Quos",
"slug": "animi-quos",
"parent_id": null,
"path": "animi-quos",
"category_level": 1,
"is_last": 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.
Collections
List Collections
List collections with filtering, sorting, pagination, and optional relationship includes.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/collections?filter%5Bsearch%5D=summer&filter%5Bslug%5D=summer-picks&filter%5Bowner_profile_id%5D=01ktwg1fhzq1dpagvermfbjzad&filter%5Bshared_with_profile_id%5D=01ktwg1fhzq1dpagvermfbjzad&filter%5Bitem_id%5D=01ktwg1fhzq1dpagvermfbjzad&filter%5Bshop_id%5D=01ktwg1fhzq1dpagvermfbjzad&filter%5Bvisibility%5D=Public&filter%5Bcontents%5D=items%2Cshops&filter%5Bmin_entries%5D=1&filter%5Bmax_entries%5D=10&sort=-created_at&per_page=20&include=ownerProfile%2CsharedWithProfiles%2Citems%2Cshops" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/collections"
);
const params = {
"filter[search]": "summer",
"filter[slug]": "summer-picks",
"filter[owner_profile_id]": "01ktwg1fhzq1dpagvermfbjzad",
"filter[shared_with_profile_id]": "01ktwg1fhzq1dpagvermfbjzad",
"filter[item_id]": "01ktwg1fhzq1dpagvermfbjzad",
"filter[shop_id]": "01ktwg1fhzq1dpagvermfbjzad",
"filter[visibility]": "Public",
"filter[contents]": "items,shops",
"filter[min_entries]": "1",
"filter[max_entries]": "10",
"sort": "-created_at",
"per_page": "20",
"include": "ownerProfile,sharedWithProfiles,items,shops",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated collection list.):
{
"data": [
{
"id": "",
"type": "collections",
"attributes": {
"name": "Dolorem Mollitia Deleniti",
"slug": "dolorem-mollitia-deleniti",
"description": "Odit quia officia est dignissimos neque blanditiis odio.",
"visibility": "Only me",
"items_count": 0,
"shops_count": 0,
"preview_image_urls": [],
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
},
{
"id": "",
"type": "collections",
"attributes": {
"name": "Modi Rerum Ex",
"slug": "modi-rerum-ex",
"description": "Assumenda et tenetur ab reiciendis quia.",
"visibility": "Only me",
"items_count": 0,
"shops_count": 0,
"preview_image_urls": [],
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 Collection
Fetch a single collection by ULID.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/collections/architecto?include=ownerProfile%2Citems%2Cshops" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/collections/architecto"
);
const params = {
"include": "ownerProfile,items,shops",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Collection details.):
{
"data": {
"id": "",
"type": "collections",
"attributes": {
"name": "Quos Velit Et",
"slug": "quos-velit-et",
"description": "Sunt nihil accusantium harum mollitia.",
"visibility": "Only me",
"items_count": 0,
"shops_count": 0,
"preview_image_urls": [],
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (404, Collection could not be found.):
{
"message": "Not Found."
}
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 Collection
requires authentication
Create a collection and optionally attach items and shops to it.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/collections" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Summer Picks\",
\"slug\": \"summer-picks\",
\"description\": \"Curated summer shops and items.\",
\"visibility\": \"Only me\",
\"owner_profile_id\": \"01ktwg1fhzq1dpagvermfbjzad\",
\"shared_with_profile_ids\": [
\"01ktwg1fhzq1dpagvermfbjzad\"
],
\"item_ids\": [
\"01ktwg1fhzq1dpagvermfbjzad\"
],
\"shop_ids\": [
\"01ktwg1fhzq1dpagvermfbjzad\"
]
}"
const url = new URL(
"https://bazaarspot-api.test/v1/collections"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Summer Picks",
"slug": "summer-picks",
"description": "Curated summer shops and items.",
"visibility": "Only me",
"owner_profile_id": "01ktwg1fhzq1dpagvermfbjzad",
"shared_with_profile_ids": [
"01ktwg1fhzq1dpagvermfbjzad"
],
"item_ids": [
"01ktwg1fhzq1dpagvermfbjzad"
],
"shop_ids": [
"01ktwg1fhzq1dpagvermfbjzad"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Collection created.):
{
"data": {
"id": "",
"type": "collections",
"attributes": {
"name": "Et Et Modi",
"slug": "et-et-modi",
"description": "Nostrum omnis autem et consequatur aut.",
"visibility": "Only me",
"items_count": 0,
"shops_count": 0,
"preview_image_urls": [],
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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 Collection
requires authentication
Patch a collection by ULID and optionally replace its item and shop assignments.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/collections/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Updated Summer Picks\",
\"slug\": \"updated-summer-picks\",
\"description\": \"Updated collection description.\",
\"visibility\": \"Friends\",
\"owner_profile_id\": \"01ktwg1fhzq1dpagvermfbjzad\",
\"shared_with_profile_ids\": [
\"01ktwg1fhzq1dpagvermfbjzad\"
],
\"item_ids\": [
\"01ktwg1fhzq1dpagvermfbjzad\"
],
\"shop_ids\": [
\"01ktwg1fhzq1dpagvermfbjzad\"
]
}"
const url = new URL(
"https://bazaarspot-api.test/v1/collections/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Updated Summer Picks",
"slug": "updated-summer-picks",
"description": "Updated collection description.",
"visibility": "Friends",
"owner_profile_id": "01ktwg1fhzq1dpagvermfbjzad",
"shared_with_profile_ids": [
"01ktwg1fhzq1dpagvermfbjzad"
],
"item_ids": [
"01ktwg1fhzq1dpagvermfbjzad"
],
"shop_ids": [
"01ktwg1fhzq1dpagvermfbjzad"
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Collection updated.):
{
"data": {
"id": "",
"type": "collections",
"attributes": {
"name": "Ipsum Nostrum Omnis",
"slug": "ipsum-nostrum-omnis",
"description": "Et consequatur aut dolores enim.",
"visibility": "Only me",
"items_count": 0,
"shops_count": 0,
"preview_image_urls": [],
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Collection could not be found.):
{
"message": "Not Found."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Delete Collection
requires authentication
Delete a collection by ULID.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/collections/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/collections/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Collection deleted.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Collection could not be found.):
{
"message": "Not Found."
}
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
List Comments
requires authentication
List comments with filtering, sorting, pagination, and optional relationship includes.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/comments?filter%5Bsearch%5D=great+update&filter%5Bstatus%5D=published&filter%5Bcommentable_type%5D=post&filter%5Bcommentable_id%5D=01jabcxyz1234567890abcdefg&filter%5Bauthor_id%5D=01jabcxyz1234567890abcdefg&filter%5Bparent_comment_id%5D=01jabcxyz1234567890abcdefg&filter%5Bpublished_from%5D=2026-04-01T00%3A00%3A00Z&filter%5Bpublished_until%5D=2026-04-30T23%3A59%3A59Z&sort=-published_at&per_page=20&include=author%2Ccommentable" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/comments"
);
const params = {
"filter[search]": "great update",
"filter[status]": "published",
"filter[commentable_type]": "post",
"filter[commentable_id]": "01jabcxyz1234567890abcdefg",
"filter[author_id]": "01jabcxyz1234567890abcdefg",
"filter[parent_comment_id]": "01jabcxyz1234567890abcdefg",
"filter[published_from]": "2026-04-01T00:00:00Z",
"filter[published_until]": "2026-04-30T23:59:59Z",
"sort": "-published_at",
"per_page": "20",
"include": "author,commentable",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated comment list.):
{
"data": [
{
"id": "",
"type": "comments",
"attributes": {
"body": "Adipisci quidem nostrum qui commodi incidunt iure.",
"status": "draft",
"like_count": 0,
"reply_count": 0,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
},
{
"id": "",
"type": "comments",
"attributes": {
"body": "Id aspernatur consectetur id a consectetur assumenda.",
"status": "draft",
"like_count": 0,
"reply_count": 0,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 Comment
requires authentication
Fetch a single comment by ID.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/comments/architecto?include=author%2CparentComment" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/comments/architecto"
);
const params = {
"include": "author,parentComment",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Comment details.):
{
"data": {
"id": "",
"type": "comments",
"attributes": {
"body": "Adipisci quidem nostrum qui commodi incidunt iure.",
"status": "draft",
"like_count": 0,
"reply_count": 0,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Comment could not be found.):
{
"message": "Not Found."
}
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 Comment
requires authentication
Create a new comment for the authenticated user.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/comments" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"commentable_type\": \"post\",
\"commentable_id\": \"01jabcxyz1234567890abcdefg\",
\"parent_comment_id\": \"01jabcxyz1234567890abcdefg\",
\"body\": \"This launch looks solid.\",
\"status\": \"draft\",
\"like_count\": 0,
\"reply_count\": 0,
\"published_at\": \"2026-04-17T18:45:00Z\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/comments"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"commentable_type": "post",
"commentable_id": "01jabcxyz1234567890abcdefg",
"parent_comment_id": "01jabcxyz1234567890abcdefg",
"body": "This launch looks solid.",
"status": "draft",
"like_count": 0,
"reply_count": 0,
"published_at": "2026-04-17T18:45:00Z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Comment created.):
{
"data": {
"id": "",
"type": "comments",
"attributes": {
"body": "Adipisci quidem nostrum qui commodi incidunt iure.",
"status": "draft",
"like_count": 0,
"reply_count": 0,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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 Comment
requires authentication
Patch a comment by ID.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/comments/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"commentable_type\": \"post\",
\"commentable_id\": \"01jabcxyz1234567890abcdefg\",
\"parent_comment_id\": \"01jabcxyz1234567890abcdefg\",
\"body\": \"Edited comment text.\",
\"status\": \"published\",
\"like_count\": 2,
\"reply_count\": 1,
\"published_at\": \"2026-04-17T18:45:00Z\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/comments/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"commentable_type": "post",
"commentable_id": "01jabcxyz1234567890abcdefg",
"parent_comment_id": "01jabcxyz1234567890abcdefg",
"body": "Edited comment text.",
"status": "published",
"like_count": 2,
"reply_count": 1,
"published_at": "2026-04-17T18:45:00Z"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Comment updated.):
{
"data": {
"id": "",
"type": "comments",
"attributes": {
"body": "Adipisci quidem nostrum qui commodi incidunt iure.",
"status": "draft",
"like_count": 0,
"reply_count": 0,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Comment could not be found.):
{
"message": "Not Found."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Delete Comment
requires authentication
Delete a comment by ID.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/comments/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/comments/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Comment deleted.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Comment could not be found.):
{
"message": "Not Found."
}
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.
Endpoints
GET v1/home-feed
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/home-feed" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/home-feed"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/home-feed/sections/{id}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/home-feed/sections/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/home-feed/sections/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/discover-shops
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/discover-shops" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/discover-shops"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/discover-shops/sections/{id}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/discover-shops/sections/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/discover-shops/sections/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/discover-community-collections
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/discover-community-collections" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/discover-community-collections"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/discover-community-collections/sections/{id}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/discover-community-collections/sections/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/discover-community-collections/sections/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/categories/{category_id}/feed
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/categories/architecto/feed" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/categories/architecto/feed"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/categories/{category_id}/feed/sections/{id}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/categories/architecto/feed/sections/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/categories/architecto/feed/sections/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/admin/feed-sections
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/admin/feed-sections" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-sections"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/admin/feed-sections
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/feed-sections" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-sections"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/feed-sections/reorder
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/feed-sections/reorder" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-sections/reorder"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/feed-sections/{section_id}
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/admin/feed-sections/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-sections/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());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/admin/feed-sections/{section_id}
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/admin/feed-sections/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-sections/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/admin/curated-feed-lists
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/admin/curated-feed-lists" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/admin/curated-feed-lists
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/curated-feed-lists" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/curated-feed-lists/{list_id}
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());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/admin/curated-feed-lists/{list_id}
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/admin/curated-feed-lists/{list_id}/entries
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/admin/curated-feed-lists/{list_id}/entries
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/curated-feed-lists/{list_id}/entries/reorder
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries/reorder" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries/reorder"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/curated-feed-lists/{list_id}/entries/{entry_id}
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries/16" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curated-feed-lists/architecto/entries/16"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/admin/feed-curation-workspaces/{surface}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/admin/feed-curation-workspaces/home" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-curation-workspaces/home"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/admin/feed-curation-capabilities/{surface}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/admin/feed-curation-capabilities/home" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-curation-capabilities/home"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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.
PUT v1/admin/feed-curation-workspaces/{surface}
Example request:
curl --request PUT \
"https://bazaarspot-api.test/v1/admin/feed-curation-workspaces/home" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-curation-workspaces/home"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());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/admin/feed-curation-workspaces/{surface}/preview
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/feed-curation-workspaces/home/preview" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/feed-curation-workspaces/home/preview"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/section-performance
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/admin/section-performance" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/section-performance"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/admin/outbound-clicks
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/admin/outbound-clicks" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/outbound-clicks"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/admin/curator-token/rotate
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/curator-token/rotate" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curator-token/rotate"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/curators
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/admin/curators" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curators"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/admin/curators/{curator_id}/tokens/{tokenId}
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/admin/curators/architecto/tokens/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/admin/curators/architecto/tokens/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/internal/analytics/entities
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/internal/analytics/entities" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/analytics/entities"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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.
PUT v1/internal/analytics/current-metrics
Example request:
curl --request PUT \
"https://bazaarspot-api.test/v1/internal/analytics/current-metrics" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/analytics/current-metrics"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());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/internal/outbound-clicks/targets/{targetType}/{targetId}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/internal/outbound-clicks/targets/architecto/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/outbound-clicks/targets/architecto/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/internal/recommendations/catalog
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/internal/recommendations/catalog" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/recommendations/catalog"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/internal/ingestion/shops:onboard
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/ingestion/shops:onboard" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/ingestion/shops:onboard"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/authority/shops
GET v1/internal/authority/shop-catalog
GET v1/internal/authority/shop-catalog/{shop_id}
POST v1/internal/authority/publications
PUT v1/internal/authority/publications/{authorityPublication_id}/scores
POST v1/internal/authority/publications/{authorityPublication_id}/activate
POST v1/internal/bot/identities/resolve
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/identities/resolve" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/identities/resolve"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/link-challenges/verify
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/link-challenges/verify" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/link-challenges/verify"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/link-challenges/complete
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/link-challenges/complete" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/link-challenges/complete"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/shop-favorites
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/shop-favorites" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/shop-favorites"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/shops/{shop_id}/website-discovery-results
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/shops/architecto/website-discovery-results" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/shops/architecto/website-discovery-results"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/shops/{shop_id}/website-metadata-results
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/shops/architecto/website-metadata-results" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/shops/architecto/website-metadata-results"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/item-bookmarks
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/item-bookmarks" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/item-bookmarks"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/resources/resolve-url
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/bot/resources/resolve-url" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/resources/resolve-url"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/internal/bot/identities/{identity_id}/saved-resources
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/internal/bot/identities/architecto/saved-resources" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/bot/identities/architecto/saved-resources"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/me/channel-identities
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/channel-identities" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/channel-identities"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/me/channel-link-challenges
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/channel-link-challenges" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/channel-link-challenges"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/me/channel-identities/{identity_id}
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/me/channel-identities/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/channel-identities/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/shop-portal/auth/login
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/shop-portal/auth/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/auth/login"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/shop-portal/session
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/session" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/session"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/shop-portal/auth/logout
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/shop-portal/auth/logout" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/auth/logout"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/shop-portal/sessions
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/sessions" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/sessions"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/shop-portal/sessions/{sessionId}
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/shop-portal/sessions/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/sessions/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/shop-portal/shop
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/shop" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/shop"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/shop-portal/shop
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/shop-portal/shop" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/shop"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());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/shop-portal/items
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/items" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/items"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/shop-portal/items/{item}
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/items/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/items/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/shop-portal/items/{item}
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/shop-portal/items/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/items/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());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/shop-portal/items/{item}/overrides/{field}/reset
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/shop-portal/items/architecto/overrides/architecto/reset" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/items/architecto/overrides/architecto/reset"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/shop-portal/reviews
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/reviews" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/reviews"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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.
PUT v1/shop-portal/reviews/{review}/reply
Example request:
curl --request PUT \
"https://bazaarspot-api.test/v1/shop-portal/reviews/architecto/reply" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/reviews/architecto/reply"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());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/shop-portal/reviews/{review}/reply
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/shop-portal/reviews/architecto/reply" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/reviews/architecto/reply"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/shop-portal/team
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/team" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/team"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/shop-portal/team
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/shop-portal/team" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/team"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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/shop-portal/team/{membership}
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/shop-portal/team/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/team/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());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/shop-portal/analytics/overview
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/analytics/overview" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/analytics/overview"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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/shop-portal/analytics/items
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shop-portal/analytics/items" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shop-portal/analytics/items"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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.
PUT v1/internal/analytics/metric-buckets
Example request:
curl --request PUT \
"https://bazaarspot-api.test/v1/internal/analytics/metric-buckets" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/analytics/metric-buckets"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());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.
Internal Analytics
Resolve analytics entities
requires authentication
Resolve backend entity identifiers for the analytics service.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/internal/analytics/entities/resolve" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/analytics/entities/resolve"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());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 analytics metric snapshots
requires authentication
Upsert calculated feed metric snapshots from the analytics service.
Example request:
curl --request PUT \
"https://bazaarspot-api.test/v1/internal/analytics/metric-snapshots" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/internal/analytics/metric-snapshots"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());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.
Items
List Items
List items with filtering, sorting, pagination, and optional relationship includes.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/items?filter%5Bsearch%5D=sneaker&filter%5Bslug%5D=classic-polo-knit&filter%5Bis_active%5D=1&filter%5Bis_available%5D=1&filter%5Bshop_id%5D=01ktwg1fhzq1dpagvermfbjzad&filter%5Bcategory_id%5D=01ktwg1fhzq1dpagvermfbjzad&filter%5Bcondition%5D=new&filter%5Bprice_min%5D=100&filter%5Bprice_max%5D=500&sort=-created_at&per_page=20&include=shop%2Cbrand" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/items"
);
const params = {
"filter[search]": "sneaker",
"filter[slug]": "classic-polo-knit",
"filter[is_active]": "1",
"filter[is_available]": "1",
"filter[shop_id]": "01ktwg1fhzq1dpagvermfbjzad",
"filter[category_id]": "01ktwg1fhzq1dpagvermfbjzad",
"filter[condition]": "new",
"filter[price_min]": "100",
"filter[price_max]": "500",
"sort": "-created_at",
"per_page": "20",
"include": "shop,brand",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated item list.):
{
"data": [
{
"id": "",
"type": "items",
"attributes": {
"name": "Adipisci Molestias Fugit",
"slug": "adipisci-molestias-fugit",
"description": "Distinctio eum doloremque id aut libero aliquam veniam corporis.",
"external_url": null,
"price": 3025.43,
"original_price": null,
"currency": "EGP",
"sku": "NO-351-QI",
"condition": "new",
"stock_level": 179,
"weight": null,
"dimensions": null,
"specifications": null,
"is_available": true,
"is_active": true,
"url": null,
"featured_image_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/items/01ktwg1fhzq1dpagvermfbjzad"
}
},
{
"id": "",
"type": "items",
"attributes": {
"name": "Officiis Corporis Nesciunt",
"slug": "officiis-corporis-nesciunt",
"description": "Ratione iure impedit molestiae ut rem.",
"external_url": null,
"price": 1962.84,
"original_price": null,
"currency": "EGP",
"sku": "RC-724-VA",
"condition": "new",
"stock_level": 140,
"weight": null,
"dimensions": null,
"specifications": null,
"is_available": true,
"is_active": true,
"url": null,
"featured_image_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/items/01ktwg1fhzq1dpagvermfbjzad"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 Item
Fetch a single item by ULID.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/items/architecto?include=shop%2Cbrand" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/items/architecto"
);
const params = {
"include": "shop,brand",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Item details.):
{
"data": {
"id": "",
"type": "items",
"attributes": {
"name": "Eius Et Animi",
"slug": "eius-et-animi",
"description": "Velit et fugiat sunt nihil accusantium.",
"external_url": null,
"price": 1513.36,
"original_price": null,
"currency": "EGP",
"sku": "KH-954-WA",
"condition": "new",
"stock_level": 183,
"weight": null,
"dimensions": null,
"specifications": null,
"is_available": true,
"is_active": true,
"url": null,
"featured_image_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/items/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (404, Item could not be found.):
{
"message": "Not Found."
}
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 Item
requires authentication
Create a new item record.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/items" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"shop_id\": \"01ktwg1fhzq1dpagvermfbjzad\",
\"brand_id\": 1,
\"name\": \"White Sneakers\",
\"slug\": \"white-sneakers\",
\"description\": \"Comfortable everyday sneakers.\",
\"price\": 299.99,
\"original_price\": 399.99,
\"currency\": \"EGP\",
\"sku\": \"SNK-WHT-42\",
\"condition\": \"new\",
\"stock_level\": 50,
\"weight\": \"0.5kg\",
\"dimensions\": \"30x20x10cm\",
\"specifications\": {
\"color\": \"white\",
\"size\": \"42\"
},
\"is_available\": true,
\"is_active\": true
}"
const url = new URL(
"https://bazaarspot-api.test/v1/items"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"shop_id": "01ktwg1fhzq1dpagvermfbjzad",
"brand_id": 1,
"name": "White Sneakers",
"slug": "white-sneakers",
"description": "Comfortable everyday sneakers.",
"price": 299.99,
"original_price": 399.99,
"currency": "EGP",
"sku": "SNK-WHT-42",
"condition": "new",
"stock_level": 50,
"weight": "0.5kg",
"dimensions": "30x20x10cm",
"specifications": {
"color": "white",
"size": "42"
},
"is_available": true,
"is_active": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Item created.):
{
"data": {
"id": "",
"type": "items",
"attributes": {
"name": "Aut Adipisci Quidem",
"slug": "aut-adipisci-quidem",
"description": "Qui commodi incidunt iure odit.",
"external_url": null,
"price": 568.81,
"original_price": null,
"currency": "EGP",
"sku": "TC-744-PS",
"condition": "new",
"stock_level": 120,
"weight": null,
"dimensions": null,
"specifications": null,
"is_available": true,
"is_active": true,
"url": null,
"featured_image_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/items/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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 Item
requires authentication
Patch an item by ULID.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/items/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"White Leather Sneakers\",
\"slug\": \"white-leather-sneakers\",
\"description\": \"Updated description.\",
\"price\": 249.99,
\"original_price\": 399.99,
\"currency\": \"EGP\",
\"sku\": \"SNK-WHT-LTH-42\",
\"condition\": \"new\",
\"stock_level\": 30,
\"is_available\": true,
\"is_active\": true
}"
const url = new URL(
"https://bazaarspot-api.test/v1/items/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "White Leather Sneakers",
"slug": "white-leather-sneakers",
"description": "Updated description.",
"price": 249.99,
"original_price": 399.99,
"currency": "EGP",
"sku": "SNK-WHT-LTH-42",
"condition": "new",
"stock_level": 30,
"is_available": true,
"is_active": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Item updated.):
{
"data": {
"id": "",
"type": "items",
"attributes": {
"name": "Nostrum Qui Commodi",
"slug": "nostrum-qui-commodi",
"description": "Iure odit et et modi ipsum nostrum omnis.",
"external_url": null,
"price": 2911.47,
"original_price": null,
"currency": "EGP",
"sku": "LD-066-ZS",
"condition": "new",
"stock_level": 181,
"weight": null,
"dimensions": null,
"specifications": null,
"is_available": true,
"is_active": true,
"url": null,
"featured_image_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/items/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Item could not be found.):
{
"message": "Not Found."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Delete Item
requires authentication
Delete an item by ULID.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/items/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/items/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Item deleted.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Item could not be found.):
{
"message": "Not Found."
}
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
List Notifications
requires authentication
List the acting profile's notifications, newest first, with cursor pagination.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/notifications?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/notifications"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated notification list.):
{
"data": [
{
"id": "",
"type": "notifications",
"attributes": {
"type": "friend_request.received",
"message": "Clara Cronin V sent you a friend request.",
"target_url": "/friends/requests",
"actor_name": "Clara Cronin V",
"actor_handle": "wleuschke",
"actor_avatar_url": null,
"context": [],
"read_at": null,
"created_at": "2026-07-06T10:01:48+00:00"
}
},
{
"id": "",
"type": "notifications",
"attributes": {
"type": "friend_request.received",
"message": "Dr. Raleigh Kreiger sent you a friend request.",
"target_url": "/friends/requests",
"actor_name": "Dr. Raleigh Kreiger",
"actor_handle": "oklocko",
"actor_avatar_url": null,
"context": [],
"read_at": null,
"created_at": "2026-07-06T10:01:48+00:00"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
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.
Unread Notification Count
requires authentication
Return the number of unread notifications for the acting profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/notifications/unread-count" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/notifications/unread-count"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Unread count.):
{
"data": {
"unread_count": 3
}
}
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.
Mark Notification Read
requires authentication
Mark a single notification as read.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/me/profiles/architecto/notifications/architecto/read" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/notifications/architecto/read"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PATCH",
headers,
}).then(response => response.json());Example response (200, Notification marked read.):
{
"data": {
"id": "",
"type": "notifications",
"attributes": {
"type": "friend_request.received",
"message": "Clara Cronin V sent you a friend request.",
"target_url": "/friends/requests",
"actor_name": "Clara Cronin V",
"actor_handle": "wleuschke",
"actor_avatar_url": null,
"context": [],
"read_at": null,
"created_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (404, Notification does not belong to this profile.):
{
"message": "Not Found."
}
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.
Mark All Notifications Read
requires authentication
Mark every unread notification for the acting profile as read.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles/architecto/notifications/read-all" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/notifications/read-all"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, All notifications marked read.):
{
"data": {
"unread_count": 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.
Post Likes
Like Post
requires authentication
Like a post for the authenticated user.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/posts/architecto/like" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/posts/architecto/like"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Post liked.):
{
"data": {
"id": "",
"type": "posts",
"attributes": {
"body": "Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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.
Unlike Post
requires authentication
Remove the authenticated user like from a post.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/posts/architecto/like" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/posts/architecto/like"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200, Post unliked.):
{
"data": {
"id": "",
"type": "posts",
"attributes": {
"body": "Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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
List Posts
requires authentication
List posts with filtering, sorting, pagination, and optional relationship includes.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/posts?filter%5Bsearch%5D=launch+update&filter%5Bstatus%5D=published&filter%5Bvisibility%5D=Public&filter%5Bauthor_id%5D=01jabcxyz1234567890abcdefg&filter%5Brepost_of_post_id%5D=01jabcxyz1234567890abcdefg&filter%5Bpublished_from%5D=2026-04-01T00%3A00%3A00Z&filter%5Bpublished_until%5D=2026-04-30T23%3A59%3A59Z&sort=-published_at&per_page=20&include=author%2CrepostOfPost%2CrepostOfPost.author" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/posts"
);
const params = {
"filter[search]": "launch update",
"filter[status]": "published",
"filter[visibility]": "Public",
"filter[author_id]": "01jabcxyz1234567890abcdefg",
"filter[repost_of_post_id]": "01jabcxyz1234567890abcdefg",
"filter[published_from]": "2026-04-01T00:00:00Z",
"filter[published_until]": "2026-04-30T23:59:59Z",
"sort": "-published_at",
"per_page": "20",
"include": "author,repostOfPost,repostOfPost.author",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated post list.):
{
"data": [
{
"id": "",
"type": "posts",
"attributes": {
"body": "Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
},
{
"id": "",
"type": "posts",
"attributes": {
"body": "Veritatis excepturi doloribus delectus fugit. Repudiandae laboriosam est alias tenetur ratione. Voluptate accusamus ut et recusandae. Rerum ex repellendus assumenda et.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 Post
requires authentication
Fetch a single post by ID.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/posts/architecto?include=author%2CrepostOfPost%2CrepostOfPost.author" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/posts/architecto"
);
const params = {
"include": "author,repostOfPost,repostOfPost.author",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Post details.):
{
"data": {
"id": "",
"type": "posts",
"attributes": {
"body": "Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Post could not be found.):
{
"message": "Not Found."
}
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 Post
requires authentication
Create a new post for the authenticated user.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/posts" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"body\": \"Shipping the new posts endpoint today.\",
\"status\": \"draft\",
\"visibility\": \"Only me\",
\"repost_of_post_id\": \"01jabcxyz1234567890abcdefg\",
\"like_count\": 0,
\"reply_count\": 0,
\"repost_count\": 0,
\"published_at\": \"2026-04-17T18:45:00Z\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/posts"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"body": "Shipping the new posts endpoint today.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": "01jabcxyz1234567890abcdefg",
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"published_at": "2026-04-17T18:45:00Z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Post created.):
{
"data": {
"id": "",
"type": "posts",
"attributes": {
"body": "Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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 Post
requires authentication
Patch a post by ID.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/posts/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"body\": \"Edited launch message.\",
\"status\": \"published\",
\"visibility\": \"Friends\",
\"repost_of_post_id\": \"01jabcxyz1234567890abcdefg\",
\"like_count\": 12,
\"reply_count\": 4,
\"repost_count\": 2,
\"published_at\": \"2026-04-17T18:45:00Z\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/posts/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"body": "Edited launch message.",
"status": "published",
"visibility": "Friends",
"repost_of_post_id": "01jabcxyz1234567890abcdefg",
"like_count": 12,
"reply_count": 4,
"repost_count": 2,
"published_at": "2026-04-17T18:45:00Z"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Post updated.):
{
"data": {
"id": "",
"type": "posts",
"attributes": {
"body": "Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Post could not be found.):
{
"message": "Not Found."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Delete Post
requires authentication
Delete a post by ID.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/posts/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/posts/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Post deleted.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Post could not be found.):
{
"message": "Not Found."
}
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 Blocks
List Blocked Profiles
requires authentication
List profiles blocked by the authenticated user profile or a target profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/blocked-profiles?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/blocked-profiles"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated blocked profile list.):
{
"data": [
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "daphne59",
"display_name": "Morgan Hirthe",
"bio": "Libero aliquam veniam corporis dolorem mollitia deleniti.",
"avatar_url": "https://i.pravatar.cc/512?u=daphne59",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/daphne59"
}
},
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "modesta58",
"display_name": "Mr. Murl Cruickshank Jr.",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=modesta58",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/modesta58"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 Profile Block
requires authentication
Block a profile for the authenticated user profile.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles/architecto/blocked-profiles/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/blocked-profiles/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Profile block already exists.):
{
"message": "Profile block already exists."
}
Example response (201, Profile block created.):
{
"message": "Profile block created."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
Example response (422, The target profile is the authenticated profile.):
{
"message": "The given data was 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.
Delete Profile Block
requires authentication
Remove a profile block from the authenticated user profile.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/me/profiles/architecto/blocked-profiles/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/blocked-profiles/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200, Profile block deleted.):
{
"message": "Profile block deleted."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
Example response (422, The target profile is the authenticated profile.):
{
"message": "The given data was 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.
List Blocked Profiles
requires authentication
List profiles blocked by the authenticated user profile or a target profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/profiles/architecto/blocked-profiles?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/profiles/architecto/blocked-profiles"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated blocked profile list.):
{
"data": [
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "cynthiafahey",
"display_name": "Morgan Hirthe",
"bio": "Officia est dignissimos neque blanditiis odio veritatis excepturi.",
"avatar_url": "https://i.pravatar.cc/512?u=cynthiafahey",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/cynthiafahey"
}
},
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "smithroxanne",
"display_name": "Brennon Anderson",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=smithroxanne",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/smithroxanne"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 Friend Requests
List Incoming Profile Friend Requests
requires authentication
List pending friend requests received by the authenticated user profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/incoming?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/incoming"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated incoming friend request list.):
{
"data": [
{
"id": "",
"type": "profile-friend-requests",
"attributes": {
"requester_profile_id": "01kwve0y0dq6tzdc18cxxypme7",
"recipient_profile_id": "01kwve0y0hdxnbys5jzdyrqh42",
"created_at": null,
"updated_at": null
}
},
{
"id": "",
"type": "profile-friend-requests",
"attributes": {
"requester_profile_id": "01kwve0y0ndxrm4ggtm6f61svp",
"recipient_profile_id": "01kwve0y0s2vz1gc4r09ythx6p",
"created_at": null,
"updated_at": null
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Authenticated user profile could not be found.):
{
"message": "Not Found."
}
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 Outgoing Profile Friend Requests
requires authentication
List pending friend requests sent by the authenticated user profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/outgoing?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/outgoing"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated outgoing friend request list.):
{
"data": [
{
"id": "",
"type": "profile-friend-requests",
"attributes": {
"requester_profile_id": "01kwve0y0y57x02dbffmf895x3",
"recipient_profile_id": "01kwve0y12qhz36bzkbh0637bp",
"created_at": null,
"updated_at": null
}
},
{
"id": "",
"type": "profile-friend-requests",
"attributes": {
"requester_profile_id": "01kwve0y16m6m88jhgjexag9as",
"recipient_profile_id": "01kwve0y19w2se3se86r17caxy",
"created_at": null,
"updated_at": null
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Authenticated user profile could not be found.):
{
"message": "Not Found."
}
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 Profile Friend Request
requires authentication
Send a pending friend request to another profile. A reciprocal pending request is accepted automatically.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Friend request already exists.):
{
"message": "Profile friend request already exists."
}
Example response (200, Reciprocal request accepted automatically.):
{
"message": "Profile friend request accepted."
}
Example response (201, Friend request created.):
{
"message": "Profile friend request created."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
Example response (409, Either profile has blocked the other.):
{
"message": "Blocked profiles cannot become friends."
}
Example response (422, The target profile is the authenticated profile.):
{
"message": "The given data was 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.
Accept Profile Friend Request
requires authentication
Accept an incoming pending friend request from another profile.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto/accept" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto/accept"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Friend request accepted.):
{
"message": "Profile friend request accepted."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Incoming request could not be found.):
{
"message": "Profile friend request not found."
}
Example response (422, The target profile is the authenticated profile.):
{
"message": "The given data was 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.
Decline Profile Friend Request
requires authentication
Decline an incoming pending friend request from another profile.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto/decline" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto/decline"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Friend request declined.):
{
"message": "Profile friend request declined."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
Example response (422, The target profile is the authenticated profile.):
{
"message": "The given data was 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.
Cancel Profile Friend Request
requires authentication
Cancel an outgoing pending friend request to another profile.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friend-requests/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200, Friend request canceled.):
{
"message": "Profile friend request canceled."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
Example response (422, The target profile is the authenticated profile.):
{
"message": "The given data was 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.
Profile Friends
List Profile Friends
requires authentication
List friends for the authenticated user profile or a target profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/friends?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friends"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated profile friend list.):
{
"data": [
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "sleffler",
"display_name": "Morgan Hirthe",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=sleffler",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/sleffler"
}
},
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "micaela88",
"display_name": "Prof. Annabelle Kshlerin",
"bio": "Veniam corporis dolorem mollitia.",
"avatar_url": "https://i.pravatar.cc/512?u=micaela88",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/micaela88"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 Profile Friends Of Friends
requires authentication
List second-degree friends for the authenticated user profile or a target profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/friends-of-friends?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friends-of-friends"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated friends-of-friends list.):
{
"data": [
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "matildafeeney",
"display_name": "Morgan Hirthe",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=matildafeeney",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/matildafeeney"
}
},
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "verlie08",
"display_name": "Kirstin Nitzsche V",
"bio": "Deleniti nemo odit quia officia.",
"avatar_url": "https://i.pravatar.cc/512?u=verlie08",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/verlie08"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 Profile Friend
requires authentication
Remove a friendship from the authenticated user profile.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/me/profiles/architecto/friends/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/friends/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200, Profile friendship deleted.):
{
"message": "Profile friend deleted."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
Example response (422, The target profile is the authenticated profile.):
{
"message": "The given data was 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.
List Profile Friends
requires authentication
List friends for the authenticated user profile or a target profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/profiles/architecto/friends?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/profiles/architecto/friends"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated profile friend list.):
{
"data": [
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "qankunding",
"display_name": "Morgan Hirthe",
"bio": "Corporis dolorem mollitia deleniti nemo odit quia officia.",
"avatar_url": "https://i.pravatar.cc/512?u=qankunding",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/qankunding"
}
},
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "gthiel",
"display_name": "Mona Lemke",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=gthiel",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/gthiel"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 Profile Friends Of Friends
requires authentication
List second-degree friends for the authenticated user profile or a target profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/profiles/architecto/friends-of-friends?per_page=20" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/profiles/architecto/friends-of-friends"
);
const params = {
"per_page": "20",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated friends-of-friends list.):
{
"data": [
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "wbatz",
"display_name": "Morgan Hirthe",
"bio": "Deleniti nemo odit quia officia.",
"avatar_url": "https://i.pravatar.cc/512?u=wbatz",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/wbatz"
}
},
{
"id": "",
"type": "profiles",
"attributes": {
"handle": "walker26",
"display_name": "Alexa Hamill DDS",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=walker26",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/walker26"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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.
Profiles
Show Profile
requires authentication
Fetch a profile by handle.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/profiles/jane_doe" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/profiles/jane_doe"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Profile found.):
{
"data": {
"id": "",
"type": "profiles",
"attributes": {
"handle": "dareemelie",
"display_name": "Morgan Hirthe",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=dareemelie",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/dareemelie"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 Current User Profiles
requires authentication
List profiles owned by the authenticated user.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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 Current User Profile
requires authentication
Create the authenticated user profile.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"handle\": \"jane_doe\",
\"display_name\": \"Jane Doe\",
\"bio\": \"Curating local shops and finds.\",
\"avatar_url\": \"https:\\/\\/i.pravatar.cc\\/512?u=jane_doe\",
\"favorite_shops_visibility\": \"Public\",
\"favorite_items_visibility\": \"Only me\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"handle": "jane_doe",
"display_name": "Jane Doe",
"bio": "Curating local shops and finds.",
"avatar_url": "https:\/\/i.pravatar.cc\/512?u=jane_doe",
"favorite_shops_visibility": "Public",
"favorite_items_visibility": "Only me"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Profile created.):
{
"data": {
"id": "",
"type": "profiles",
"attributes": {
"handle": "alayna44",
"display_name": "Morgan Hirthe",
"bio": "Nostrum omnis autem et consequatur aut.",
"avatar_url": "https://i.pravatar.cc/512?u=alayna44",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/alayna44"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (409, Current user already has a profile.):
{
"message": "Profile already exists."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Show Current User Profile
requires authentication
Fetch the authenticated user profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Current user profile.):
{
"data": {
"id": "",
"type": "profiles",
"attributes": {
"handle": "pfritsch",
"display_name": "Morgan Hirthe",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=pfritsch",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/pfritsch"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 Profiles
requires authentication
Search profiles by display name or handle for the acting profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/search?search=jane" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/search"
);
const params = {
"search": "jane",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());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 Current User Profile
requires authentication
Patch the authenticated user profile.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/me/profiles/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"handle\": \"jane_doe_updated\",
\"display_name\": \"Jane Doe\",
\"bio\": \"Updated profile biography.\",
\"avatar_url\": \"https:\\/\\/i.pravatar.cc\\/512?u=jane_doe_updated\",
\"favorite_shops_visibility\": \"Followers\",
\"favorite_items_visibility\": \"Friends\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"handle": "jane_doe_updated",
"display_name": "Jane Doe",
"bio": "Updated profile biography.",
"avatar_url": "https:\/\/i.pravatar.cc\/512?u=jane_doe_updated",
"favorite_shops_visibility": "Followers",
"favorite_items_visibility": "Friends"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Profile updated.):
{
"data": {
"id": "",
"type": "profiles",
"attributes": {
"handle": "carey67",
"display_name": "Morgan Hirthe",
"bio": null,
"avatar_url": "https://i.pravatar.cc/512?u=carey67",
"favorite_shops_visibility": "Only me",
"favorite_items_visibility": "Only me",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/profiles/carey67"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Delete Current User Profile
requires authentication
Delete the authenticated user profile.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/me/profiles/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Profile deleted.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Profile could not be found.):
{
"message": "Not Found."
}
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 My Profile Posts
requires authentication
List published timeline posts for the authenticated user profile, including repost rows.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/posts?sort=-published_at&per_page=20&include=author%2CrepostOfPost%2CrepostOfPost.author" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/posts"
);
const params = {
"sort": "-published_at",
"per_page": "20",
"include": "author,repostOfPost,repostOfPost.author",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated current profile post list.):
{
"data": [
{
"id": "",
"type": "posts",
"attributes": {
"body": "Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
},
{
"id": "",
"type": "posts",
"attributes": {
"body": "Sit doloremque aut omnis quo sit. Mollitia aut rerum ipsa dolorem alias sapiente omnis harum. Itaque voluptas iste esse nesciunt optio.",
"status": "draft",
"visibility": "Only me",
"repost_of_post_id": null,
"is_repost": false,
"is_quote": false,
"like_count": 0,
"reply_count": 0,
"repost_count": 0,
"liked_by_me": false,
"published_at": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Current user profile could not be found.):
{
"message": "Not Found."
}
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.
Referrals
Validate Referral Code
Check whether a referral code can be used during registration.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/referrals/validate" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"referral_code\": \"AbCdEfGhIjKlMnOpQrStUv\"
}"
const url = new URL(
"https://bazaarspot-api.test/v1/referrals/validate"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"referral_code": "AbCdEfGhIjKlMnOpQrStUv"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Validation result.):
{
"valid": 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.
Show Profile Referral
requires authentication
Return the stable referral code and registration URL for an owned profile.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/referral" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/referral"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"code": "AbCdEfGhIjKlMnOpQrStUv",
"url": "https://frontend.bazaarspot-api.test/register?referral_code=AbCdEfGhIjKlMnOpQrStUv"
}
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.
Reviews
List Reviews
requires authentication
List shop and item reviews with filtering, sorting, pagination, and optional relationship includes.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/reviews?filter%5Bsearch%5D=fast+shipping&filter%5Bshop_id%5D=01jabcxyz1234567890abcdefg&filter%5Bitem_id%5D=01jabcxyz1234567890abcdefg&filter%5Buser_id%5D=01jabcxyz1234567890abcdefg&filter%5Brating%5D=5&sort=-created_at&per_page=20&include=item%2Cshop%2Cuser%2Creply" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/reviews"
);
const params = {
"filter[search]": "fast shipping",
"filter[shop_id]": "01jabcxyz1234567890abcdefg",
"filter[item_id]": "01jabcxyz1234567890abcdefg",
"filter[user_id]": "01jabcxyz1234567890abcdefg",
"filter[rating]": "5",
"sort": "-created_at",
"per_page": "20",
"include": "item,shop,user,reply",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated review list.):
{
"data": [
{
"id": "",
"type": "reviews",
"attributes": {
"title": null,
"body": "Nostrum qui commodi incidunt iure.",
"rating": 5,
"target_type": "shop",
"target_id": "01kwve0y54ek2kerfcyzmqqsd0",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/reviews/01ktwg1fhzq1dpagvermfbjzad"
}
},
{
"id": "",
"type": "reviews",
"attributes": {
"title": "Et recusandae modi rerum ex.",
"body": null,
"rating": 1,
"target_type": "shop",
"target_id": "01kwve0y58665m2f9ztdsvbk26",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/reviews/01ktwg1fhzq1dpagvermfbjzad"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 Review
requires authentication
Fetch a single review by ID.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/reviews/architecto?include=item%2Cshop%2Cuser" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/reviews/architecto"
);
const params = {
"include": "item,shop,user",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Review details.):
{
"data": {
"id": "",
"type": "reviews",
"attributes": {
"title": null,
"body": "Nostrum qui commodi incidunt iure.",
"rating": 5,
"target_type": "shop",
"target_id": "01kwve0y5h2srqhcr3g0qbhk9y",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/reviews/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Review could not be found.):
{
"message": "Not Found."
}
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 Review
requires authentication
Create a new review for a shop or item.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/reviews" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"item_id\": \"01jabcxyz1234567890abcdefg\",
\"title\": \"Great buying experience\",
\"body\": \"Fast shipping and accurate product photos.\",
\"rating\": 5
}"
const url = new URL(
"https://bazaarspot-api.test/v1/reviews"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"item_id": "01jabcxyz1234567890abcdefg",
"title": "Great buying experience",
"body": "Fast shipping and accurate product photos.",
"rating": 5
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Review created.):
{
"data": {
"id": "",
"type": "reviews",
"attributes": {
"title": null,
"body": "Nostrum qui commodi incidunt iure.",
"rating": 5,
"target_type": "shop",
"target_id": "01kwve0y5s6r0674jt6va8t022",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/reviews/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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 Review
requires authentication
Patch a review by ID.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/reviews/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"shop_id\": \"01jabcxyz1234567890abcdefg\",
\"title\": \"Updated buying experience\",
\"body\": \"Updated review text.\",
\"rating\": 4
}"
const url = new URL(
"https://bazaarspot-api.test/v1/reviews/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"shop_id": "01jabcxyz1234567890abcdefg",
"title": "Updated buying experience",
"body": "Updated review text.",
"rating": 4
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Review updated.):
{
"data": {
"id": "",
"type": "reviews",
"attributes": {
"title": null,
"body": "Nostrum qui commodi incidunt iure.",
"rating": 5,
"target_type": "shop",
"target_id": "01kwve0y60jx9zbr3pmkwy91y0",
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/reviews/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Review could not be found.):
{
"message": "Not Found."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Delete Review
requires authentication
Delete a review by ID.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/reviews/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/reviews/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Review deleted.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Review could not be found.):
{
"message": "Not Found."
}
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.
Shareables
List Received Shareables
requires authentication
List shareables shared with the authenticated user profile.
List Sent Shareables
requires authentication
List shareables sent by the authenticated user profile.
Show Shareable
requires authentication
Fetch one shareable if the authenticated user profile is the sender or recipient.
Create Shareable
requires authentication
Share a shop, item, or collection with a friend profile.
Delete Shareable
requires authentication
Delete one shareable if the authenticated user profile is the sender or recipient.
Shops
List Shops
List shops with filtering, sorting, pagination, and optional relationship includes.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shops?filter%5Bsearch%5D=odd&filter%5Bslug%5D=odd-egypt&filter%5Bis_active%5D=1&filter%5Bverified%5D=1&filter%5Bclassification%5D=online_store&filter%5Bcategory_id%5D=01ktwg1fhzq1dpagvermfbjzad&filter%5Bsocial_platform%5D=instagram&filter%5Bsocial_identifier_type%5D=username&filter%5Bsocial_identifier%5D=odd.eg&filter%5Bscraped_from%5D=2026-04-01&filter%5Bscraped_until%5D=2026-04-15&sort=-created_at&per_page=20&include=country%2Ccategories" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shops"
);
const params = {
"filter[search]": "odd",
"filter[slug]": "odd-egypt",
"filter[is_active]": "1",
"filter[verified]": "1",
"filter[classification]": "online_store",
"filter[category_id]": "01ktwg1fhzq1dpagvermfbjzad",
"filter[social_platform]": "instagram",
"filter[social_identifier_type]": "username",
"filter[social_identifier]": "odd.eg",
"filter[scraped_from]": "2026-04-01",
"filter[scraped_until]": "2026-04-15",
"sort": "-created_at",
"per_page": "20",
"include": "country,categories",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Paginated shop list.):
{
"data": [
{
"id": "",
"type": "shops",
"attributes": {
"name": "Bailey Ltd",
"slug": "bailey-ltd",
"description": "Et fugiat sunt nihil accusantium.",
"website_url": "https://okuneva.test",
"domain": "okuneva.test",
"phone": "+1-463-622-3498",
"email": "[email protected]",
"address": "38862 Ferne Locks Suite 058\nChristianshire, IA 97161",
"classification": "department_store",
"country_code": null,
"region": "North Demarcusmouth",
"is_active": true,
"is_verified": false,
"verified_at": null,
"inactive_reason": null,
"social_profiles": [],
"url": null,
"logo_url": null,
"banner_image_url": null,
"shop_image_url": null,
"shop_favicon_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/shops/01ktwg1fhzq1dpagvermfbjzad"
}
},
{
"id": "",
"type": "shops",
"attributes": {
"name": "Labadie, Haag and Considine",
"slug": "labadie-haag-and-considine",
"description": "Eum doloremque id aut libero aliquam veniam corporis.",
"website_url": "https://wisoky.test",
"domain": "wisoky.test",
"phone": "(907) 735-1679",
"email": "[email protected]",
"address": "4985 Jacques Lakes Apt. 004\nRoxanneview, GA 41591-5182",
"classification": "marketplace",
"country_code": null,
"region": "North Zachery",
"is_active": true,
"is_verified": false,
"verified_at": null,
"inactive_reason": null,
"social_profiles": [],
"url": null,
"logo_url": null,
"banner_image_url": null,
"shop_image_url": null,
"shop_favicon_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/shops/01ktwg1fhzq1dpagvermfbjzad"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 Shop
Fetch a single shop by ULID.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/shops/architecto?include=country%2Cfeatures" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shops/architecto"
);
const params = {
"include": "country,features",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Shop details.):
{
"data": {
"id": "",
"type": "shops",
"attributes": {
"name": "Rempel, Gulgowski and O'Kon",
"slug": "rempel-gulgowski-and-okon",
"description": "Accusantium harum mollitia modi deserunt aut ab.",
"website_url": "https://ernser.test",
"domain": "ernser.test",
"phone": "1-463-692-1881",
"email": "[email protected]",
"address": "1052 Carey Greens\nLefflerhaven, TX 58408-7043",
"classification": "marketplace",
"country_code": null,
"region": "Raynormouth",
"is_active": true,
"is_verified": false,
"verified_at": null,
"inactive_reason": null,
"social_profiles": [],
"url": null,
"logo_url": null,
"banner_image_url": null,
"shop_image_url": null,
"shop_favicon_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/shops/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (404, Shop could not be found.):
{
"message": "Not Found."
}
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 Shop
requires authentication
Create a new shop record.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/shops" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Odd Egypt\",
\"domain\": \"oddegypt.com\",
\"slug\": \"odd-egypt\",
\"website_url\": \"https:\\/\\/oddegypt.com\",
\"description\": \"Independent Egyptian online store.\",
\"phone\": \"+20 100 000 0000\",
\"email\": \"[email protected]\",
\"address\": \"Cairo, Egypt\",
\"classification\": \"online_store\",
\"country_code\": \"EG\",
\"country_id\": 1,
\"region\": \"Cairo\",
\"is_active\": true,
\"verified_at\": \"2026-04-15T12:00:00+00:00\",
\"favorite\": true,
\"social_profiles\": [
{
\"platform\": \"instagram\",
\"handle\": \"@odd.eg\"
}
]
}"
const url = new URL(
"https://bazaarspot-api.test/v1/shops"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Odd Egypt",
"domain": "oddegypt.com",
"slug": "odd-egypt",
"website_url": "https:\/\/oddegypt.com",
"description": "Independent Egyptian online store.",
"phone": "+20 100 000 0000",
"email": "[email protected]",
"address": "Cairo, Egypt",
"classification": "online_store",
"country_code": "EG",
"country_id": 1,
"region": "Cairo",
"is_active": true,
"verified_at": "2026-04-15T12:00:00+00:00",
"favorite": true,
"social_profiles": [
{
"platform": "instagram",
"handle": "@odd.eg"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201, Shop created.):
{
"data": {
"id": "",
"type": "shops",
"attributes": {
"name": "Price Ltd",
"slug": "price-ltd",
"description": "Commodi incidunt iure odit.",
"website_url": "https://cronin.test",
"domain": "cronin.test",
"phone": "203-867-3351",
"email": "[email protected]",
"address": "427 Labadie Curve Suite 170\nLake Micaela, ID 92203",
"classification": "chain_store",
"country_code": null,
"region": "West Cynthiaberg",
"is_active": true,
"is_verified": false,
"verified_at": null,
"inactive_reason": null,
"social_profiles": [],
"url": null,
"logo_url": null,
"banner_image_url": null,
"shop_image_url": null,
"shop_favicon_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/shops/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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 Shop
requires authentication
Patch a shop by ULID.
Example request:
curl --request PATCH \
"https://bazaarspot-api.test/v1/shops/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Odd Egypt Boutique\",
\"domain\": \"oddegypt.com\",
\"slug\": \"odd-egypt-boutique\",
\"website_url\": \"https:\\/\\/oddegypt.com\",
\"description\": \"Updated shop description.\",
\"phone\": \"+20 100 000 0000\",
\"email\": \"[email protected]\",
\"address\": \"Cairo, Egypt\",
\"classification\": \"boutique\",
\"country_code\": \"EG\",
\"country_id\": 1,
\"region\": \"Alexandria\",
\"is_active\": true,
\"verified_at\": \"2026-04-15T12:00:00+00:00\",
\"social_profiles\": [
{
\"platform\": \"instagram\",
\"handle\": \"@odd.eg\"
}
]
}"
const url = new URL(
"https://bazaarspot-api.test/v1/shops/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Odd Egypt Boutique",
"domain": "oddegypt.com",
"slug": "odd-egypt-boutique",
"website_url": "https:\/\/oddegypt.com",
"description": "Updated shop description.",
"phone": "+20 100 000 0000",
"email": "[email protected]",
"address": "Cairo, Egypt",
"classification": "boutique",
"country_code": "EG",
"country_id": 1,
"region": "Alexandria",
"is_active": true,
"verified_at": "2026-04-15T12:00:00+00:00",
"social_profiles": [
{
"platform": "instagram",
"handle": "@odd.eg"
}
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, Shop updated.):
{
"data": {
"id": "",
"type": "shops",
"attributes": {
"name": "Dare Group",
"slug": "dare-group",
"description": "Odit et et modi.",
"website_url": "https://leuschke.test",
"domain": "leuschke.test",
"phone": "+1-715-952-7161",
"email": "[email protected]",
"address": "723 Wisoky Passage\nMicaelatown, CA 87335-0574",
"classification": "specialty_store",
"country_code": null,
"region": "West Gisselle",
"is_active": true,
"is_verified": false,
"verified_at": null,
"inactive_reason": null,
"social_profiles": [],
"url": null,
"logo_url": null,
"banner_image_url": null,
"shop_image_url": null,
"shop_favicon_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/shops/01ktwg1fhzq1dpagvermfbjzad"
}
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Shop could not be found.):
{
"message": "Not Found."
}
Example response (422, Validation failed.):
{
"message": "The given data was 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.
Delete Shop
requires authentication
Soft delete a shop by ULID.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/shops/architecto" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/shops/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (204, Shop deleted.):
Empty response
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Shop could not be found.):
{
"message": "Not Found."
}
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 Bookmarked Items
List User Bookmarked Items
requires authentication
List bookmarked items for the authenticated user.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/bookmarked-items?per_page=20&include=shop" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/bookmarked-items"
);
const params = {
"per_page": "20",
"include": "shop",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Bookmarked item list.):
{
"data": [
{
"id": "",
"type": "items",
"attributes": {
"name": "Incidunt Iure Odit",
"slug": "incidunt-iure-odit",
"description": "Et modi ipsum nostrum omnis autem et consequatur.",
"external_url": null,
"price": 3651.56,
"original_price": null,
"currency": "EGP",
"sku": "SN-515-RW",
"condition": "new",
"stock_level": 13,
"weight": null,
"dimensions": null,
"specifications": null,
"is_available": true,
"is_active": true,
"url": null,
"featured_image_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/items/01ktwg1fhzq1dpagvermfbjzad"
}
},
{
"id": "",
"type": "items",
"attributes": {
"name": "Reiciendis Quia Perspiciatis",
"slug": "reiciendis-quia-perspiciatis",
"description": "Ducimus corrupti et dolores quia maiores assumenda.",
"external_url": null,
"price": 689.49,
"original_price": null,
"currency": "EGP",
"sku": "SG-468-TV",
"condition": "new",
"stock_level": 143,
"weight": null,
"dimensions": null,
"specifications": null,
"is_available": true,
"is_active": true,
"url": null,
"featured_image_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/items/01ktwg1fhzq1dpagvermfbjzad"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 User Bookmarked Item
requires authentication
Bookmark an item for the authenticated user.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles/architecto/bookmarked-items/01AN4Z07BY79KA1307SR9X4MV3" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/bookmarked-items/01AN4Z07BY79KA1307SR9X4MV3"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Item was already bookmarked by the user.):
{
"message": "Bookmarked item already exists."
}
Example response (201, Bookmarked item created.):
{
"message": "Bookmarked item created."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Item could not be found.):
{
"message": "Not Found."
}
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 User Bookmarked Item
requires authentication
Delete an item from the authenticated user bookmarked items.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/me/profiles/architecto/bookmarked-items/01AN4Z07BY79KA1307SR9X4MV3" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/bookmarked-items/01AN4Z07BY79KA1307SR9X4MV3"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200, Bookmarked item deleted.):
{
"message": "Bookmarked item deleted."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Item could not be found.):
{
"message": "Not Found."
}
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 Favorite Shops
List User Favorite Shops
requires authentication
List favorite shops for the authenticated user.
Example request:
curl --request GET \
--get "https://bazaarspot-api.test/v1/me/profiles/architecto/favorite-shops" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/favorite-shops"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200, Favorite shop list.):
{
"data": [
{
"id": "",
"type": "shops",
"attributes": {
"name": "Baumbach Ltd",
"slug": "baumbach-ltd",
"description": "Nostrum omnis autem et consequatur aut.",
"website_url": "https://bauch.test",
"domain": "bauch.test",
"phone": "283.476.7809",
"email": "[email protected]",
"address": "2127 Verlie Manors\nWest Gisselle, CO 53669",
"classification": "boutique",
"country_code": null,
"region": "East Nedra",
"is_active": true,
"is_verified": false,
"verified_at": null,
"inactive_reason": null,
"social_profiles": [],
"url": null,
"logo_url": null,
"banner_image_url": null,
"shop_image_url": null,
"shop_favicon_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/shops/01ktwg1fhzq1dpagvermfbjzad"
}
},
{
"id": "",
"type": "shops",
"attributes": {
"name": "Bradtke Group",
"slug": "bradtke-group",
"description": "Qui repudiandae laboriosam est alias.",
"website_url": "https://emmerich.test",
"domain": "emmerich.test",
"phone": "269-915-6037",
"email": "[email protected]",
"address": "13733 Runolfsson Mall\nMargarettaside, OH 29924",
"classification": "marketplace",
"country_code": null,
"region": "Kreigerburgh",
"is_active": true,
"is_verified": false,
"verified_at": null,
"inactive_reason": null,
"social_profiles": [],
"url": null,
"logo_url": null,
"banner_image_url": null,
"shop_image_url": null,
"shop_favicon_url": null,
"created_at": "2026-07-06T10:01:48+00:00",
"updated_at": "2026-07-06T10:01:48+00:00"
},
"links": {
"self": "http://bazaarspot-api.test/v1/shops/01ktwg1fhzq1dpagvermfbjzad"
}
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 2,
"to": 2,
"total": 2
}
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
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 User Favorite Shop
requires authentication
Favorite a shop for the authenticated user.
Example request:
curl --request POST \
"https://bazaarspot-api.test/v1/me/profiles/architecto/favorite-shops/01AN4Z07BY79KA1307SR9X4MV3" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/favorite-shops/01AN4Z07BY79KA1307SR9X4MV3"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200, Shop was already favorited by the user.):
{
"message": "Favorite shop already exists."
}
Example response (201, Favorite shop created.):
{
"message": "Favorite shop created."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Shop could not be found.):
{
"message": "Not Found."
}
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 User Favorite Shop
requires authentication
Delete a shop from the authenticated user favorite shops.
Example request:
curl --request DELETE \
"https://bazaarspot-api.test/v1/me/profiles/architecto/favorite-shops/01AN4Z07BY79KA1307SR9X4MV3" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bazaarspot-api.test/v1/me/profiles/architecto/favorite-shops/01AN4Z07BY79KA1307SR9X4MV3"
);
const headers = {
"Authorization": "Bearer {YOUR_BEARER_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200, Favorite shop deleted.):
{
"message": "Favorite shop deleted."
}
Example response (401, Authentication failed.):
{
"message": "Unauthenticated."
}
Example response (403, Token is missing the required ability.):
{
"message": "Forbidden."
}
Example response (404, Shop could not be found.):
{
"message": "Not Found."
}
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.