Products API
The Products API allows you to retrieve information about available products with customer-specific pricing.
Get All Products
Retrieves a list of all available products with your customer-specific discounts applied.
Response
[
{
"_id": "507f1f77bcf86cd799439011",
"name": "microsoft-office-2021-home-business",
"displayName": "Microsoft Office 2021 Home & Business",
"price": 149.99,
"productImageUrl": "https://example.com/office-2021.jpg",
"manufacturer": {
"name": "Microsoft"
},
"categoryName": "ESD",
"isMultidevice": false,
"isSubscription": false,
"isTerm": false,
"isMobileOnly": false,
"oldPrice": 249.99,
"duration": "Lifetime",
"seats": 1,
"description": {
"DE": "Microsoft Office 2021 für PC und Mac",
"EN": "Microsoft Office 2021 for PC and Mac"
},
"availableStock": 100,
"validRegion": "DACH",
"validRegionInfo": "Valid for Germany, Austria and Switzerland"
}
]curl -X GET https://api.attivita.de/api/products \
-H "Authorization: Bearer YOUR_API_ACCESS_TOKEN"Response Fields
| Field | Type | Description |
|---|---|---|
_id | string | Unique product identifier |
name | string | Internal product name |
displayName | string | Customer-facing product name |
price | number | Price after customer discounts |
productImageUrl | string | Product image URL |
manufacturer | object | Manufacturer information |
categoryName | string | Product category |
isMultidevice | boolean | Multi-device license |
isSubscription | boolean | Subscription product |
isTerm | boolean | Term-based license |
isMobileOnly | boolean | Mobile-only product |
oldPrice | number | Original price (optional) |
duration | string | License duration |
seats | number | Number of seats/devices |
description | object | Multilingual descriptions |
availableStock | number | Current stock (max 100) |
validRegion | string | Region validity (DACH/EU/GLOBAL/null) |
validRegionInfo | string | Region description (optional) |
Get Product by ID
Retrieves details of a specific product by its ID.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The product ID |
Response
The response format is identical to a single product object from the "Get All Products" endpoint.
Example
curl -X GET https://api.attivita.de/api/products/507f1f77bcf86cd799439011 \
-H "Authorization: Bearer YOUR_API_ACCESS_TOKEN"const productId = '507f1f77bcf86cd799439011';
const response = await fetch(`https://api.attivita.de/api/products/${productId}`, {
headers: {
'Authorization': 'Bearer YOUR_API_ACCESS_TOKEN'
}
});
const product = await response.json();Error Responses
| Status | Error | Description |
|---|---|---|
| 404 | Product not found | The specified product ID doesn't exist |
| 401 | Unauthorized | Invalid or missing API token |
Important Notes
Customer Pricing
All prices shown in the API responses include your customer-specific discounts. The price field shows the final price you'll pay.
Stock Levels
The availableStock field shows a maximum of 100 even if actual stock is higher. This is to protect sensitive inventory information while still indicating availability.
Product Availability
Only products with isListed: true are returned by these endpoints. Unlisted products cannot be accessed or ordered.
Next Steps
- Learn how to Create Orders with these products
- Set up Webhooks to monitor stock changes
- Explore Sandbox Mode for testing