Place a bid
Prepares a bid to BUY a wine at a price per unit the customer chooses. It rests on Cru for 90 days and fills if a seller accepts it; the customer then pays from their account credit, then invoice terms or their saved card. The total must fit the customer's bidding allowance. To buy at the current asking price instead, use buy_wine. This only prepares the instruction: it returns a summary and a confirmation_code and changes nothing until confirm_instruction is called with that code, after the customer agrees. Prices are normal amounts in the market currency - 12345.5 is 12,345.50 - and every market states its currency.
bid.place, and changes nothing With a connected app’s token, Cru checks the request against live data and either refuses it with a reason or returns a summary and a confirmation code. Nothing happens until confirm_instruction is called with that code — once, within 15 minutes, after the customer says yes.
A partner key is offered this tool opening “Places a bid” instead of “Prepares a bid”. It is carried out at once, with no confirmation step, and takes a required reference as its last argument, so sending the same one again returns the first result. It returns the action’s result as the REST response’s data gives it, with replayed, and is marked destructiveHint. Partner keys over MCP →
Arguments
3 REQUIRED| ARGUMENT | DESCRIPTION |
|---|---|
| lwin18string · 18 digits · required | The wine, from search_wines. |
| quantityinteger · 1–1000 · required | How many units (cases or bottles, as the LWIN18's pack size says). |
| pricenumber · > 0 · required | Price per unit the customer will pay, in the market currency, e.g. 30780 or 30780.50. |
| local_onlyboolean | Only accept stock already on this Cru site. Default: false |
| auto_transferboolean | Transfer the wine to the customer's storage on this site when the bid fills. Default: false |
| client_refstring · ≤ 50 chars | Optional reference of the customer's own for this bid, kept with it and shown by list_my_bids. It must not already be on another of their bids. Letters, numbers, spaces and . / # : _ - |
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
STRUCTUREDCONTENTOnce confirmed: the bid, as list_my_bids shows it.
The same object also comes as JSON text in content, for hosts that read only that. What a staging tool returns →
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 bids:write 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 →