Buyer Agent Checkout Kit

Choose route. Hit 402. Pay. Retry for 200.

Buyer Agent Checkout Kit that shows agents the exact choose-route, unpaid-402, x402-payment, paid-200 flow before they spend.

Fast Path

The safest checkout sequence

Start cheap when uncertain. Only escalate when the proof gap is real.

Step 1

Call /api/conversion-route if the route is unclear.

Step 2

Start with /api/opportunity-check at $0.01 when the target may not deserve deeper spend yet.

Step 3

Use /api/company-intel at $0.05 when one named company can change outreach, approval, reliance, or escalation.

Step 4

Send the protected route unpaid and expect HTTP 402.

Step 5

Pay the listed route price with x402 and retry the same POST.

Step 6

Use /api/company-watch at $0.20 only when the same company should stay warm after the paid snapshot.

Pricing Ladder

$0.01 -> $0.05 -> $0.20 close path

The checkout path is built to convert serious named-company intent without forcing every buyer into the premium route.

Entry

/api/opportunity-check $0.01

Use when the target may not deserve more spend yet.

Core

/api/company-intel $0.05

Use when one named company deserves a quick trust snapshot.

Repeat

/api/company-watch $0.20

Use when the same company should stay warm after the paid snapshot.

Company Intel Close Path

When to pay the $0.05 route

Live traffic shows Company Intel carries the most demand and the biggest unpaid 402 leak, so the clearest revenue path is to route uncertain buyers down, close serious named-company buyers, then wake Company Watch only when repeat value is real.

Pay Company Intel when

  • The buyer can name the company.
  • The next action depends on trust posture, proof gaps, or confidence before contact or approval.
  • A $0.05 first-pass snapshot is enough to decide whether to stop, monitor, or escalate.

Do not pay Company Intel when

  • The buyer is still browsing categories or cannot name a target company.
  • Only one claim is the blocker; use Source Check instead.
  • The buyer already knows missing evidence could change a serious decision; use Deep Diligence Plan instead.

Company Watch trigger

Offer Company Watch after Company Intel only when the same named company is likely to matter again and the next useful spend should be triggered by meaningful change.

Copy-Paste

Agent builder snippets

These snippets intentionally show the unpaid 402 first. That is the expected x402 checkout handoff, not a service failure.

JavaScript

const baseUrl = "https://apexscout.ai";

const route = await fetch(`${baseUrl}/api/conversion-route`, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    "objective": "I need a fast trust snapshot on one named company before outreach.",
    "subjectType": "company",
    "decisionType": "outreach",
    "hasNamedCompany": true,
    "wantsCheapestFirst": false,
    "hasSingleClaim": false,
    "seriousDecision": false
  }),
}).then((res) => res.json());

const unpaid = await fetch(`${baseUrl}${route.recommendation.path}`, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    "companyName": "Alpine Foods",
    "website": "https://example.com",
    "industry": "Food distribution",
    "geography": "United States",
    "researchFocus": "growth",
    "knownClaims": [
      "Regional specialty food distributor",
      "Expanding private-label program"
    ],
    "knownSignals": [
      "Hiring for operations and sales",
      "Launching new product categories"
    ],
    "questions": [
      "How concentrated is demand around a few buyers?",
      "What trust signals matter most to partners?"
    ]
  }),
});

if (unpaid.status === 402) {
  const challenge = await unpaid.json();
  console.log(challenge.payNow, challenge.ifUnsure);
  // Pay the listed route price with your x402 client, then retry the same POST for HTTP 200.
}

Python

import requests

base_url = "https://apexscout.ai"
route_payload = {
  "objective": "I need a fast trust snapshot on one named company before outreach.",
  "subjectType": "company",
  "decisionType": "outreach",
  "hasNamedCompany": true,
  "wantsCheapestFirst": false,
  "hasSingleClaim": false,
  "seriousDecision": false
}
company_payload = {
  "companyName": "Alpine Foods",
  "website": "https://example.com",
  "industry": "Food distribution",
  "geography": "United States",
  "researchFocus": "growth",
  "knownClaims": [
    "Regional specialty food distributor",
    "Expanding private-label program"
  ],
  "knownSignals": [
    "Hiring for operations and sales",
    "Launching new product categories"
  ],
  "questions": [
    "How concentrated is demand around a few buyers?",
    "What trust signals matter most to partners?"
  ]
}

route = requests.post(f"{base_url}/api/conversion-route", json=route_payload).json()
unpaid = requests.post(f"{base_url}{route['recommendation']['path']}", json=company_payload)

if unpaid.status_code == 402:
    challenge = unpaid.json()
    print(challenge['payNow'])
    print(challenge['ifUnsure'])
    # Pay with your x402 client, then retry the same POST for HTTP 200.

x402 paid retry

Wrap fetch with an x402 client, attach payment, retry the exact same POST, and expect HTTP 200 with structured Company Intel JSON.

import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const baseUrl = "https://apexscout.ai";
const payload = {
  "companyName": "Alpine Foods",
  "website": "https://example.com",
  "industry": "Food distribution",
  "geography": "United States",
  "researchFocus": "growth",
  "knownClaims": [
    "Regional specialty food distributor",
    "Expanding private-label program"
  ],
  "knownSignals": [
    "Hiring for operations and sales",
    "Launching new product categories"
  ],
  "questions": [
    "How concentrated is demand around a few buyers?",
    "What trust signals matter most to partners?"
  ]
};

const client = new x402Client();
registerExactEvmScheme(client, {
  signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY),
});

const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const paid = await fetchWithPayment(`${baseUrl}/api/company-intel`, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify(payload),
});

console.log(paid.status, await paid.json());

MCP Agent Flow

  • 1. Call choose_best_route with the buyer objective.
  • 2. If the recommendation is still unclear, call check_opportunity first.
  • 3. If the recommendation is Company Intel, call create_company_intel with the same named-company payload.
  • 4. Expect a structured 402 if the HTTP route is unpaid, then use the x402 payment client to retry for 200.
  • 5. Read commercial.conversionPlan in the paid response before buying another route.

Expected 402

What the paywall should look like

The body tells the buyer agent whether to pay now, route down, or use the free route advisor before spending.

Key fields

  • payNow
  • whyPayNow
  • decisionGate
  • ifUnsure
  • expectedPaidResult
  • paidOutputPreview
  • paymentDecision
  • conversionClosePath
  • recoveryPlan
  • agentInstruction

Current network: eip155:8453

Facilitator: https://api.cdp.coinbase.com/platform/v2/x402

Sample unpaid response

{
  "error": "payment_required",
  "message": "Payment is required before calling /api/company-intel.",
  "paymentRequiredNotError": true,
  "x402Version": 2,
  "resource": {
    "url": "https://agent-research-brief-api-production.up.railway.app/api/company-intel",
    "description": "Agent Research Desk Company Intel is a paid Agent Research Desk / ApexScout JSON API. Fast x402 company trust snapshot for AI agents screening one named company before outreach, approval, reliance, or deeper diligence. Use it when: Use this for a quick company snapshot before outreach, approval, or a deeper trust review. Do not use it when: Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof. Price: $0.05 USDC via x402 on eip155:8453. Buyer intent: Buy when one named company needs a quick trust and decision snapshot. Category: Company trust intelligence. Search terms: Agent Research Desk, company intel, company trust API, AI agent due diligence, x402, Base mainnet, vendor screening. Output: Decision-style company trust snapshot with a next-step plan when you already know the target. This service returns first-pass trust and diligence output, not final legal, financial, compliance, or investment advice.",
    "mimeType": "application/json"
  },
  "accepts": [
    {
      "scheme": "exact",
      "price": "$0.05",
      "amount": "50000",
      "network": "eip155:8453",
      "payTo": "0x83cE8ec409Ef94F7d909ecDCd8cC578741b0231D",
      "description": "Agent Research Desk Company Intel is a paid Agent Research Desk / ApexScout JSON API. Fast x402 company trust snapshot for AI agents screening one named company before outreach, approval, reliance, or deeper diligence. Use it when: Use this for a quick company snapshot before outreach, approval, or a deeper trust review. Do not use it when: Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof. Price: $0.05 USDC via x402 on eip155:8453. Buyer intent: Buy when one named company needs a quick trust and decision snapshot. Category: Company trust intelligence. Search terms: Agent Research Desk, company intel, company trust API, AI agent due diligence, x402, Base mainnet, vendor screening. Output: Decision-style company trust snapshot with a next-step plan when you already know the target. This service returns first-pass trust and diligence output, not final legal, financial, compliance, or investment advice.",
      "mimeType": "application/json"
    }
  ],
  "description": "Agent Research Desk Company Intel is a paid Agent Research Desk / ApexScout JSON API. Fast x402 company trust snapshot for AI agents screening one named company before outreach, approval, reliance, or deeper diligence. Use it when: Use this for a quick company snapshot before outreach, approval, or a deeper trust review. Do not use it when: Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof. Price: $0.05 USDC via x402 on eip155:8453. Buyer intent: Buy when one named company needs a quick trust and decision snapshot. Category: Company trust intelligence. Search terms: Agent Research Desk, company intel, company trust API, AI agent due diligence, x402, Base mainnet, vendor screening. Output: Decision-style company trust snapshot with a next-step plan when you already know the target. This service returns first-pass trust and diligence output, not final legal, financial, compliance, or investment advice.",
  "mimeType": "application/json",
  "paymentRequirements": {
    "x402Version": 2,
    "resource": {
      "url": "https://agent-research-brief-api-production.up.railway.app/api/company-intel",
      "description": "Agent Research Desk Company Intel is a paid Agent Research Desk / ApexScout JSON API. Fast x402 company trust snapshot for AI agents screening one named company before outreach, approval, reliance, or deeper diligence. Use it when: Use this for a quick company snapshot before outreach, approval, or a deeper trust review. Do not use it when: Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof. Price: $0.05 USDC via x402 on eip155:8453. Buyer intent: Buy when one named company needs a quick trust and decision snapshot. Category: Company trust intelligence. Search terms: Agent Research Desk, company intel, company trust API, AI agent due diligence, x402, Base mainnet, vendor screening. Output: Decision-style company trust snapshot with a next-step plan when you already know the target. This service returns first-pass trust and diligence output, not final legal, financial, compliance, or investment advice.",
      "mimeType": "application/json"
    },
    "accepts": [
      {
        "scheme": "exact",
        "price": "$0.05",
        "amount": "50000",
        "network": "eip155:8453",
        "payTo": "0x83cE8ec409Ef94F7d909ecDCd8cC578741b0231D",
        "description": "Agent Research Desk Company Intel is a paid Agent Research Desk / ApexScout JSON API. Fast x402 company trust snapshot for AI agents screening one named company before outreach, approval, reliance, or deeper diligence. Use it when: Use this for a quick company snapshot before outreach, approval, or a deeper trust review. Do not use it when: Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof. Price: $0.05 USDC via x402 on eip155:8453. Buyer intent: Buy when one named company needs a quick trust and decision snapshot. Category: Company trust intelligence. Search terms: Agent Research Desk, company intel, company trust API, AI agent due diligence, x402, Base mainnet, vendor screening. Output: Decision-style company trust snapshot with a next-step plan when you already know the target. This service returns first-pass trust and diligence output, not final legal, financial, compliance, or investment advice.",
        "mimeType": "application/json"
      }
    ],
    "description": "Agent Research Desk Company Intel is a paid Agent Research Desk / ApexScout JSON API. Fast x402 company trust snapshot for AI agents screening one named company before outreach, approval, reliance, or deeper diligence. Use it when: Use this for a quick company snapshot before outreach, approval, or a deeper trust review. Do not use it when: Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof. Price: $0.05 USDC via x402 on eip155:8453. Buyer intent: Buy when one named company needs a quick trust and decision snapshot. Category: Company trust intelligence. Search terms: Agent Research Desk, company intel, company trust API, AI agent due diligence, x402, Base mainnet, vendor screening. Output: Decision-style company trust snapshot with a next-step plan when you already know the target. This service returns first-pass trust and diligence output, not final legal, financial, compliance, or investment advice.",
    "mimeType": "application/json"
  },
  "plainEnglish": "HTTP 402 means the x402 paywall is working. It is not a service outage.",
  "headline": "Company Intel is the main $0.05 named-company trust snapshot. Pay with x402 and retry this same POST only if one company can change the next action.",
  "product": "company-intel",
  "routeName": "Company Intel",
  "routeDescription": "Decision-style company trust snapshot with a next-step plan when you already know the target.",
  "listedPrice": "$0.05",
  "price": "$0.05",
  "cheapestUsefulFirstRoute": {
    "path": "/api/opportunity-check",
    "price": "$0.01",
    "why": "Use this when the buyer is not sure the target deserves a wider diligence route yet."
  },
  "payNow": {
    "action": "Pay $0.05 with x402 and retry the same POST to /api/company-intel.",
    "route": "/api/company-intel",
    "listedPrice": "$0.05",
    "network": "eip155:8453",
    "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402",
    "sellerWallet": "visible only in x402 payment requirements and internal operator records",
    "sellerWalletLast6": "b0231D",
    "sellerWalletPublic": false,
    "expectedStatus": 200,
    "expectedResult": "Structured JSON with summary, trust signals, risks, next actions, source attribution, decision signals, and a conversion plan for the next justified paid step.",
    "reason": "Pay now when one named company is already important enough that the result can change contact, approval, reliance, monitoring, or escalation."
  },
  "copyPasteX402PaidRetry": {
    "command": "npx awal@2.8.0 x402 pay \"https://agent-research-brief-api-production.up.railway.app/api/company-intel\" \\\n  -X POST \\\n  -h '{\"Content-Type\":\"application/json\"}' \\\n  -d '{\n  \"companyName\": \"Alpine Foods\",\n  \"website\": \"https://example.com\",\n  \"industry\": \"Food distribution\",\n  \"geography\": \"United States\",\n  \"researchFocus\": \"growth\",\n  \"knownClaims\": [\n    \"Regional specialty food distributor\",\n    \"Expanding private-label program\"\n  ],\n  \"knownSignals\": [\n    \"Hiring for operations and sales\",\n    \"Launching new product categories\"\n  ],\n  \"questions\": [\n    \"How concentrated is demand around a few buyers?\",\n    \"What trust signals matter most to partners?\"\n  ]\n}' \\\n  --max-amount 50000 \\\n  --json",
    "maxAmountAtomicUnits": "50000",
    "samePayloadRequired": true,
    "expectedStatus": 200,
    "warning": "Run this only from a buyer-controlled wallet runtime. This service does not execute payment for you."
  },
  "whyPayNow": [
    "Pay now when one named company is already important enough that the result can change contact, approval, reliance, monitoring, or escalation.",
    "The paid retry returns the route's structured JSON instead of another discovery page.",
    "The paid response includes commercial.conversionPlan so the buyer agent knows whether to stop, repeat, or escalate."
  ],
  "decisionGate": "Pay Company Intel only if one named company can change the next action. If the target is still vague, step down to the $0.01 Opportunity Check.",
  "ifUnsure": {
    "routeAdvisorPage": "/start",
    "routeAdvisorApiPath": "/api/route-advisor",
    "conversionRouteApiPath": "/api/conversion-route",
    "cheapestStartPath": "/api/opportunity-check",
    "cheapestStartPrice": "$0.01",
    "rule": "If the buyer is not sure this target deserves more spend, call the free route advisor or start with the $0.01 Opportunity Check."
  },
  "expectedPaidResult": "Structured JSON with summary, trust signals, risks, next actions, source attribution, decision signals, and a conversion plan for the next justified paid step.",
  "expectedResponseShape": "Structured JSON with summary, trust signals, risks, next actions, source attribution, decision signals, and a conversion plan for the next justified paid step.",
  "suggestedNextRouteAfterPayment": {
    "endpoint": "company-watch",
    "title": "Company Watch",
    "path": "/api/company-watch",
    "listedPrice": "$0.20",
    "reason": "Use this to turn a useful one-time result into a repeat company-monitoring loop.",
    "copyPastePayload": {
      "companyName": "Alpine Foods",
      "website": "https://example.com",
      "industry": "Food distribution",
      "geography": "United States",
      "researchFocus": "growth",
      "knownClaims": [
        "Regional specialty food distributor",
        "Expanding private-label program"
      ],
      "knownSignals": [
        "Hiring for operations and sales",
        "Launching new product categories"
      ],
      "questions": [
        "How concentrated is demand around a few buyers?",
        "What trust signals matter most to partners?"
      ],
      "watchGoal": "Keep this named company under a live trust watch until the next approval, outreach, or diligence move is obvious.",
      "decisionHorizon": "this-month",
      "alertSensitivity": "balanced"
    }
  },
  "docsUrl": "/docs.json",
  "buyerQuickstartPath": "/buyer-quickstart",
  "buyerQuickstartApiPath": "/api/buyer-quickstart",
  "checkoutUrl": "/checkout",
  "testbenchUrl": "/instant-x402",
  "feedbackUrl": "/api/agent-feedback",
  "paidRetryHelpUrl": "/402-rescue",
  "paidOutputPreview": [
    "decisionCard.verdict: a plain next-action read for the named company.",
    "signals.watchItems: what to keep watching if the company stays warm.",
    "risks and opportunities: the practical reasons to slow down, proceed, or escalate.",
    "sourceAttribution: supplied and recommended sources separated clearly.",
    "commercial.conversionPlan: whether to stop, buy Company Watch, or escalate to a proof route."
  ],
  "paymentDecision": {
    "recommendedAction": "pay_named_company_snapshot",
    "plainEnglish": "Pay $0.05 only when one named company can change outreach, approval, reliance, monitoring, or escalation.",
    "payIf": "The buyer has one named company and a real next action depends on a quick trust read.",
    "routeDownIf": "If the target is vague or the buyer is just browsing, use /api/opportunity-check at $0.01 first.",
    "stopIf": "Stop if the company cannot change any next action.",
    "afterPaid": "If the company stays important after the snapshot, use /api/company-watch instead of rerunning the same one-shot report."
  },
  "conversionClosePath": {
    "name": "402 Conversion Rescue",
    "primaryDecision": "pay_named_company_snapshot",
    "shortestPath": "If this route fits, pay $0.05 and retry this exact POST; if not, step down to /api/opportunity-check.",
    "exactRetry": {
      "method": "POST",
      "path": "/api/company-intel",
      "samePayloadRequired": true,
      "x402PaymentRequired": true,
      "expectedStatus": 200
    },
    "routeDown": {
      "path": "/api/opportunity-check",
      "listedPrice": "$0.01",
      "useWhen": "If the target is vague or the buyer is just browsing, use /api/opportunity-check at $0.01 first."
    },
    "closeCopy": "Named company? Real next action? Pay $0.05 and retry Company Intel. Still vague? Start with $0.01 Opportunity Check."
  },
  "firstPaidClosePlan": {
    "closeQuestion": "Can this one named company change contact, approval, reliance, monitoring, or escalation?",
    "payIf": "The buyer has one named company and a real next action depends on a quick trust read.",
    "routeDownIf": "If the target is vague or the buyer is just browsing, use /api/opportunity-check at $0.01 first.",
    "stopIf": "Stop if the company cannot change any next action.",
    "exactRetry": {
      "method": "POST",
      "path": "/api/company-intel",
      "samePayloadRequired": true,
      "x402PaymentRequired": true,
      "expectedStatus": 200
    },
    "buyerFacingCopy": "Named company? Real next action? Pay $0.05 and retry Company Intel. Still vague? Start with $0.01 Opportunity Check.",
    "successDefinition": "One paid HTTP 200 completion with useful structured JSON, not repeated unpaid 402 attempts.",
    "noSpendAlternatives": [
      "/api/conversion-route",
      "/first-paid-call",
      "/examples"
    ],
    "paymentIntentApi": "/api/payment-intent?route=%2Fapi%2Fcompany-intel",
    "paidRetryCommand": "npx awal@2.8.0 x402 pay \"https://agent-research-brief-api-production.up.railway.app/api/company-intel\" \\\n  -X POST \\\n  -h '{\"Content-Type\":\"application/json\"}' \\\n  -d '{\n  \"companyName\": \"Alpine Foods\",\n  \"website\": \"https://example.com\",\n  \"industry\": \"Food distribution\",\n  \"geography\": \"United States\",\n  \"researchFocus\": \"growth\",\n  \"knownClaims\": [\n    \"Regional specialty food distributor\",\n    \"Expanding private-label program\"\n  ],\n  \"knownSignals\": [\n    \"Hiring for operations and sales\",\n    \"Launching new product categories\"\n  ],\n  \"questions\": [\n    \"How concentrated is demand around a few buyers?\",\n    \"What trust signals matter most to partners?\"\n  ]\n}' \\\n  --max-amount 50000 \\\n  --json"
  },
  "marketDiscovery": {
    "listingTitle": "Agent Research Desk Company Intel",
    "category": "Company trust intelligence",
    "buyerIntent": "Buy when one named company needs a quick trust and decision snapshot.",
    "keywords": [
      "Agent Research Desk",
      "company intel",
      "company trust API",
      "AI agent due diligence",
      "x402",
      "Base mainnet",
      "vendor screening"
    ],
    "useCases": [
      "Company snapshot before outreach",
      "Trust posture before approval",
      "Named-account diligence pre-screen"
    ]
  },
  "expectedInput": [
    "companyName"
  ],
  "useThisWhen": "Use this for a quick company snapshot before outreach, approval, or a deeper trust review.",
  "doNotUseWhen": "Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof.",
  "retryThisRouteWhen": "Retry this same route when you already know this is the right question and you want the structured JSON for this route.",
  "firstRouteFallback": {
    "endpoint": "opportunity-check",
    "path": "/api/opportunity-check",
    "listedPrice": "$0.01",
    "reason": "If you are not yet sure the target deserves more spend, start with the cheapest screen first."
  },
  "revenuePath": {
    "page": "/revenue-path",
    "apiPath": "/api/revenue-path",
    "reason": "Use this free planner when you want one exact checkout sequence before deciding which paid route to retry with x402."
  },
  "routeAdvisorPath": "/start",
  "trustPreviewPath": "/trust-preview",
  "routeExplainPath": "/company-intel",
  "whyBuyThisRouteFirst": "Buy Company Intel first when you already have one named company and need a quick trust snapshot before spending on a deeper route.",
  "whatYouGet": [
    "A fast named-company trust snapshot before outreach, approval, or deeper diligence.",
    "Structured signals, risks, opportunities, watch items, and next actions in one JSON response.",
    "A clearer recommendation for the next paid route if the first snapshot surfaces proof gaps.",
    "A decision card, source attribution, and conversion plan that tell the buyer agent whether to stop, watch, or escalate."
  ],
  "companyIntelConversionPack": {
    "name": "Company Intel conversion pack",
    "goal": "Turn serious named-company interest into one paid $0.05 completion, then into Company Watch only when repeat value is real.",
    "whyThisRouteNow": "Company Intel is the cleanest first paid route when the buyer already has one named company and needs a fast trust snapshot before outreach, approval, reliance, or escalation.",
    "payWhen": [
      "The company is named.",
      "The output can change whether the buyer contacts, approves, relies on, monitors, or escalates that company.",
      "A first-pass trust snapshot is enough before a deeper proof map."
    ],
    "routeDownWhen": [
      "The target may not deserve more spend yet.",
      "The buyer cannot name the company.",
      "The buyer only needs to test the payment handoff first."
    ],
    "routeDown": {
      "endpoint": "opportunity-check",
      "path": "/api/opportunity-check",
      "listedPrice": "$0.01",
      "reason": "Use the $0.01 screen before Company Intel when the buyer is still qualifying the target or only wants to test the payment handoff."
    },
    "payThis": {
      "endpoint": "company-intel",
      "path": "/api/company-intel",
      "listedPrice": "$0.05",
      "expectedStatus": 200,
      "reason": "Use the $0.05 route when one named company already matters and the answer can change the next action."
    },
    "paidOutputPreview": [
      "decisionCard.verdict for a plain proceed / slow down / escalate read.",
      "trust signals, risk flags, opportunities, and watch items for the named company.",
      "source attribution that separates supplied information from recommended follow-up sources.",
      "commercial.conversionPlan so the buyer agent knows whether to stop, buy Company Watch, or escalate."
    ],
    "repeatRevenueStep": {
      "endpoint": "company-watch",
      "path": "/api/company-watch",
      "listedPrice": "$0.20",
      "trigger": "Use after Company Intel only when the same company will matter again and change over time is useful."
    },
    "paymentSteps": [
      "Send this POST unpaid and read the structured HTTP 402 body.",
      "If Company Intel fits, pay $0.05 with x402.",
      "Retry this exact POST with the x402 payment header.",
      "Expect HTTP 200 with structured Company Intel JSON.",
      "Read commercial.conversionPlan before buying Company Watch or a deeper proof route."
    ]
  },
  "recoveryPlan": {
    "mode": "402-recovery",
    "goal": "Convert an unpaid challenge into the lowest-friction paid completion without pushing the buyer into the wrong route.",
    "payNow": {
      "action": "Pay $0.05 with x402 and retry the same POST to /api/company-intel.",
      "route": "/api/company-intel",
      "listedPrice": "$0.05",
      "network": "eip155:8453",
      "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402",
      "sellerWallet": "visible only in x402 payment requirements and internal operator records",
      "sellerWalletLast6": "b0231D",
      "sellerWalletPublic": false,
      "expectedStatus": 200,
      "expectedResult": "Structured JSON with summary, trust signals, risks, next actions, source attribution, decision signals, and a conversion plan for the next justified paid step.",
      "reason": "Pay now when one named company is already important enough that the result can change contact, approval, reliance, monitoring, or escalation."
    },
    "currentRoute": {
      "endpoint": "company-intel",
      "title": "Company Intel",
      "path": "/api/company-intel",
      "listedPrice": "$0.05",
      "retryWhen": "Use this for a quick company snapshot before outreach, approval, or a deeper trust review.",
      "doNotRetryWhen": "Do not use this when the blocker is a single claim, a vendor-control question, or a decision that hinges on missing proof.",
      "copyPastePayload": {
        "companyName": "Alpine Foods",
        "website": "https://example.com",
        "industry": "Food distribution",
        "geography": "United States",
        "researchFocus": "growth",
        "knownClaims": [
          "Regional specialty food distributor",
          "Expanding private-label program"
        ],
        "knownSignals": [
          "Hiring for operations and sales",
          "Launching new product categories"
        ],
        "questions": [
          "How concentrated is demand around a few buyers?",
          "What trust signals matter most to partners?"
        ]
      }
    },
    "paidOutputPreview": [
      "decisionCard.verdict: a plain next-action read for the named company.",
      "signals.watchItems: what to keep watching if the company stays warm.",
      "risks and opportunities: the practical reasons to slow down, proceed, or escalate.",
      "sourceAttribution: supplied and recommended sources separated clearly.",
      "commercial.conversionPlan: whether to stop, buy Company Watch, or escalate to a proof route."
    ],
    "paymentDecision": {
      "recommendedAction": "pay_named_company_snapshot",
      "plainEnglish": "Pay $0.05 only when one named company can change outreach, approval, reliance, monitoring, or escalation.",
      "payIf": "The buyer has one named company and a real next action depends on a quick trust read.",
      "routeDownIf": "If the target is vague or the buyer is just browsing, use /api/opportunity-check at $0.01 first.",
      "stopIf": "Stop if the company cannot change any next action.",
      "afterPaid": "If the company stays important after the snapshot, use /api/company-watch instead of rerunning the same one-shot report."
    },
    "conversionClosePath": {
      "name": "402 Conversion Rescue",
      "primaryDecision": "pay_named_company_snapshot",
      "shortestPath": "If this route fits, pay $0.05 and retry this exact POST; if not, step down to /api/opportunity-check.",
      "exactRetry": {
        "method": "POST",
        "path": "/api/company-intel",
        "samePayloadRequired": true,
        "x402PaymentRequired": true,
        "expectedStatus": 200
      },
      "routeDown": {
        "path": "/api/opportunity-check",
        "listedPrice": "$0.01",
        "useWhen": "If the target is vague or the buyer is just browsing, use /api/opportunity-check at $0.01 first."
      },
      "closeCopy": "Named company? Real next action? Pay $0.05 and retry Company Intel. Still vague? Start with $0.01 Opportunity Check."
    },
    "oneSentenceClose": "If one named company can change what happens next, pay $0.05 and retry Company Intel; if not, step down to Opportunity Check.",
    "cheaperStart": {
      "endpoint": "opportunity-check",
      "title": "Opportunity Check",
      "path": "/api/opportunity-check",
      "listedPrice": "$0.01",
      "reason": "Use this when the buyer is not sure the target deserves more spend yet.",
      "copyPastePayload": {
        "subject": "Agent trust scoring for crypto vendors",
        "buyer": "Crypto fund operator",
        "marketType": "vendor",
        "geography": "United States",
        "goal": "Decide whether this topic is strong enough to package into a deeper diligence offer.",
        "knownSignals": [
          "Operators keep asking for a faster first-pass trust screen before pilots",
          "Funds want a lightweight way to compare agent vendors before deeper diligence"
        ],
        "constraints": [
          "Keep the first offer lightweight",
          "Do not assume the buyer already trusts agent vendors"
        ]
      }
    },
    "nextPaidStepAfterSuccess": {
      "endpoint": "company-watch",
      "title": "Company Watch",
      "path": "/api/company-watch",
      "listedPrice": "$0.20",
      "reason": "Use this to turn a useful one-time result into a repeat company-monitoring loop.",
      "copyPastePayload": {
        "companyName": "Alpine Foods",
        "website": "https://example.com",
        "industry": "Food distribution",
        "geography": "United States",
        "researchFocus": "growth",
        "knownClaims": [
          "Regional specialty food distributor",
          "Expanding private-label program"
        ],
        "knownSignals": [
          "Hiring for operations and sales",
          "Launching new product categories"
        ],
        "questions": [
          "How concentrated is demand around a few buyers?",
          "What trust signals matter most to partners?"
        ],
        "watchGoal": "Keep this named company under a live trust watch until the next approval, outreach, or diligence move is obvious.",
        "decisionHorizon": "this-month",
        "alertSensitivity": "balanced"
      }
    },
    "freePlanningPaths": {
      "routeAdvisor": "/start",
      "routeAdvisorApi": "/api/route-advisor",
      "conversionRouteApi": "/api/conversion-route",
      "revenuePath": "/revenue-path",
      "revenuePathApi": "/api/revenue-path",
      "docs": "/docs.json",
      "quickstart": "/agent-quickstart.json"
    },
    "paymentFlow": {
      "step1": "Send the POST request without payment and read this structured 402 challenge.",
      "step2": "Confirm the route can change the next action, then use the listed route price and x402 client to attach payment.",
      "step3": "Retry the same request with the x402 payment header.",
      "step4": "Expect HTTP 200 with structured JSON if payment verifies and settles."
    },
    "agentInstruction": "If the buyer is uncertain, call /api/conversion-route or the cheaperStart route first. If the buyer already knows this route fits, pay the listed price and retry currentRoute with x402 payment. After a useful paid result, offer nextPaidStepAfterSuccess only when it matches the decision.",
    "decisionRule": "Pay this route only when the output can change the next action. If it cannot, route down to Opportunity Check or use the free route advisor first.",
    "recoveryReason": "Company Intel has the most unpaid pressure. The recovery path should either close the $0.05 named-company snapshot or deliberately step the buyer down to the $0.01 screen before they bounce."
  },
  "agentInstruction": "If the buyer has one named company and the result can change the next action, pay $0.05 and retry this exact POST with x402. If the buyer is still unsure, route down to /api/opportunity-check or call /api/conversion-route before spending.",
  "docsPath": "/docs.json",
  "quickstartPath": "/agent-quickstart.json",
  "trustBoundary": "This service returns first-pass trust and diligence output, not final legal, financial, compliance, or investment advice."
}

Quickstart JSON

Machine-readable checkout plan

Buyer agents can inspect this direct JSON surface before paying.

{
  "routeAdvisor": "/api/conversion-route",
  "conversionChecklist": [
    "Inspect /docs.json, /agent-capabilities.json, or /agent-quickstart.json.",
    "Call /api/conversion-route when the buyer objective could fit more than one paid route.",
    "Use /api/opportunity-check at $0.01 when the target may not deserve deeper spend yet.",
    "Send the chosen protected POST unpaid and read the structured HTTP 402 body.",
    "Pay the listed route price with x402 and retry the same POST for HTTP 200.",
    "Use commercial.conversionPlan in the paid response to decide whether to stop, repeat, or escalate."
  ],
  "paywallDecisionRules": {
    "payNow": "Pay the challenged route when the route purpose exactly matches the buyer's current blocker and the output can change the next action.",
    "routeDown": "Use /api/opportunity-check first when the target, urgency, or proof gap is still uncertain.",
    "routeAdvisor": "Use /api/conversion-route when the buyer knows the objective but not the right endpoint.",
    "stop": "Do not buy a deeper route when the previous output did not surface a concrete proof gap, decision, or follow-on action."
  },
  "companyIntelClosePath": {
    "name": "$0.01 -> $0.05 -> $0.20 named-company close path",
    "why": "Live traffic shows Company Intel carries the most demand and the biggest unpaid 402 leak, so the clearest revenue path is to route uncertain buyers down, close serious named-company buyers, then wake Company Watch only when repeat value is real.",
    "steps": [
      {
        "route": "/api/opportunity-check",
        "price": "$0.01",
        "useWhen": "The target may not deserve more spend yet.",
        "payload": {
          "subject": "Agent trust scoring for crypto vendors",
          "buyer": "Crypto fund operator",
          "marketType": "vendor",
          "geography": "United States",
          "goal": "Decide whether this topic is strong enough to package into a deeper diligence offer.",
          "knownSignals": [
            "Operators keep asking for a faster first-pass trust screen before pilots",
            "Funds want a lightweight way to compare agent vendors before deeper diligence"
          ],
          "constraints": [
            "Keep the first offer lightweight",
            "Do not assume the buyer already trusts agent vendors"
          ]
        }
      },
      {
        "route": "/api/company-intel",
        "price": "$0.05",
        "useWhen": "One named company could change outreach, approval, reliance, or escalation.",
        "payload": {
          "companyName": "Alpine Foods",
          "website": "https://example.com",
          "industry": "Food distribution",
          "geography": "United States",
          "researchFocus": "growth",
          "knownClaims": [
            "Regional specialty food distributor",
            "Expanding private-label program"
          ],
          "knownSignals": [
            "Hiring for operations and sales",
            "Launching new product categories"
          ],
          "questions": [
            "How concentrated is demand around a few buyers?",
            "What trust signals matter most to partners?"
          ]
        }
      },
      {
        "route": "/api/company-watch",
        "price": "$0.20",
        "useWhen": "The same company will matter again and change over time is worth monitoring.",
        "payload": {
          "companyName": "Alpine Foods",
          "website": "https://example.com",
          "industry": "Food distribution",
          "geography": "United States",
          "researchFocus": "growth",
          "knownClaims": [
            "Regional specialty food distributor",
            "Expanding private-label program"
          ],
          "knownSignals": [
            "Hiring for operations and sales",
            "Launching new product categories"
          ],
          "questions": [
            "How concentrated is demand around a few buyers?",
            "What trust signals matter most to partners?"
          ],
          "watchGoal": "Keep this named company under a live trust watch until the next approval, outreach, or diligence move is obvious.",
          "decisionHorizon": "this-month",
          "alertSensitivity": "balanced"
        }
      }
    ],
    "payCompanyIntelWhen": [
      "The buyer can name the company.",
      "The next action depends on trust posture, proof gaps, or confidence before contact or approval.",
      "A $0.05 first-pass snapshot is enough to decide whether to stop, monitor, or escalate."
    ],
    "doNotPayCompanyIntelWhen": [
      "The buyer is still browsing categories or cannot name a target company.",
      "Only one claim is the blocker; use Source Check instead.",
      "The buyer already knows missing evidence could change a serious decision; use Deep Diligence Plan instead."
    ],
    "companyWatchTrigger": "Offer Company Watch after Company Intel only when the same named company is likely to matter again and the next useful spend should be triggered by meaningful change."
  },
  "buyerPaymentQuickstart": {
    "targetRoute": "/api/company-intel",
    "unpaidFirst": "Send the same POST without payment first. HTTP 402 means the paywall is working and the body explains whether to pay, route down, or call /api/conversion-route.",
    "paidRetry": "Wrap fetch with an x402 client, attach payment, retry the exact same POST, and expect HTTP 200 with structured Company Intel JSON.",
    "environmentVariables": [
      "EVM_PRIVATE_KEY"
    ],
    "javascriptX402Fetch": "import { x402Client, wrapFetchWithPayment } from \"@x402/fetch\";\nimport { registerExactEvmScheme } from \"@x402/evm/exact/client\";\nimport { privateKeyToAccount } from \"viem/accounts\";\n\nconst baseUrl = \"https://apexscout.ai\";\nconst payload = {\n  \"companyName\": \"Alpine Foods\",\n  \"website\": \"https://example.com\",\n  \"industry\": \"Food distribution\",\n  \"geography\": \"United States\",\n  \"researchFocus\": \"growth\",\n  \"knownClaims\": [\n    \"Regional specialty food distributor\",\n    \"Expanding private-label program\"\n  ],\n  \"knownSignals\": [\n    \"Hiring for operations and sales\",\n    \"Launching new product categories\"\n  ],\n  \"questions\": [\n    \"How concentrated is demand around a few buyers?\",\n    \"What trust signals matter most to partners?\"\n  ]\n};\n\nconst client = new x402Client();\nregisterExactEvmScheme(client, {\n  signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY),\n});\n\nconst fetchWithPayment = wrapFetchWithPayment(fetch, client);\nconst paid = await fetchWithPayment(`${baseUrl}/api/company-intel`, {\n  method: \"POST\",\n  headers: { \"content-type\": \"application/json\" },\n  body: JSON.stringify(payload),\n});\n\nconsole.log(paid.status, await paid.json());",
    "noSecretWarning": "Never paste a private key into public docs, prompts, or browser forms. Use an environment variable in the buyer agent runtime."
  }
}