{"available":true,"mode":"agent-monetization-policy-matrix","release":"v2.2.169-cloudflare-edge-settlement-bridge","title":"Agent monetization policy matrix","purpose":"Give crawlers, buyer agents, edge gateways, and MCP clients one clear allow/charge/block map before they touch a paid route.","sourceSignals":[{"name":"Cloudflare Pay Per Crawl","sourceUrl":"https://blog.cloudflare.com/introducing-pay-per-crawl/","interpretedAs":"Agents and crawlers need a simple policy choice: free access, charged access, or blocked access."},{"name":"Cloudflare Monetization Gateway","sourceUrl":"https://blog.cloudflare.com/monetization-gateway/","interpretedAs":"Paid APIs, datasets, pages, and MCP tools can be described as route-level payment rules before any buyer-controlled retry."}],"policyUrl":"https://apexscout.ai/.well-known/apexscout-monetization-policy.json","apiPath":"/api/agent-monetization-policy","wellKnownPath":"/.well-known/apexscout-monetization-policy.json","paidMcpToolsManifest":"https://apexscout.ai/.well-known/apexscout-paid-tools.json","currentServingLayer":"Railway origin","cloudflareGatewayIntegrated":false,"cloudflareBillingRulesPackAvailable":true,"cloudflareBillingRulesPath":"/api/cloudflare-billing-rules","cloudflareBillingRulesWellKnownPath":"/.well-known/apexscout-cloudflare-billing-rules.json","cloudflareBillingRulesPack":{"available":true,"mode":"cloudflare-billing-rules-pack","release":"v2.2.169-cloudflare-edge-settlement-bridge","title":"Cloudflare billing rules pack","purpose":"Convert ApexScout's existing x402 paid-route policy into Cloudflare-ready billing rules without changing production traffic.","apiPath":"/api/cloudflare-billing-rules","wellKnownPath":"/.well-known/apexscout-cloudflare-billing-rules.json","workerConfigPath":"/api/cloudflare-x402-worker-config","workerConfigWellKnownPath":"/.well-known/apexscout-cloudflare-x402-worker.json","sourceSignals":[{"name":"Cloudflare Monetization Gateway","url":"https://blog.cloudflare.com/monetization-gateway/","interpretedAs":"Cloudflare is moving toward edge-managed payment rules, including route-level x402 enforcement."},{"name":"Cloudflare x402 proxy","url":"https://developers.cloudflare.com/agents/tools/payments/x402/charge-for-http-content/","interpretedAs":"A Cloudflare Worker can sit in front of an existing HTTP origin, return 402, verify x402 payment, and forward the approved request."},{"name":"Cloudflare Pay Per Crawl","url":"https://developers.cloudflare.com/ai-crawl-control/features/pay-per-crawl/what-is-pay-per-crawl/","interpretedAs":"Cloudflare's crawler billing direction reinforces clear allow, charge, and block rules for automated clients."}],"integrationStatus":"config-ready-not-created","currentServingLayer":"Railway origin","cloudflareGatewayIntegrated":false,"cloudflareWorkerConfigPrepared":true,"cloudflareRulesCreated":false,"monetizationGatewayApiPubliclyAvailable":false,"monetizationGatewayApiStatus":"planned-or-early-access","currentDeployableOption":"cloudflare-x402-edge-settlement-worker","originFallbackRequired":true,"originStillEnforcesX402":true,"originEdgeSettlementBridgePrepared":true,"edgeSettlementEligiblePaidRuleCount":1,"originAuthoritativePaidRuleCount":1,"billingRuleCount":5,"paidBillingRuleCount":2,"freeAllowRuleCount":2,"blockRuleCount":1,"paidRules":[{"id":"apexscout-one-cent-proof","type":"charge_x402","method":"GET","pattern":"/api/opportunity-check","route":"/api/opportunity-check","routeWithSource":"/api/opportunity-check?src=agent-execution-command-copy","url":"https://apexscout.ai/api/opportunity-check?src=agent-execution-command-copy","sourceTag":"agent-execution-command-copy","sourceBucket":"agentExecutionCommandCopy","price":"$0.01","priceUsd":"0.01","amountAtomicUsdc":"10000","network":"eip155:8453","cloudflareNetwork":"base","description":"ApexScout one-cent x402 proof. Buyer-controlled GET retry only; unpaid 402 is not revenue.","expectedUnpaidStatus":402,"expectedPaidStatus":200,"requestBodyRequired":false,"buyerControlledRetryOnly":true,"edgeSettlementEligible":true,"originEdgeSettlementBypassRequired":true,"originStillEnforcesX402":false,"liveRuleMode":"edge-settled-with-signed-origin-bridge"},{"id":"apexscout-agent-revenue-audit","type":"charge_x402","method":"POST","pattern":"/api/agent-revenue-audit","route":"/api/agent-revenue-audit","url":"https://apexscout.ai/api/agent-revenue-audit","price":"$5.00","priceUsd":"5.00","amountAtomicUsdc":"5000000","network":"eip155:8453","cloudflareNetwork":"base","description":"ApexScout paid Agent Revenue Audit. Buyer-controlled POST retry only after no-spend preflight.","expectedUnpaidStatus":402,"expectedPaidStatus":200,"requestBodyRequired":true,"buyerControlledRetryOnly":true,"edgeSettlementEligible":false,"originEdgeSettlementBypassRequired":false,"originStillEnforcesX402":true,"liveRuleMode":"origin-authoritative-until-prevalidation","reasonEdgeSettlementDeferred":"This POST route should not be edge-settled until the buyer payload can be validated before charge."}],"allowRules":[{"id":"apexscout-free-agent-metadata","type":"allow_free","patterns":["/","/docs.json","/llms.txt","/skill.md","/.well-known/agent.json","/agent-capabilities.json","/api/public-agent","/mcp-tool-pack","/api/mcp-tool-pack","/.well-known/mcp.json","/api/agentcore-openapi.json","/.well-known/apexscout-monetization-policy.json","/api/agent-monetization-policy","/.well-known/apexscout-paid-tools.json","/api/paid-mcp-tools","/api/cloudflare-billing-rules","/.well-known/apexscout-cloudflare-billing-rules.json","/api/cloudflare-x402-worker-config","/.well-known/apexscout-cloudflare-x402-worker.json"],"reason":"Payment-aware agents should inspect policy, prices, and route caps before spend.","paidRetryRequired":false},{"id":"apexscout-free-proof-and-preflight","type":"allow_free","patterns":["/x402-proof","/api/x402-proof","/chat-tiny-payment-flow","/api/chat-tiny-payment-flow","/api/agent-revenue-audit-builder/action-pack","/api/buyer-payment-scope-check","/api/buyer-agent-payment-safety","/api/x402-security-readiness"],"reason":"No-spend proof, preflight, Builder, Scope, and payment-safety surfaces should stay readable.","paidRetryRequired":false}],"blockRules":[{"id":"apexscout-private-operator-surfaces","type":"block_public_access","patterns":["/admin/*","/api/admin/*"],"reason":"Private operator surfaces are not public buyer-agent resources.","paidRetryAvailable":false}],"workerConfig":{"available":true,"mode":"cloudflare-x402-worker-config","release":"v2.2.169-cloudflare-edge-settlement-bridge","apiPath":"/api/cloudflare-x402-worker-config","wellKnownPath":"/.well-known/apexscout-cloudflare-x402-worker.json","sourceDocs":{"cloudflareX402Proxy":"https://developers.cloudflare.com/agents/tools/payments/x402/charge-for-http-content/","cloudflareMonetizationGateway":"https://blog.cloudflare.com/monetization-gateway/"},"wranglerConfig":{"name":"apexscout-x402-billing-proxy","main":"src/index.ts","compatibility_date":"2026-07-01","compatibility_flags":["nodejs_compat"],"vars":{"ORIGIN_URL":"https://agent-research-brief-api-production.up.railway.app","PUBLIC_SERVICE_URL":"https://apexscout.ai","PAY_TO":"${APEXSCOUT_X402_PAY_TO}","NETWORK":"eip155:8453","CLOUDFLARE_NETWORK_ALIAS":"base","FACILITATOR_URL":"https://api.cdp.coinbase.com/platform/v2/x402","PROTECTED_PATTERNS":[{"pattern":"/api/opportunity-check","method":"GET","price":"$0.01","description":"ApexScout one-cent x402 proof. Buyer-controlled GET retry only; unpaid 402 is not revenue.","edgeSettlement":true,"liveRuleMode":"edge-settled-with-signed-origin-bridge","sourceTag":"agent-execution-command-copy"},{"pattern":"/api/agent-revenue-audit","method":"POST","price":"$5.00","description":"ApexScout paid Agent Revenue Audit. Buyer-controlled POST retry only after no-spend preflight.","edgeSettlement":false,"liveRuleMode":"origin-authoritative-until-prevalidation"}]}},"protectedPatterns":[{"id":"apexscout-one-cent-proof","pattern":"/api/opportunity-check","method":"GET","price":"$0.01","amountAtomicUsdc":"10000","network":"eip155:8453","cloudflareNetwork":"base","description":"ApexScout one-cent x402 proof. Buyer-controlled GET retry only; unpaid 402 is not revenue.","edgeSettlementEligible":true,"liveRuleMode":"edge-settled-with-signed-origin-bridge","originStillEnforcesX402":false},{"id":"apexscout-agent-revenue-audit","pattern":"/api/agent-revenue-audit","method":"POST","price":"$5.00","amountAtomicUsdc":"5000000","network":"eip155:8453","cloudflareNetwork":"base","description":"ApexScout paid Agent Revenue Audit. Buyer-controlled POST retry only after no-spend preflight.","edgeSettlementEligible":false,"liveRuleMode":"origin-authoritative-until-prevalidation","originStillEnforcesX402":true}],"envRequiredBeforeDeploy":["CLOUDFLARE_API_TOKEN","CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_ZONE_ID","APEXSCOUT_X402_PAY_TO","APEXSCOUT_CLOUDFLARE_EDGE_PAYMENT_SECRET","CDP facilitator key id","CDP facilitator key secret"],"deployCommand":"npm --prefix cloudflare/x402-proxy run deploy","noSpendBoundary":{"configIsFree":true,"cloudflareApiCalledByApexScout":false,"cloudflareWorkerDeployedByApexScout":false,"dnsChangedByApexScout":false,"paymentAttemptedByConfig":false,"paidRouteCalledByConfig":false,"paidUpstreamCalls":false,"fakeTrafficCreated":false,"priceChanged":false,"sellerWalletChanged":false,"settlementRailChanged":false},"edgeSettlementBridge":{"originUrl":"https://agent-research-brief-api-production.up.railway.app","publicUrl":"https://apexscout.ai","facilitatorUrl":"https://api.cdp.coinbase.com/platform/v2/x402","signedOriginBridgePrepared":true,"edgeSettlementEligibleRuleCount":1,"originAuthoritativeRuleCount":1,"sharedSecretEnv":"APEXSCOUT_CLOUDFLARE_EDGE_PAYMENT_SECRET","doubleChargeGuardPrepared":true,"postBodyChargeRiskAvoided":true}},"operatorApplyPlan":["Confirm the ApexScout zone is active on Cloudflare and the route is proxied.","Set APEXSCOUT_X402_PAY_TO to the existing ApexScout x402 seller payTo address in Cloudflare secrets or vars.","Set APEXSCOUT_CLOUDFLARE_EDGE_PAYMENT_SECRET as the same shared secret in Cloudflare and Railway.","Review cloudflare/x402-proxy/wrangler.jsonc against this API response.","Deploy the Worker only in an explicit Cloudflare deployment window.","Run unpaid 402 checks first, then one buyer-approved paid 200 proof for the one-cent proof rule.","Keep Railway-origin x402 as rollback until both edge rules match route, method, price, network, and paid proof."],"blockedUntil":["CLOUDFLARE_API_TOKEN is available to the operator.","CLOUDFLARE_ACCOUNT_ID is available to the operator.","CLOUDFLARE_ZONE_ID is available to the operator.","APEXSCOUT_X402_PAY_TO is confirmed as the existing ApexScout seller wallet/payTo.","APEXSCOUT_CLOUDFLARE_EDGE_PAYMENT_SECRET is set in both Cloudflare Worker secrets and Railway service env.","CDP facilitator key id and secret are set as Cloudflare Worker secrets for the Base mainnet facilitator.","Cloudflare route/proxy ownership is confirmed."],"safeDryRunCommands":["npm run cloudflare:billing-rules:print","npm run cloudflare:x402-proxy:smoke","npm run cloudflare:x402-proxy:typecheck"],"liveApplyCommandTemplate":"npm --prefix cloudflare/x402-proxy run deploy","postIntegrationVerificationPlan":["GET /status and confirm the current ApexScout release.","GET /api/cloudflare-billing-rules and confirm the same paid rule count.","GET /api/cloudflare-x402-worker-config and confirm protected pattern prices.","Unpaid-check the protected route and confirm HTTP 402 only after an explicit deploy window.","Run one buyer-approved paid x402 proof only after the unpaid challenge matches."],"noSpendBoundary":{"packIsFree":true,"paymentAttemptedByPack":false,"paidRouteCalledByPack":false,"cloudflareApiCalledByApexScout":false,"cloudflareGatewayRuleCreated":false,"cloudflareWorkerDeployedByApexScout":false,"dnsChangedByApexScout":false,"automaticSpending":false,"paidUpstreamCalls":false,"createsPrepareRequest":false,"createsScopeCheck":false,"createsActionIntent":false,"fakeTrafficCreated":false,"newPaidRouteAdded":false,"pricingChanged":false,"sellerWalletChanged":false,"settlementRailChanged":false},"privacy":{"aggregateOnly":true,"buyerLevelDataExposed":false,"rawBuyerInputStored":false,"rawGeneratedPayloadStored":false,"rawUserAgentsStored":false,"ipAddressesStored":false,"cookiesAdded":false,"sessionsAdded":false,"fingerprintingAdded":false,"cloudflareVisitorDataPublished":false},"safetyClaims":{"cloudflareEndorsementClaimed":false,"marketplaceEndorsementClaimed":false,"guaranteedRevenueClaimed":false,"tradingOrInvestmentAdvice":false,"buyerPaymentDelegatedToApexScout":false}},"cloudflareX402WorkerConfigAvailable":true,"cloudflareX402WorkerConfigPath":"/api/cloudflare-x402-worker-config","cloudflareX402WorkerConfigWellKnownPath":"/.well-known/apexscout-cloudflare-x402-worker.json","cloudflareX402WorkerConfig":{"available":true,"mode":"cloudflare-x402-worker-config","release":"v2.2.169-cloudflare-edge-settlement-bridge","apiPath":"/api/cloudflare-x402-worker-config","wellKnownPath":"/.well-known/apexscout-cloudflare-x402-worker.json","sourceDocs":{"cloudflareX402Proxy":"https://developers.cloudflare.com/agents/tools/payments/x402/charge-for-http-content/","cloudflareMonetizationGateway":"https://blog.cloudflare.com/monetization-gateway/"},"wranglerConfig":{"name":"apexscout-x402-billing-proxy","main":"src/index.ts","compatibility_date":"2026-07-01","compatibility_flags":["nodejs_compat"],"vars":{"ORIGIN_URL":"https://agent-research-brief-api-production.up.railway.app","PUBLIC_SERVICE_URL":"https://apexscout.ai","PAY_TO":"${APEXSCOUT_X402_PAY_TO}","NETWORK":"eip155:8453","CLOUDFLARE_NETWORK_ALIAS":"base","FACILITATOR_URL":"https://api.cdp.coinbase.com/platform/v2/x402","PROTECTED_PATTERNS":[{"pattern":"/api/opportunity-check","method":"GET","price":"$0.01","description":"ApexScout one-cent x402 proof. Buyer-controlled GET retry only; unpaid 402 is not revenue.","edgeSettlement":true,"liveRuleMode":"edge-settled-with-signed-origin-bridge","sourceTag":"agent-execution-command-copy"},{"pattern":"/api/agent-revenue-audit","method":"POST","price":"$5.00","description":"ApexScout paid Agent Revenue Audit. Buyer-controlled POST retry only after no-spend preflight.","edgeSettlement":false,"liveRuleMode":"origin-authoritative-until-prevalidation"}]}},"protectedPatterns":[{"id":"apexscout-one-cent-proof","pattern":"/api/opportunity-check","method":"GET","price":"$0.01","amountAtomicUsdc":"10000","network":"eip155:8453","cloudflareNetwork":"base","description":"ApexScout one-cent x402 proof. Buyer-controlled GET retry only; unpaid 402 is not revenue.","edgeSettlementEligible":true,"liveRuleMode":"edge-settled-with-signed-origin-bridge","originStillEnforcesX402":false},{"id":"apexscout-agent-revenue-audit","pattern":"/api/agent-revenue-audit","method":"POST","price":"$5.00","amountAtomicUsdc":"5000000","network":"eip155:8453","cloudflareNetwork":"base","description":"ApexScout paid Agent Revenue Audit. Buyer-controlled POST retry only after no-spend preflight.","edgeSettlementEligible":false,"liveRuleMode":"origin-authoritative-until-prevalidation","originStillEnforcesX402":true}],"envRequiredBeforeDeploy":["CLOUDFLARE_API_TOKEN","CLOUDFLARE_ACCOUNT_ID","CLOUDFLARE_ZONE_ID","APEXSCOUT_X402_PAY_TO","APEXSCOUT_CLOUDFLARE_EDGE_PAYMENT_SECRET","CDP facilitator key id","CDP facilitator key secret"],"deployCommand":"npm --prefix cloudflare/x402-proxy run deploy","noSpendBoundary":{"configIsFree":true,"cloudflareApiCalledByApexScout":false,"cloudflareWorkerDeployedByApexScout":false,"dnsChangedByApexScout":false,"paymentAttemptedByConfig":false,"paidRouteCalledByConfig":false,"paidUpstreamCalls":false,"fakeTrafficCreated":false,"priceChanged":false,"sellerWalletChanged":false,"settlementRailChanged":false},"edgeSettlementBridge":{"originUrl":"https://agent-research-brief-api-production.up.railway.app","publicUrl":"https://apexscout.ai","facilitatorUrl":"https://api.cdp.coinbase.com/platform/v2/x402","signedOriginBridgePrepared":true,"edgeSettlementEligibleRuleCount":1,"originAuthoritativeRuleCount":1,"sharedSecretEnv":"APEXSCOUT_CLOUDFLARE_EDGE_PAYMENT_SECRET","doubleChargeGuardPrepared":true,"postBodyChargeRiskAvoided":true}},"cloudflarePayPerCrawlIntegrated":false,"noCrawlerBillingCreated":true,"noCloudflareApiCallMade":true,"noPaymentRuleCreated":true,"noPaidRouteChanged":true,"noPriceChanged":true,"noSellerWalletChanged":true,"noPaymentRailChanged":true,"routePolicyCount":8,"defaultPolicy":{"action":"allow_free_public_metadata","appliesTo":"Public ApexScout-owned docs, manifests, readiness pages, and health surfaces.","paidRetryRequired":false,"buyerLevelDataExposed":false},"routePolicies":[{"id":"public-docs-and-start-pages","action":"allow_free","routes":["/","/docs.json","/llms.txt","/skill.md","/agent-capabilities.json","/.well-known/agent.json","/api/public-agent"],"reason":"Agents need no-spend discovery and route selection before deciding whether to pay.","crawlerPolicy":"allow_public_metadata_only","paidRetryRequired":false},{"id":"machine-readable-policy-and-tools","action":"allow_free","routes":["/.well-known/apexscout-monetization-policy.json","/api/agent-monetization-policy","/.well-known/apexscout-paid-tools.json","/api/paid-mcp-tools","/api/mcp-tool-pack","/.well-known/mcp.json","/api/agentcore-openapi.json"],"reason":"Payment-aware clients should inspect prices, routes, caps, and guardrails without spending.","crawlerPolicy":"allow_agent_metadata","paidRetryRequired":false},{"id":"proof-pages-and-payment-education","action":"allow_free","routes":["/x402-proof","/api/x402-proof","/chat-tiny-payment-flow","/api/chat-tiny-payment-flow"],"reason":"These surfaces explain the one-cent proof and wallet-controlled retry; reading them is not payment.","crawlerPolicy":"allow_public_payment_instructions","paidRetryRequired":false},{"id":"one-cent-proof","action":"charge_x402","method":"GET","route":"/api/opportunity-check","routeWithSource":"/api/opportunity-check?src=agent-execution-command-copy","url":"https://apexscout.ai/api/opportunity-check?src=agent-execution-command-copy","price":"$0.01","amountAtomicUsdc":"10000","network":"eip155:8453","expectedUnpaidStatus":402,"expectedPaidStatus":200,"requestBodyRequired":false,"buyerControlledRetryOnly":true,"crawlerPolicy":"charge_only_when_agent_chooses_paid_resource"},{"id":"agent-revenue-audit","action":"charge_x402","method":"POST","route":"/api/agent-revenue-audit","url":"https://apexscout.ai/api/agent-revenue-audit","price":"$5.00","amountAtomicUsdc":"5000000","network":"eip155:8453","expectedUnpaidStatus":402,"expectedPaidStatus":200,"requestBodyRequired":true,"buyerControlledRetryOnly":true,"crawlerPolicy":"charge_paid_builder_audit_only_after_buyer_approval"},{"id":"builder-and-scope-preflight","action":"allow_free_preflight","routes":["/agent-revenue-audit-builder","/api/agent-revenue-audit-builder","/api/agent-revenue-audit-builder/action-pack","/buyer-payment-scope-check","/api/buyer-payment-scope-check","/buyer-agent-payment-safety","/api/buyer-agent-payment-safety"],"reason":"Preflight and safety checks reduce accidental spend and do not execute payment.","crawlerPolicy":"allow_no_spend_prep_surfaces","paidRetryRequired":false},{"id":"admin-and-private-surfaces","action":"block_public_access","routes":["/admin/*","/api/admin/*"],"reason":"Private operator surfaces are not public buyer-agent resources.","crawlerPolicy":"block","paidRetryAvailable":false},{"id":"third-party-outreach-and-catalog-crawl","action":"not_performed_by_apexscout","routes":[],"reason":"ApexScout does not scrape catalogs, contact third parties, create fake traffic, post, DM, email, or crawl competitors.","crawlerPolicy":"blocked_by_operating_boundary","paidRetryAvailable":false}],"crawlerAndAgentRules":{"allow":["Read public docs, manifests, policy files, OpenAPI, MCP metadata, proof pages, and no-spend preflight surfaces.","Use unpaid HTTP 402 as a route-health/payment-requirements signal, not as revenue."],"charge":["Charge only the existing one-cent proof route or the existing $5 Agent Revenue Audit route.","Require buyer-controlled x402 retry before any paid completion is counted."],"block":["Block admin/private surfaces from public policy.","Do not provide a paid bypass for scraping, third-party discovery, fake traffic, outreach, or buyer-level data."]},"edgeGatewayCandidate":{"readyToReview":true,"cloudflareRuleCreated":false,"firstRuleToMirror":"one-cent-proof","secondRuleToMirror":"agent-revenue-audit","rollbackRequirement":"Railway-origin x402 remains the fallback until each edge rule proves unpaid 402 and paid 200."},"noSpendBoundary":{"policyIsFree":true,"paymentAttemptedByPolicy":false,"paidRouteCalledByPolicy":false,"cloudflareApiCalled":false,"crawlerBillingCreated":false,"automaticSpending":false,"paidUpstreamCalls":false,"createsPrepareRequest":false,"createsScopeCheck":false,"createsActionIntent":false,"fakeTrafficCreated":false,"newPaidRouteAdded":false,"pricingChanged":false,"sellerWalletChanged":false,"settlementRailChanged":false},"privacy":{"aggregateOnly":true,"buyerLevelDataExposed":false,"rawBuyerInputStored":false,"rawGeneratedPayloadStored":false,"rawUserAgentsStored":false,"ipAddressesStored":false,"cookiesAdded":false,"sessionsAdded":false,"fingerprintingAdded":false},"safetyClaims":{"cloudflareEndorsementClaimed":false,"marketplaceEndorsementClaimed":false,"guaranteedRevenueClaimed":false,"tradingOrInvestmentAdvice":false,"buyerPaymentDelegatedToApexScout":false}}