{"uid":"cap_PPGI7IGMXRbpuWtgFVdaN","slug":"halowerk-ad-slot-auction-5d7d644b","name":"Halowerk Ad Slot Auction","description":"Four actions on one endpoint. create opens a slot with its position, length, reserve price and closing time, and returns an admin token that only the opener holds. bid places a sealed bid, checked against the reserve, the slot length and the publisher's excluded categories before it is accepted — a rejected bid is recorded with its reason rather than silently dropped, so a bidder can see why it never competed.","url":"https://audio.halowerk.com/ad-slot-auction","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"action":{"enum":["create","bid","close","status"],"type":"string","description":"create opens a slot, bid places a sealed bid, close settles it, status reads it."},"bidder":{"type":"string","maxLength":120,"description":"Who is bidding. bid only."},"category":{"type":"string","maxLength":40,"description":"Advertiser category, checked against the exclusions. bid only."},"position":{"enum":["pre_roll","mid_roll","post_roll"],"type":"string","description":"Where the slot sits in the content. create only."},"publisher":{"type":"string","maxLength":120,"description":"Name of the publisher offering the slot. create only."},"auction_id":{"type":"string","maxLength":64,"description":"Required for bid, close and status."},"slot_label":{"type":"string","maxLength":200,"description":"What is being sold, for example \"episode 41, mid-roll 2\". create only."},"admin_token":{"type":"string","maxLength":128,"description":"Required for close. Returned once by create."},"amount_usdc":{"type":"number","maximum":100000,"minimum":0,"description":"Sealed bid amount. bid only."},"reserve_usdc":{"type":"number","maximum":100000,"minimum":0,"description":"Price below which the slot is not sold. create only."},"slot_seconds":{"type":"integer","maximum":180,"minimum":5,"description":"Length of the slot. create only."},"closes_at_unix":{"type":"integer","minimum":0,"description":"Closing time in Unix seconds. create only. At most 30 days out."},"creative_seconds":{"type":"integer","maximum":180,"minimum":1,"description":"Length of the advertisement, checked against the slot. bid only."},"expected_listeners":{"type":"integer","maximum":100000000,"minimum":0,"description":"Reach the publisher claims. Recorded as a claim, not verified. create only."},"excluded_categories":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20,"description":"Advertiser categories the publisher refuses. create only."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.004","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.004/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_ZwFqaK0n3M00gv7DZchzA","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.004","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Manages sealed-bid audio ad slot auctions: create slots with reserve price and closing time, place bids checked against reserve and publisher rules, and track rejected bids with reasons.","exampleAgentPrompt":"Open a new audio ad slot at position 0, 30 seconds long, with a reserve price of $5 CPM, closing in 2 hours — then give me the admin token so I can manage it.","exampleUseCases":[{"title":"Podcast publisher opens ad auction","prompt":"Create an audio ad slot for my podcast — it's the pre-roll position, 15 seconds long, reserve price of $8 CPM, and I want the auction to close in 90 minutes. Give me back the admin token."},{"title":"Advertiser places sealed bid","prompt":"Place a bid of $12 CPM on ad slot ID 'slot_abc123' for my sports apparel brand — let me know if it was accepted or why it was rejected."},{"title":"Publisher enforces category exclusions","prompt":"I need to open a mid-roll audio ad slot — 60 seconds at position 1, reserve price $6 CPM, closing in 3 hours — and make sure bids from gambling and alcohol advertisers are excluded."}],"resultDescription":"Returns a structured response indicating the action taken: for 'create', a slot ID and an admin token the opener holds exclusively; for 'bid', an acceptance confirmation or a rejection record including the specific reason (e.g. below reserve, slot length mismatch, excluded category) so the bidder can understand why their bid did not compete.","failureModes":["Bid below reserve price — recorded as rejected with reason 'below reserve'","Bid from an excluded advertiser category — recorded with category exclusion reason","Slot length mismatch between bid and slot spec — rejected with mismatch reason","Invalid or missing admin token for privileged actions — authentication failure","Auction already closed — bid rejected with expired slot reason","Malformed request payload — validation error returned"],"whenToPreferThis":"Choose this endpoint when you need a self-contained sealed-bid auction mechanism for audio advertising inventory with built-in reserve price enforcement, publisher category exclusions, and transparent rejection logging. It is purpose-built for audio ad slots (podcast, streaming audio) rather than display or video ad formats. Prefer it when you want rejected bids to be recorded with explicit reasons rather than silently dropped, giving bidders post-auction insight.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T12:42:20.913Z","isFirstParty":false}