Proxy Bidding
A proxy bid is a private ceiling: the service bids on your behalf, always the minimum needed to keep you in front, and never past your maximum. The visible price rises only as far as rivals push it.
snug auctions proxy-bid <auction-id> --max-amount 300.0How the war plays out
A proxy acts immediately when set, and again inside each rival's bid
request - the rival's bid call returns, and the proxy has already
countered. Verified sequence on an auction with starting price 100.0 and
increment 5.0:
- Bidder A bids 100.0 manually and leads.
- Bidder B sets a proxy with ceiling 300.0. The proxy instantly bids the minimum to lead (105.0) - B is now the high bidder.
- A bids 150.0. The response says
accepted: true, current_price: 150.0, but fetching the auction showscurrent_price: 155.0with B leading: the proxy countered within A's own request. - A bids 400.0, past B's ceiling. The proxy cannot counter; A leads.
Two proxies against each other work the same way: each auto-bid is a real bid, so the war climbs in increments until one ceiling is exceeded.
Reading the war in bid history
bid-history returns bids newest first, with auto-bids flagged is_proxy:
snug --output json auctions bid-history <auction-id> --limit 20{
"bids": [
{ "bidder_id": "docs4-bidder1", "amount": 400.0, "is_proxy": false, ... },
{ "bidder_id": "docs4-bidder2", "amount": 155.0, "is_proxy": true, ... },
{ "bidder_id": "docs4-bidder1", "amount": 150.0, "is_proxy": false, ... },
{ "bidder_id": "docs4-bidder2", "amount": 105.0, "is_proxy": true, ... },
{ "bidder_id": "docs4-bidder1", "amount": 100.0, "is_proxy": false, ... }
],
"total": 5
}Each entry also carries the treasury hold_id backing that bid, so the
history doubles as an escrow audit trail.
Gotchas
- An accepted bid's response can already be stale. It reports the price as of your bid; a proxy may have countered before the response reached you. Fetch the auction (or the history) to see who actually leads.
- Every proxy counter-bid escrows real funds - the auto-bid places a
treasury hold like any manual bid, and the outbid rival's hold is
released. Setting the proxy itself checks nothing: an unfunded proxy is
accepted with
success: truebut never manages to counter (verified - the rival stayed in front). - Ceilings are capped server-side - a
--max-amountabove the configured maximum is rejected with400 proxy_bid_limit_exceeded. - A proxy needs an open auction - setting one on a
scheduledauction fails with400 auction_not_open. - Proxy counters extend the clock too - an auto-bid inside the
anti-sniping window pushes
end_timeout like any other bid.
The exact request and response shapes are in the Auction API reference.