industry-department-solutions
latest
false
- Overview
- API Resources

Supply Chain & Retail Solutions API guide
Last updated Apr 16, 2026
Sales
Overview
The Sales resource represents daily sales actuals for a product at a specific location. Each record captures the number of units sold and the total monetary value of those sales on a given day, providing the historical demand signal used by the inventory optimisation engine for forecasting and replenishment planning.
Resource Endpoint
/api/v2/ingest/object/INV_SALES_OOTB
/api/v2/ingest/object/INV_SALES_OOTB
Supported Methods
| Method | Return Type | Description |
|---|---|---|
| POST | Response | Ingest (create/update) Sales records via UPSERT operation |
Request Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Your Personal Access Token (PAT) from platform.peak.ai |
Content-Type | Yes | Must be application/json |
Properties
Primary Keys
- product_id (string) - Unique identifier for the product. Part of the composite primary key.
- location_id (string) - Unique identifier for the location. Part of the composite primary key.
- day_date (date) - The calendar date for which sales are recorded. Part of the composite primary key.
Attributes
| Attribute | Data Type | Required | Description |
|---|---|---|---|
product_id | string | Yes | Unique identifier for the product sold |
location_id | string | Yes | Unique identifier for the location at which sales occurred |
day_date | date | Yes | The date of the sales record, in YYYY-MM-DD format |
sales_units | integer | Yes | Number of units sold on the given date |
sales_value | float | Yes | Total monetary value of units sold on the given date |
Relationships
Outbound References
The sales resource does not reference any downstream resources as foreign keys.
Inbound References
The following resources are referenced by sales:
- products —
product_id→products.product_id - locations —
location_id→locations.location_id
JSON Representation
{
"solutionName": "INV_OOTB",
"data": [
{
"product_id": "PROD-001",
"location_id": "LOC-001",
"day_date": "2025-01-15",
"sales_units": 42,
"sales_value": 1049.58
}
],
"operationType": "UPSERT"
}
{
"solutionName": "INV_OOTB",
"data": [
{
"product_id": "PROD-001",
"location_id": "LOC-001",
"day_date": "2025-01-15",
"sales_units": 42,
"sales_value": 1049.58
}
],
"operationType": "UPSERT"
}
Example Request
curl -X POST \
'https://service.peak.ai/ingestion-api/api/v2/ingest/object/INV_SALES_OOTB' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"solutionName": "INV_OOTB",
"data": [
{
"product_id": "PROD-001",
"location_id": "LOC-001",
"day_date": "2025-01-15",
"sales_units": 42,
"sales_value": 1049.58
}
],
"operationType": "UPSERT"
}'
curl -X POST \
'https://service.peak.ai/ingestion-api/api/v2/ingest/object/INV_SALES_OOTB' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"solutionName": "INV_OOTB",
"data": [
{
"product_id": "PROD-001",
"location_id": "LOC-001",
"day_date": "2025-01-15",
"sales_units": 42,
"sales_value": 1049.58
}
],
"operationType": "UPSERT"
}'
Important Notes
product_id,location_id, andday_datetogether form the composite primary key. All three fields must be provided on every record.day_datemust be inYYYY-MM-DDformat.sales_unitsmust be a non-negative integer. A value of0is valid and indicates no sales occurred on that date.sales_valuemust be a non-negative float representing the total revenue value for the day.product_idmust correspond to an existing record in the Products resource.location_idmust correspond to an existing record in the Locations resource.- Records are ingested via UPSERT: an existing record with matching primary keys will be updated; otherwise a new record is inserted.