Product statuses
2 endpoints. Each needs an API key or OAuth token with the scope shown; the key already names its store, so paths start at /v1/store. Generated from the live contract; also in openapi.json.
Every product with its game and live status badge (the status board)
GET
/v1/store/product-statusesOr name the store: GET /v1/stores/{storeId}/product-statuses
Response ListProductStatusesResponse
itemsProductStatusRow[]required
Example
curl "https://api.shopfa.st/v1/store/product-statuses" \
-H "Authorization: Bearer $SHOPFAST_API_KEY"const res = await fetch('https://api.shopfa.st/v1/store/product-statuses', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.SHOPFAST_API_KEY}`,
},
});
if (!res.ok) throw new Error((await res.json()).detail);
const data = await res.json();import os, requests
res = requests.request(
"GET",
"https://api.shopfa.st/v1/store/product-statuses",
headers={"Authorization": f"Bearer {os.environ['SHOPFAST_API_KEY']}"},
)
res.raise_for_status()
data = res.json()req, _ := http.NewRequest("GET", "https://api.shopfa.st/v1/store/product-statuses", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("SHOPFAST_API_KEY"))
res, err := http.DefaultClient.Do(req)Try it with your key
Change live status badges (Working, Updating, Not working) of several products at once
PATCH
/v1/store/product-statusesOr name the store: PATCH /v1/stores/{storeId}/product-statuses
Body
itemsobject[]requiredproductIdprd_…requiredstatus"undetected" | "updated" | "testing" | "updating" | "detected" | "down" | nullrequiredstatusNotestringrequired
Response UpdateProductStatusesResponse
itemsProductStatusRow[]requiredchangedintegerrequired
Example
curl -X PATCH "https://api.shopfa.st/v1/store/product-statuses" \
-H "Authorization: Bearer $SHOPFAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"productId": "prd_0123456789abcdefghjk",
"status": "undetected",
"statusNote": "string"
}
]
}'const res = await fetch('https://api.shopfa.st/v1/store/product-statuses', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${process.env.SHOPFAST_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"items": [
{
"productId": "prd_0123456789abcdefghjk",
"status": "undetected",
"statusNote": "string"
}
]
}),
});
if (!res.ok) throw new Error((await res.json()).detail);
const data = await res.json();import os, requests
res = requests.request(
"PATCH",
"https://api.shopfa.st/v1/store/product-statuses",
headers={"Authorization": f"Bearer {os.environ['SHOPFAST_API_KEY']}"},
json={
"items": [
{
"productId": "prd_0123456789abcdefghjk",
"status": "undetected",
"statusNote": "string"
}
]
},
)
res.raise_for_status()
data = res.json()req, _ := http.NewRequest("PATCH", "https://api.shopfa.st/v1/store/product-statuses", strings.NewReader(`{
"items": [
{
"productId": "prd_0123456789abcdefghjk",
"status": "undetected",
"statusNote": "string"
}
]
}`))
req.Header.Set("Authorization", "Bearer "+os.Getenv("SHOPFAST_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)