{"protocolVersion":"0.3.0","name":"BidMachine Ad Exchange","description":"Agentic seller agent for the BidMachine ad exchange exposed via A2A intents. Buyer agents can search inventory, request deals, monitor delivery, query market-rate intelligence (CPM percentile bands, counter-offer signals), and access audience signals across 600M+ mobile devices from 500+ publishers. Backed by BidMachine's open RTB auction (other deal types in roadmap). 14 A2A intents supported with streaming + push notifications.","author":"BidMachine","wellKnownURI":"https://a2a.bidmachine.io/.well-known/agent.json","url":"https://a2a.bidmachine.io/a2a","version":"1.0.0","provider":{"organization":"BidMachine","url":"https://bidmachine.io/"},"documentationUrl":null,"iconUrl":null,"supportsAuthenticatedExtendedCard":false,"security":[{"bearerAuth":[]}],"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token issued by the seller (admin-gated POST /api/v1/auth/keys). Same key pool as the AdCP / AAMP MCP endpoints — one key authenticates all three surfaces."}},"capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":false,"extensions":[{"uri":"https://adcontextprotocol.org/extensions/adcp","params":{"adcp_version":"3.1.24","skills_supported":["comply_test_controller","create_media_buy","get_adcp_capabilities","get_media_buy_delivery","get_media_buys","get_products","get_signals","list_accounts","list_creative_formats","preview_creative","provide_performance_feedback","sync_accounts","update_media_buy"],"protocols_supported":["media_buy"]},"required":false,"description":"AdCP task invocation via skill DataParts; responses in task.artifacts[].parts[].DataPart per the AdCP A2A binding."}]},"defaultInputModes":["text/plain"],"defaultOutputModes":["application/json"],"skills":[{"id":"search_inventory","name":"Search Inventory","description":"Discover mobile programmatic inventory across 600M+ devices and 500+ publishers; filter by category, geo, device, ad-type.","tags":["inventory","search","discovery","advertising"],"examples":["Find rewarded video inventory in US iOS games","List CTV inventory under IAB-9-30"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"create_deal","name":"Create Deal","description":"Create a programmatic deal against discovered inventory; backed by BidMachine's open RTB auction (other deal types in roadmap).","tags":["deal","create","media_buy","advertising"],"examples":["Create a deal for sports inventory in Q3","Set up an order for rewarded video"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"list_deals","name":"List Deals","description":"List active and historical deals for the requesting buyer agent.","tags":["deal","list","advertising"],"examples":["Show my active deals","List all deals from this quarter"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"activate_deal","name":"Activate Deal","description":"Transition a deal from pending to active state, enabling delivery.","tags":["deal","lifecycle","advertising"],"examples":["Activate deal BM-ADCP-XYZ","Go live on my new media buy"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"negotiate","name":"Negotiate Pricing","description":"Submit pricing proposals and receive counter-offers as market-rate intelligence signals.","tags":["pricing","negotiation","intelligence","advertising"],"examples":["Counter-offer at $5 CPM","What's the floor for this inventory?"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"propose_deal","name":"Propose Deal","description":"Start a multi-turn deal negotiation. Submit an offer and receive seller counter-terms plus a proposal id to refine or accept — no deal is minted until you finalize.","tags":["negotiation","proposal","deals","advertising"],"examples":["Propose a deal at $6 CPM for preferred banner inventory","Send a proposal: seat my-dsp, $5 CPM"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"refine_deal","name":"Refine Proposal","description":"Counter-offer on an active proposal; the seller re-negotiates and returns updated terms. Reference the proposal by its BM-PROP id.","tags":["negotiation","proposal","counter-offer","advertising"],"examples":["Refine BM-PROP-abc123 to $7 CPM","Revise proposal BM-PROP-abc123 — raise to $8"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"finalize_deal","name":"Finalize Proposal","description":"Accept a proposal's current terms and mint the deal. First accept wins; a second accept on the same proposal is rejected.","tags":["negotiation","proposal","deals","advertising"],"examples":["Accept proposal BM-PROP-abc123","Finalize BM-PROP-abc123"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"get_delivery","name":"Get Delivery Metrics","description":"Retrieve impression, spend, click, and viewability metrics for a deal or media buy.","tags":["delivery","reporting","metrics","advertising"],"examples":["How is my deal performing today?","Show impressions for the last 7 days"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"get_signals","name":"Get Audience Signals","description":"Access first-party audience signals (device, geo, session, engagement) available on the inventory.","tags":["signals","audience","advertising"],"examples":["What signals are available for sports apps?","List geo signals for US inventory"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"get_market_rates","name":"Get Market Rate Intelligence","description":"Query CPM percentile bands and rate benchmarks across the BidMachine exchange.","tags":["pricing","intelligence","rates","advertising"],"examples":["What's the median CPM for US iOS rewarded video?","Show rate bands for sports inventory"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"get_trust_score","name":"Get Trust Score","description":"Retrieve a multi-signal trust score (fraud, schain, ads.txt, fidelity, latency) for inventory or placements.","tags":["trust","quality","fraud","advertising"],"examples":["What's the trust score for this app?","Show placement quality signals"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"get_deal_health","name":"Get Deal Health","description":"Run a 4-dimension diagnostic on an active deal (pacing, delivery, win rate, anomalies).","tags":["deal","diagnostics","health","advertising"],"examples":["Is my deal healthy?","Diagnose underdelivery on deal X"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"simulate_auction","name":"Simulate Auction","description":"Test bid outcomes and competitive landscape against the BidMachine exchange before committing to a deal.","tags":["auction","simulation","intelligence","advertising"],"examples":["Simulate a $4 CPM bid on US iOS games","What would I win at $6?"],"inputModes":["text/plain"],"outputModes":["application/json"]},{"id":"comply_test_controller","name":"AdCP: comply_test_controller","description":"AdCP conformance-harness controller (seeding + scenario control for graded runs).","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"comply_test_controller\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"create_media_buy","name":"AdCP: create_media_buy","description":"AdCP media-buy creation (open-auction deals; idempotency_key required).","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"create_media_buy\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_adcp_capabilities","name":"AdCP: get_adcp_capabilities","description":"AdCP capability discovery (versions, protocols, feature support).","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"get_adcp_capabilities\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_media_buy_delivery","name":"AdCP: get_media_buy_delivery","description":"AdCP delivery metrics for media buys.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"get_media_buy_delivery\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_media_buys","name":"AdCP: get_media_buys","description":"AdCP media-buy listing for the authenticated buyer.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"get_media_buys\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_products","name":"AdCP: get_products","description":"AdCP product discovery — brief-interpreted or filtered catalog search, proposals, wholesale feed.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"get_products\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_signals","name":"AdCP: get_signals","description":"AdCP audience/contextual signal discovery.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"get_signals\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"list_accounts","name":"AdCP: list_accounts","description":"AdCP account listing for the authenticated buyer.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"list_accounts\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"list_creative_formats","name":"AdCP: list_creative_formats","description":"AdCP creative-format catalog for the exchange's placements.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"list_creative_formats\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"preview_creative","name":"AdCP: preview_creative","description":"AdCP creative preview rendering for a placement/format.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"preview_creative\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"provide_performance_feedback","name":"AdCP: provide_performance_feedback","description":"AdCP performance-feedback submission for a media buy.","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"provide_performance_feedback\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"sync_accounts","name":"AdCP: sync_accounts","description":"AdCP account upsert (brand + operator; notification configs).","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"sync_accounts\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"update_media_buy","name":"AdCP: update_media_buy","description":"AdCP media-buy update (budget, activation state, packages).","tags":["adcp","media_buy","advertising"],"examples":["{\"skill\": \"update_media_buy\", \"parameters\": {...}} as a message DataPart"],"inputModes":["application/json"],"outputModes":["application/json"]}],"conformance":true,"conformance_errors":null,"homepage":null,"repository":null,"license":null,"pricing":null,"contact":null,"id":"26dc4116-501f-4ed7-a31d-e20b3fa253e9","created_at":"2026-04-27T18:24:34.615370Z","updated_at":"2026-10-12T23:41:55.566297Z","hidden":false,"flag_count":0,"maintainer_notes":null,"category":null,"category_secondary":null,"uptime_percentage":100.0,"avg_response_time_ms":1947,"last_health_check":"2026-10-12T23:41:55.547871Z","is_healthy":true,"status_notes":[],"task_conformance":{"category":"401","passed":false,"checked_at":"2026-10-12T07:39:29.679415Z","response_ms":746}}