Documentation Index
Fetch the complete documentation index at: https://developers.firmly.ai/llms.txt
Use this file to discover all available pages before exploring further.
Retrieves a paginated list of all products from a merchant’s store. This endpoint returns product summaries with links to retrieve full details for each product.
Path Parameters
The domain of the merchant website (e.g., staging.luma.gift)
Query Parameters
Page number for pagination
Number of products per page. Valid values: 100, 500, 1000, 2000
Country code for regional product availability
Response
Returns an array of product summaries, each containing:
Full URL to retrieve detailed product information
Product handle/identifier
Expected Errors
AllProductsNotImplemented
The merchant’s platform doesn’t support product catalog browsing
The size parameter contains an invalid value. Valid values are: 100, 500, 1000, 2000
curl --request GET \
--url 'https://api.firmly.work/api/v1/domains-products/staging.luma.gift?page=1&size=100' \
--header 'x-firmly-authorization: YOUR_AUTH_TOKEN'
[
{
"loc": "https://api.firmly.work/api/v1/domains-products/staging.luma.gift/radiant-tee",
"handle": "radiant-tee",
"title": "Radiant Tee",
"image": {
"url": "https://cdn.staging.luma.gift/products/radiant-tee-main.jpg"
}
},
{
"loc": "https://api.firmly.work/api/v1/domains-products/staging.luma.gift/hero-hoodie",
"handle": "hero-hoodie",
"title": "Hero Hoodie",
"image": {
"url": "https://cdn.staging.luma.gift/products/hero-hoodie-main.jpg"
}
},
{
"loc": "https://api.firmly.work/api/v1/domains-products/staging.luma.gift/breathe-easy-tank",
"handle": "breathe-easy-tank",
"title": "Breathe-Easy Tank",
"image": {
"url": "https://cdn.staging.luma.gift/products/breathe-easy-tank-main.jpg"
}
}
]
Usage Notes
The loc field contains the full URL to retrieve detailed product information. You can either:
- Extract the handle from the URL and use the Get a Product endpoint
- Make a direct GET request to the
loc URL with your authentication header
This endpoint may return a large amount of data. Use pagination parameters to control response size and improve performance.
Example: Product Browsing Implementation
// Fetch first page of products
const response = await fetch(
'https://api.firmly.work/api/v1/domains-products/staging.luma.gift?page=1&size=100',
{
headers: {
'x-firmly-authorization': authToken
}
}
);
const products = await response.json();
// Display product grid
products.forEach(product => {
// Extract handle from loc URL or use the handle field
const handle = product.handle;
// Create product card with:
// - product.title
// - product.image.url
// - Link to product details using handle
});
// When user clicks a product, fetch full details
const productDetails = await fetch(
`https://api.firmly.work/api/v1/domains-products/staging.luma.gift/${selectedHandle}`,
{
headers: {
'x-firmly-authorization': authToken
}
}
);