make_best_offer
Submit a binding Best Offer on an eBay listing that has Best Offer enabled. The seller can accept, counter, or decline.
Instructions
Submit a Best Offer on a listing that has Best Offer enabled.
Trading API PlaceOffer with Action=BestOffer. The seller can accept, counter, or decline; this call only places the offer.
PRODUCTION HOST WARNING: when the active host is "production" and the seller accepts, the offer becomes a binding sale at the offer amount.
Args:
item_id: numeric eBay item ID. Must have Best Offer enabled —
check buying_options on get_item() output for "BEST_OFFER".
offer_amount: the price the buyer offers, in currency. Must be
> 0. Many sellers configure auto-decline below a threshold.
confirm_amount: must equal offer_amount exactly. Safety gate.
quantity: number of units the offer covers (default 1).
currency: ISO currency code matching the listing (default "USD").
max_bid_override: optional ceiling that authorizes offer amounts
above the $500 per-call safety cap. Pass a value >=
offer_amount to bypass.
host: configured host name. Defaults to default_host.
Returns: On success: dict with host, item_id, action="BestOffer", amount, currency, quantity, placed=True, optionally best_offer_id (for follow-up via Trading GetBestOffer / Accept flows), and (on production) a warning. On safety-gate failure: structured refusal payload. Raises ValueError / TradingApiError as in place_bid.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| offer_amount | Yes | ||
| confirm_amount | Yes | ||
| quantity | No | ||
| currency | No | USD | |
| max_bid_override | No | ||
| host | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||