List all catalog products
Returns a list of all catalog products in the workspace. Catalog products are products that are not yet assigned to any project or task. These are the base products available in the product catalog that can be added to projects or tasks later. This endpoint is optimized for common list data retrieval and provides essential product information including name, category, logo, and pricing. Products can have three types of pricing: fixed (one-time payment), subscription (recurring payment), or per-unit pricing. All three pricing fields are optional and can be null if not applicable to the product. The response is sorted alphabetically by product name. This endpoint requires the Projects.manageProducts permission to access.
GET
/workspace/product-listAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:reador
AuthorizationBearer token (JWT) · headerrequiredResponses
200Catalog products retrieved successfully
Array of
ProductListItemDtocategoryIdstringrequiredIdentifier of the product category this product belongs to. Categories help organize products in the catalog and can be used for filtering or grouping.
idstringrequiredUnique identifier for the product. Use this ID to reference the product in other API endpoints or when adding the product to projects or tasks.
logoIdobject | nullrequiredFile ID of the product logo image. Use this ID with the file API to retrieve the logo image URL. Null if no logo has been uploaded for this product.
namestringrequiredDisplay name of the product. This is the name shown in product lists, dropdowns, and when the product is added to projects or tasks.
priceFixedobject | nullrequiredFixed one-time price for the product, typically in the smallest currency unit (e.g., cents for USD). Null if this product does not have a fixed price. Products can have multiple pricing types (fixed, subscription, per-unit) or just one.
pricePerUnitobject | nullrequiredPer-unit price for the product, typically in the smallest currency unit (e.g., cents for USD). Null if this product does not have per-unit pricing. Used when the product price depends on quantity.
priceSubscriptionobject | nullrequiredRecurring subscription price for the product, typically in the smallest currency unit per billing period (e.g., cents for USD). Null if this product does not have subscription pricing. Used for products that are billed on a recurring basis.
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X GET "https://leadtime.app/api/public/workspace/product-list" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/workspace/product-list", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/workspace/product-list",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
[
{
"categoryId": "550e8400-e29b-41d4-a716-446655440001",
"id": "550e8400-e29b-41d4-a716-446655440000",
"logoId": "550e8400-e29b-41d4-a716-446655440002",
"name": "Premium Software License",
"priceFixed": 5000,
"pricePerUnit": 150,
"priceSubscription": 25
}
]Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions