List market bids
Explore the live bid book on Cru World Wine. Find wines buyers are looking for, the price you would receive, and the conditions for fulfilling each bid.
Bid prices are net of Cru’s commission. Read the requirements on each bid to understand which stock can fulfil it.
How this call works
4 STEPSYour server
Ask for one page of the book
GET /market/bidsFilter with lwin, min_price and max_price to keep the page small. depth=best gives the top bid per wine; depth=all gives every resting level.
Cru
Cru returns wines, each with its bids
Ordered by best bid on Cru’s internal GBP valuation, descending. Prices are in the market’s currency and net of commission — what a seller receives.
KEEP
data.markets[].bids[].codeYour server
Page until has_more is false
page_info counts wines, not bid levels. Advance offset by limit; do not assume the page you read is still current when you reach the end.
KEEP
page_info.has_moreYour server
Re-read any bid before acting on it
GET /market/bids/{code}The book moves between calls. Take the code and retrieve that one bid to confirm its price and requirements as they are now.
Query parameters
ALL OPTIONAL| PARAMETER | DESCRIPTION |
|---|---|
| limitinteger · 1–250 | Number of markets to return. Values above 250 are rejected. Default: 100 |
| offsetinteger · ≥ 0 | Number of markets to skip. Default: 0 |
| depthstring | Use best for the highest bid per wine, or all for every resting price level. Default: best |
| lwinstring · CSV | Filter by up to 20 comma-separated LWIN18 identifiers. |
| min_priceinteger · ≥ 0 | Minimum bid price in minor units, inclusive. |
| max_priceinteger · ≥ 0 | Maximum bid price in minor units, inclusive. |
| include_market_priceboolean | Include market_price with price and as_of. Null when requested but unavailable. Default: false |
| include_last_tradeboolean | Include last_trade with price and traded_at in the selected market’s currency. Default: false |
limit, offset, and total refer to markets. Use depth=all to include every bid level within each market.
Response fields
200 OKEach item in data.markets contains the wine identity and its nested bid levels.
lwin18string
Full wine, vintage and pack identifier. Match against LWIN18, not LWIN11.
wine_namestring
Cru’s preferred wine name.
vintageinteger | null
The vintage year, or null when unavailable.
pack_sizestring | null
Pack format, for example 6x75cl.
product_urlstring | null
Product URL on the selected market storefront.
condition_statusstring | null
Condition of the stock traded in this market.
currencystring
ISO 4217 currency for every price within this market.
market_priceobject | null · optional
Only returned when requested: price (minor units), as_of.
last_tradeobject | null · optional
Only returned when requested: price (minor units), traded_at.
Each item in bids[]
codestring
Opaque bid identifier. Do not parse it or assume a fixed length; allocate at least 128 characters when storing it.
priceinteger
Price in minor units, net of Cru’s commission: the amount a seller receives.
quantityinteger
Displayed quantity available to fill.
is_own_bidboolean
Whether this is your own liquidity. You cannot fill your own bid.
expires_atdate | null
YYYY-MM-DD. Null means the expiry is unknown.
updated_atdatetime
Last update in RFC 3339 UTC.
requirementsobject
local_website_only (same website), landed_stock_only (not in transit), warehouse_id (delivery warehouse, when set).
Errors
Missing credentials return A001 / 401. Insufficient scope returns A003 / 403. View all error codes →