Beta

The Partner Trading API v1 is in beta — endpoints and response shapes may still change.

Developers
Cru World Wine
API v1 · REST & MCP
Market data

Retrieve a market bid

Retrieve one live bid by its opaque code, with the wine, net price, quantity and fulfilment requirements in one object.

GET/market/bids/{code}LIVE
Required scopemarket:readAuthentication requiredTry it
Reconfirm before you act

A missing, expired or malformed bid returns the same BID_NOT_FOUND / 404. Your own bids are returned, with is_own_bid set.

How this call works

4 STEPS
  1. Your server

    Pass the code exactly as it was given

    GET/market/bids/{code}

    Codes are opaque: do not parse one, do not shorten one, and URL-encode it as a single path segment.

  2. Cru

    Cru returns the bid, flattened

    The wine and the price level arrive together in data.bid rather than nested, because there is only ever one of each here.

    KEEPprice, quantity, expires_at, requirements

  3. Your server

    Treat 404 as “no longer available”

    Missing, expired, filled and malformed all return the same BID_NOT_FOUND / 404. None of them are worth distinguishing: in every case, go back to the book.

  4. Your server

    Check the requirements against your stock

    landed_stock_only and deliverable_warehouses decide whether what you hold can fill this bid. Only verified stock can be sold into a bid.

    KEEPrequirements

Path parameter

REQUIRED
codestringThe opaque code of a bid in GET /market/bids. URL-encode it as a single path segment.

Response fields

200 OK

Fields returned in data.bid: the wine and the bid together.

lwin18string

The 18-digit LWIN: wine, vintage and pack together. Match on all 18 digits.

wine_namestring | null

Cru’s name for the wine.

vintageinteger | null

The vintage year. 1000 means non-vintage.

pack_sizestring | null

Pack format, for example 6x75cl.

product_urlstring | null

The wine’s page on the Cru storefront for the market you called.

currencystring

ISO 4217 currency of every price in this market: the currency of the market you called.

codestring

Opaque bid code: BID- and 43 more characters. Do not parse it. Your own bids carry the same code here and in /bids.

pricenumber | null

Net price per unit — what a seller receives after Cru’s commission — converted into the market’s currency at today’s rate, to 2 decimal places. null in the rare case Cru cannot price the bid.

quantityinteger

Units the bid still wants.

is_own_bidboolean

True when the bid is yours. Your own bids are listed, but you cannot sell into one.

expires_atdate | null

YYYY-MM-DD. For bids Cru carries from other venues this is always set two days ahead, not taken from the venue.

updated_atdatetime | null

Last change, RFC 3339 UTC.

requirementsobject

What stock must satisfy to fill the bid: condition_status (always verified — only Verified stock can fill a bid), landed_stock_only, and deliverable_warehouses — the warehouse codes whose stock can fill it.

Errors

An unavailable bid returns BID_NOT_FOUND / 404, and any query parameter VALIDATION_UNKNOWN_PARAMETER / 400. Missing or invalid credentials return AUTH_INVALID_CREDENTIALS / 401. A credential without market:read gets AUTH_INSUFFICIENT_SCOPE / 403. View all error codes →

UP NEXT List bids on one wine

API credentials

Enter the client key and secret issued by Cru. They are kept for this browser tab’s session — a reload keeps them, closing the tab or clearing them ends them.

Credentials are never included in copied examples, and are redacted from anything the console prints back.

Request API access

Tell us who you are and what you want to build. Cru issues a client key and secret for your organisation, scoped to what you need.

Markets you trade in (choose one or more)

We use what you send here to reply about API access, and for nothing else. Cloudflare Turnstile checks the form for bots (privacy policy).