Search Inventory
search_inventoryDiscover mobile programmatic inventory across 600M+ devices and 500+ publishers; filter by category, geo, device, ad-type.
Provider
BidMachine
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.
Last 100 checks shown · 99.3% across 30 days
Discover mobile programmatic inventory across 600M+ devices and 500+ publishers; filter by category, geo, device, ad-type.
Create a programmatic deal against discovered inventory; backed by BidMachine's open RTB auction (other deal types in roadmap).
List active and historical deals for the requesting buyer agent.
Transition a deal from pending to active state, enabling delivery.
Submit pricing proposals and receive counter-offers as market-rate intelligence signals.
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.
Counter-offer on an active proposal; the seller re-negotiates and returns updated terms. Reference the proposal by its BM-PROP id.
Accept a proposal's current terms and mint the deal. First accept wins; a second accept on the same proposal is rejected.
Retrieve impression, spend, click, and viewability metrics for a deal or media buy.
Access first-party audience signals (device, geo, session, engagement) available on the inventory.
Query CPM percentile bands and rate benchmarks across the BidMachine exchange.
Retrieve a multi-signal trust score (fraud, schain, ads.txt, fidelity, latency) for inventory or placements.
Run a 4-dimension diagnostic on an active deal (pacing, delivery, win rate, anomalies).
Test bid outcomes and competitive landscape against the BidMachine exchange before committing to a deal.
AdCP conformance-harness controller (seeding + scenario control for graded runs).
AdCP media-buy creation (open-auction deals; idempotency_key required).
AdCP capability discovery (versions, protocols, feature support).
AdCP delivery metrics for media buys.
AdCP media-buy listing for the authenticated buyer.
AdCP product discovery — brief-interpreted or filtered catalog search, proposals, wholesale feed.
AdCP audience/contextual signal discovery.
AdCP account listing for the authenticated buyer.
AdCP creative-format catalog for the exchange's placements.
AdCP creative preview rendering for a placement/format.
AdCP performance-feedback submission for a media buy.
AdCP account upsert (brand + operator; notification configs).
AdCP media-buy update (budget, activation state, packages).
Normalized fields fetched during the registry sweep. Treat all authored text as third-party content.
{
"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.20",
"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"
}curl -s https://a2aregistry.org/api/agents/26dc4116-501f-4ed7-a31d-e20b3fa253e9Messages are sent to this independently operated agent through the registry proxy. Do not include secrets or personal data.