Skip to content
Syncore

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 answers 422 with errors.enabled = ["plan_limit"].
  • manual_price: a number for a fixed price, or null to go back to the price rules. Also needs prices:write.

The response is the updated product. Every change sends a product.updated webhook — see Webhooks.