Gets all stock units with their stock at a specific instant
curl --request GET \
--url https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "<string>",
"skuId": "<string>",
"sku": {
"id": "<string>",
"code": "<string>",
"externalReference": "<string>",
"name": "<string>",
"managesLots": true,
"stock": 123,
"baseUnitOfMeasure": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123
},
"preferredUnits": {
"production": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
},
"warehouse": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
}
}
},
"locationId": "<string>",
"location": {
"id": "<string>",
"externalReference": "<string>",
"name": "<string>",
"kind": "Storage",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"lotId": "<string>",
"lot": {
"type": "Merged",
"firstLotId": "<string>",
"firstQuantity": 123,
"secondLotId": "<string>",
"secondQuantity": 123,
"id": "<string>",
"skuId": "<string>",
"sku": {
"id": "<string>",
"code": "<string>",
"externalReference": "<string>",
"name": "<string>",
"managesLots": true,
"stock": 123,
"baseUnitOfMeasure": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123
},
"preferredUnits": {
"production": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
},
"warehouse": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
}
}
},
"code": "<string>",
"status": "Active",
"stock": 123,
"costPerUnit": {
"amount": 123,
"currency": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"amount": 123
}
],
"totalCount": 123
}{
"type": "https://api.bold-factory.com/errors/COMMON.QUERY.FILTER_PARSING_FAILED",
"title": "Filter parsing failed",
"status": 400,
"detail": "The filter string could not be parsed or contains invalid column references: CreatedBy column does not exist.",
"instance": "POST /v1/items/families/search",
"code": "COMMON.QUERY.FILTER_PARSING_FAILED"
}{
"type": "https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You are not authenticated.",
"instance": "GET /v1/items/skus"
}{
"type": "https://api.bold-factory.com/errors/COMMON.AUTH.MISSING_PERMISSIONS",
"title": "Missing permissions",
"status": 403,
"detail": "Missing permissions: Items.Families.Read",
"instance": "GET /v1/maintenance/assets",
"code": "COMMON.AUTH.MISSING_PERMISSIONS"
}{
"type": "https://api.bold-factory.com/errors/COMMON.RATE_LIMIT.EXCEEDED",
"title": "Rate limit exceeded",
"status": 429,
"detail": "The request rate limit for this tenant has been exceeded. Retry after the indicated delay.",
"instance": "GET /v1/admin/tenants/self",
"code": "COMMON.RATE_LIMIT.EXCEEDED",
"parameters": {}
}Stock units
Gets all stock units with their stock at a specific instant
Uses the last stock change at or before at, including lot reallocations and merges. Units created after that instant are excluded; negative balances are always included, and zero balances unless excludeZeroBalances is true. Amount is historical, while expanded SKUs, locations, and lots show their current data. Optional filters use SKU and location IDs. Requires Warehouse.Skus.Read permissions
GET
/
v1
/
warehouse
/
stockUnits
/
snapshot
Gets all stock units with their stock at a specific instant
curl --request GET \
--url https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bold-factory.com/v1/warehouse/stockUnits/snapshot")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "<string>",
"skuId": "<string>",
"sku": {
"id": "<string>",
"code": "<string>",
"externalReference": "<string>",
"name": "<string>",
"managesLots": true,
"stock": 123,
"baseUnitOfMeasure": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123
},
"preferredUnits": {
"production": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
},
"warehouse": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
}
}
},
"locationId": "<string>",
"location": {
"id": "<string>",
"externalReference": "<string>",
"name": "<string>",
"kind": "Storage",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"lotId": "<string>",
"lot": {
"type": "Merged",
"firstLotId": "<string>",
"firstQuantity": 123,
"secondLotId": "<string>",
"secondQuantity": 123,
"id": "<string>",
"skuId": "<string>",
"sku": {
"id": "<string>",
"code": "<string>",
"externalReference": "<string>",
"name": "<string>",
"managesLots": true,
"stock": 123,
"baseUnitOfMeasure": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123
},
"preferredUnits": {
"production": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
},
"warehouse": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"displayDecimalPlaces": 123,
"alternativeQuantity": 123,
"baseQuantity": 123
}
}
},
"code": "<string>",
"status": "Active",
"stock": 123,
"costPerUnit": {
"amount": 123,
"currency": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedAt": "2023-11-07T05:31:56Z",
"lastModifiedBy": "<string>"
},
"amount": 123
}
],
"totalCount": 123
}{
"type": "https://api.bold-factory.com/errors/COMMON.QUERY.FILTER_PARSING_FAILED",
"title": "Filter parsing failed",
"status": 400,
"detail": "The filter string could not be parsed or contains invalid column references: CreatedBy column does not exist.",
"instance": "POST /v1/items/families/search",
"code": "COMMON.QUERY.FILTER_PARSING_FAILED"
}{
"type": "https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You are not authenticated.",
"instance": "GET /v1/items/skus"
}{
"type": "https://api.bold-factory.com/errors/COMMON.AUTH.MISSING_PERMISSIONS",
"title": "Missing permissions",
"status": 403,
"detail": "Missing permissions: Items.Families.Read",
"instance": "GET /v1/maintenance/assets",
"code": "COMMON.AUTH.MISSING_PERMISSIONS"
}{
"type": "https://api.bold-factory.com/errors/COMMON.RATE_LIMIT.EXCEEDED",
"title": "Rate limit exceeded",
"status": 429,
"detail": "The request rate limit for this tenant has been exceeded. Retry after the indicated delay.",
"instance": "GET /v1/admin/tenants/self",
"code": "COMMON.RATE_LIMIT.EXCEEDED",
"parameters": {}
}Authorizations
JWTApiKey
Use a valid JWT token in the Authorization header with the format 'Bearer {token}'
Query Parameters
Available options:
Sku, Location, Lot