Card snapshot
a2a.bidmachine.io
·
2026-10-05 22:33:59 UTC
·
f7e3967e5e071c16278206bf0de73fe6814c6cacad9ff8c8ea615e8302300624
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "0.3.0",
"name": "BidMachine Ad Exchange",
"title": "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.",
"url": "https://a2a.bidmachine.io/a2a",
"version": "1.0.0",
"provider": {
"organization": "BidMachine",
"url": "https://bidmachine.io"
},
"capabilities": {
"streaming": true,
"pushNotifications": false,
"stateTransitionHistory": false,
"extendedAgentCard": false,
"extensions": [
{
"uri": "https://adcontextprotocol.org/extensions/adcp",
"description": "AdCP task invocation via skill DataParts; responses in task.artifacts[].parts[].DataPart per the AdCP A2A binding.",
"required": false,
"params": {
"adcp_version": "3.1.24",
"protocols_supported": [
"media_buy"
],
"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"
]
}
}
]
},
"supportedInterfaces": [
{
"url": "https://a2a.bidmachine.io/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "0.3.0"
},
{
"url": "https://a2a.bidmachine.io/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"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 \u2014 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 \u2014 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 \u2014 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"
]
}
],
"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 \u2014 one key authenticates all three surfaces."
}
},
"security": [
{
"bearerAuth": []
}
],
"authentication": {
"schemes": [
{
"scheme": "bearer",
"description": "Required bearer token issued by the seller. Contact the seller operator to obtain one."
}
]
}
}