Skip to main content
Glama

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

TableJSON Schema
NameRequiredDescriptionDefault
item_idYes
offer_amountYes
confirm_amountYes
quantityNo
currencyNoUSD
max_bid_overrideNo
hostNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: binding sale on production, safety gates (confirm_amount must equal offer_amount, max_bid_override for amounts over $500), structured refusal payload, and exceptions. It also notes that the seller can accept/counter/decline but this call only places the offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a clear one-sentence purpose, a production warning, then Args and Returns sections. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 7 parameters and no annotations, the description covers all necessary context: prerequisites, return structure, safety mechanisms, and follow-up possibilities (best_offer_id). The presence of an output schema is noted but the description still explains key return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description provides all parameter meaning. It explains each parameter's purpose, constraints (e.g., offer_amount must be > 0, confirm_amount must equal offer_amount), defaults, and hints about auto-decline thresholds and safety caps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Submit a Best Offer on a listing that has Best Offer enabled' and mentions the underlying API call (Trading API PlaceOffer with Action=BestOffer). This distinguishes it from siblings like place_bid and buy_now, which handle different purchase flows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes explicit guidance: 'Must have Best Offer enabled — check buying_options on get_item() output for "BEST_OFFER".' Also warns about the binding nature on production. However, it does not explicitly list when to avoid this tool or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/acato/ebay-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server