Products
The products in your catalog from your active suppliers, with the final selling price (after price rules or a manual price) and the supplier's stock.
| Endpoint | Ability |
|---|---|
GET /products |
products:read |
GET /products/{id} |
products:read |
PATCH /products/{id} |
products:write (+ prices:write for manual_price) |
List products
curl -s "https://app.syncore.gr/api/v1/products?search=ABC&stock_status=in_stock&per_page=50" \
-H "Authorization: Bearer $SYNCORE_TOKEN"
Filters (all optional):
| Parameter | Type | Description |
|---|---|---|
search |
string | Part of the SKU or name |
sku |
string | Exact SKUs, comma separated: ABC-1001,ABC-1002 |
supplier_id |
integer | Only this supplier's products |
enabled |
0 / 1 |
Enabled or disabled in your feeds |
stock_status |
in_stock, low_stock, out_of_stock |
Stock status |
page, per_page |
integer | Pagination (up to 100) |
One product
curl -s "https://app.syncore.gr/api/v1/products/1201" -H "Authorization: Bearer $SYNCORE_TOKEN"
{
"data": {
"id": 1201,
"sku": "ABC-1001",
"ean": "5200000000001",
"name": "Sample product",
"brand": "Brand",
"supplier": { "id": 7, "name": "Supplier A" },
"base_price": 12.4,
"final_price": 19.9,
"manual_price": false,
"enabled": true,
"supplier_stock": 35,
"variant_count": 0,
"updated_at": "2026-10-29T10:00:00+02:00"
}
}
| Field | Description |
|---|---|
base_price |
Cost price from the supplier |
final_price |
Selling price sent to your channels |
manual_price |
true when the price is manual and ignores the rules |
enabled |
Whether the product goes into your feeds / channels |
supplier_stock |
The supplier's stock (your own stock: Inventory) |
Enable and set a manual price
curl -s -X PATCH "https://app.syncore.gr/api/v1/products/1201" \
-H "Authorization: Bearer $SYNCORE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"enabled": true, "manual_price": 21.5}'
enabled:true/false. Enabling beyond the plan limit answers422witherrors.enabled = ["plan_limit"].manual_price: a number for a fixed price, ornullto go back to the price rules. Also needsprices:write.
The response is the updated product. Every change sends a product.updated webhook — see Webhooks.