Beta

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

Developers
Cru World Wine
API v1 · REST & MCP
Your portfolio

Your sales

What the customer has sold on Cru, one entry per unit sold, stored with Cru or held outside it, by the date it sold (traded_at), newest first unless direction is "asc", as the Cru app's Sold list shows it, in the market currency: price is the list's Sold For (for wine held outside Cru, after Cru's commission), cru_id, transfer_ref (the transfer's reference, when there is one), cost (what the customer paid), sold_price (what the sale came to before Cru's commission and any fee), Cru's commission (commission_percent and commission; none for a supplier), any settlement_fee, net_proceeds (what the customer received: sold_price less commission and settlement_fee), profit_loss (net_proceeds less cost) and profit_loss_percent (of cost; null when no cost is recorded), and for wine held outside Cru the Cru warehouse it goes to (deliver_to, deliverable_warehouse_code) and when it is due there (deliver_by), all null for wine that was not. status is where the wine is in reaching Cru: "transfer_needed", "awaiting_transfer", "on_purchase_order" or "delivered_to_cru", which wine stored with Cru always is. Prices are normal amounts in the market currency - 12345.5 is 12,345.50 - and every market states its currency.

READlist_my_salesLIVE
Needstrades:readRESTGET /trades/salesTry it
Reads, and changes nothing

Marked readOnlyHint, so an assistant may call it without asking the customer first.

Arguments

ALL OPTIONAL
ARGUMENTDESCRIPTION
lwin18array<string> · LWIN18 · ≤ 20 Only sales of these wines, as 18-digit LWIN18 codes (wine, vintage and pack). Get them from search_wines.
statusarray<string> · one of transfer_needed, awaiting_transfer, on_purchase_order, delivered_to_cru · ≤ 4 Only sales in these states - see status.
deliverable_warehouse_codearray<string> · one of UK_DRAK, HK_KERRY, SG_TOLL, FR_DARTESS, US_NAPA · ≤ 5 Only sales of wine held outside Cru going to any of these Cru warehouses - see list_warehouses.
sortstring · one of traded_at What to order sales by: traded_at, the date of the sale.
directionstring · one of desc, asc "desc" (newest first, the default) or "asc" (oldest first).
limitinteger · 1–50 Sales per page. Default: 10
offsetinteger · 0–10000 Sales to skip, for the next page. Default: 0

Any other argument is refused with a tool error that lists what the tool accepts. Numbers may also be sent as strings, and booleans as "true" or 1.

Returns

STRUCTUREDCONTENT

sales: lwin18, wine_name, vintage, pack_size, quantity (always 1), price, total, currency, reference (always null), traded_at, cru_id, transfer_ref, cost, sold_price, commission_percent, commission, settlement_fee, net_proceeds, profit_loss, profit_loss_percent, deliver_to, deliverable_warehouse_code, deliver_by and status; pagination.

The same object also comes as JSON text in content, for hosts that read only that.

Errors

A refusal — a wine that is not on Cru, a price out of range — comes back as a result with isError: true and a message worded for the assistant to act on. A connection without trades:read is not offered this tool, and calling it anyway returns 403 with a JSON-RPC error naming the scope. Missing or invalid credentials return 401. Conventions every tool shares →

UP NEXT Your bids

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).