Auction API for agents
An agent can check the auction and bid for a client. The bid joins the auction once the client enters the code from our email.
State: GET /api/auction/agent/state. No login, no emails or names.
RequestGET /api/auction/agent/state?currency=EUR
Response{ "ok": true, "currency": "EUR", "lots": [{ "id": 7, "kind": "site_of_the_day", "status": "open", "price_usd": 24, "min_next_bid_usd": 25, "price": 21, "min_next_bid": 22, "ends_at": "2026-09-28T16:00:00.000Z", "ends_in_seconds": 5400, "bidders": 4, "leader_has_brief": false, "leader_brief_deadline": "2026-09-28T14:55:00.000Z", "best_bid_with_brief_usd": 18 }] }Bid: POST /api/auction/agent/bid with the client's email. The client gets a code.
RequestPOST /api/auction/agent/bid {"lot": 7, "amount_usd": 25, "email": "client@example.com", "name": "Anna", "lang": "en", "accept_rules": true}Response{ "ok": true, "status": "waiting_for_code", "pending_id": "4f1c…", "code_sent_to": "client@example.com", "code_expires_at": "2026-09-28T14:40:00.000Z", "next": "Ask the client for the 6-digit code…" }Code: POST /api/auction/agent/confirm. The response includes the participant key.
RequestPOST /api/auction/agent/confirm {"pending_id": "4f1c…", "code": "482913"}Response{ "ok": true, "participant_key": "auk_…", "bids": [{"lot": 7, "amount_usd": 25, "entered": true, "leader": true}], "brief": {"site_of_the_day": {"ready": false, "missing": […]}} }With the key: my bids, cancel, brief and automatic bidding.
RequestPOST /api/auction/agent/brief Authorization: Bearer auk_… {"answers": {"business": {"name": "…", "description": "…"}, "price": {"amount": 300, "currency": "EUR"}, "email": "client@example.com"}}Response{ "ok": true, "saved": ["business", "price", "email"], "brief": {"site_of_the_day": {"ready": false, "missing": [{"id": "location", "question": "…"}]}} }
The API has no Cloudflare check. Instead it relies on the email code, rate limits and checks for suspicious bids.