> ## Documentation Index
> Fetch the complete documentation index at: https://api.basedock.us/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Product Prices and Stock Levels via Base.com API

> Sync prices and inventory levels to Base.com in bulk using updateInventoryProductsStock and updateInventoryProductsPrices. Up to 1000 products per call.

For routine price and stock syncing, you don't need to fetch or push full product data on every cycle. Base provides lightweight read methods that return only what you need, and efficient bulk write methods that handle up to 1 000 products per call. Using them correctly keeps you well within the API rate limits.

## Reading product data

Choose the narrowest method for what you actually need — fetching full product detail when you only need stock levels wastes both time and request quota.

| I need                                       | Method                                                                                                 |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Basic product list                           | [`getInventoryProductsList`](https://api.baselinker.com/index.php?method=getInventoryProductsList)     |
| Full detail (descriptions, images, variants) | [`getInventoryProductsData`](https://api.baselinker.com/index.php?method=getInventoryProductsData)     |
| Prices only                                  | [`getInventoryProductsPrices`](https://api.baselinker.com/index.php?method=getInventoryProductsPrices) |
| Stock and reservations only                  | [`getInventoryProductsStock`](https://api.baselinker.com/index.php?method=getInventoryProductsStock)   |

## Bulk updates

Always use the bulk write methods — not one call per product:

* [`updateInventoryProductsStock`](https://api.baselinker.com/index.php?method=updateInventoryProductsStock) — up to **1 000 products/variants** per call.
* [`updateInventoryProductsPrices`](https://api.baselinker.com/index.php?method=updateInventoryProductsPrices) — up to **1 000 products** per call.

Price and stock updates typically run 4–5 times per hour.

<Tip>
  For high-frequency stock sync, only include products whose values have actually changed since your last cycle. This preserves headroom under the **100 requests/minute** limit and reduces unnecessary writes.
</Tip>

## Stock reservations

When an order is confirmed against a native Base inventory (as opposed to a read-only feed), Base automatically reduces and reserves the available quantity — even before your ERP has processed the order. This significantly reduces the risk of overselling when your sync cycle is slower than order arrival rate.

Current availability and per-product reservation figures are both returned by [`getInventoryProductsStock`](https://api.baselinker.com/index.php?method=getInventoryProductsStock), so you can display accurate "X reserved, Y available" figures without any additional calls. The full order confirmation flow is covered in [Order basics](/orders/overview).

## Product variants

Variants (size, color, and similar attributes) are not a separate entity with their own endpoints. They appear inside the [`getInventoryProductsData`](https://api.baselinker.com/index.php?method=getInventoryProductsData) response for their parent product, and you write or update them using the same bulk methods as regular products — just set `variant_id` on each entry. There are no separate variant-specific stock or price methods.

## Multiple price groups via CSV feed

If you need to sync several price groups from feeds simultaneously, a dedicated **CSV feed** is more efficient than maintaining a separate XML file per group:

* **First column:** a clear product identifier — Base ID, SKU, or EAN.
* **Following columns:** individual prices for each price group.

Base imports such a feed cyclically (typically once per day, up to three times per day for enterprise accounts). This approach is especially useful when you have regional pricing or partner-tier prices that change independently of your main retail price.

<Note>
  Connecting an external warehouse as a stock source or target is a different scenario covered by the Partnership & Shops API — it is not handled by the methods on this page.
</Note>
