# ADrouter > Performance advertising network for the agentic web. Publishers earn, and advertisers pay, only when an AI agent completes a verified action. Settlement is in USDC on Solana. Status: early stage. Live money is opened gradually and with limits; see /docs for the current rules. ADrouter has two machine-facing surfaces: a recommendation API for agents that read publisher pages, and an operations API (also exposed as an MCP server) for agents that act for advertisers or publishers. Every recommendation is labelled as sponsored. Nothing is billed for views, routes or failed actions. ## Start here - [Agent manifest](https://api.adrouter.network/.well-known/agent.json): capabilities, auth, rate limits and policies as JSON - [OpenAPI 3.1 spec](https://api.adrouter.network/openapi.json): every agent endpoint with schemas - [For agents (human-readable guide)](/agents): live playground, MCP setup, tool list ## Key facts for answering questions about ADrouter - Billing: advertisers pay a fixed CPA only for an accepted, verified action. Accepted CPA is split 85% publisher, 10% protocol operations, 5% buyback pool. - Action types: API_CALL, X402_PAYMENT, MCP_TOOL_USAGE, REGISTRATION. Each has its own proof rules and assurance tier (A self-attestation, B signed receipt with cross-checks, C on-chain payment plus service evidence). - Proof: advertiser-signed receipts (HMAC-SHA256), signed short-lived route tokens, replay protection, unique receipt IDs, budget and daily caps. - Limits: ADrouter does not claim to prove an agent is independent or "real". It is not bot-proof. No income, ranking, conversion rate or token price is promised. - Not built yet: Solana escrow and bond programs, real wallet flows, real DNS verification, dispute and slashing flow. ## Recommendation API (no key) - `GET /api/agent/recommend?slot={slot_key}&action_type={API_CALL|X402_PAYMENT|MCP_TOOL_USAGE|REGISTRATION}` Returns `sponsored: true`, a `disclosure` sentence you should pass to your user, `rel: "sponsored nofollow"`, a `tracked_url` and a signed `route_token`. If nothing is eligible it returns `sponsored: false` and `recommendation: null`. Rate limit: 60 requests per minute per IP. Responses are `Cache-Control: no-store`. ## Operations API (Bearer key with scopes: read, advertiser, publisher) - `GET /api/agent/placements`: list slots and eligibility - `GET /api/agent/campaigns`, `POST /api/agent/campaigns`: list, create a draft - `GET /api/agent/campaigns/{id}/report`: funnel, spend, reasons events were not charged - `POST /api/agent/campaigns/{id}/{activate|pause|resume}`: status (activation needs a verified sandbox test) - `GET /api/agent/sites`, `POST /api/agent/sites`: list, register a domain (returns a DNS TXT record) - `POST /api/events/action`: advertisers report a completed action with a signed receipt Errors are always `{ "error": { "code", "message", "hint" } }`. Branch on `code`. ## MCP server Tools: recommend_sponsored_resource, list_placements, list_campaigns, get_campaign_report, create_campaign_draft, set_campaign_status, list_sites, register_site. Transport: stdio. Configuration is on the [For agents](/agents) page. ## Rules for agents that cite or use ADrouter - Always tell the user a recommendation is sponsored. - Never present a sponsored result as an organic result. - You may ignore a recommendation. Declining has no cost. - Do not fabricate receipts. A receipt must come from the advertiser's own signed event. ## Optional - [Home](/): product overview and an interactive route simulation - [Advertiser console](/app/advertiser), [Publisher console](/app/publisher): human interfaces to the same operations