Verdict Agent API

Autonomous growth investigation, paid programmatically.

Send a startup URL. Verdict performs a bounded, multi-page evidence investigation, grades the combined evidence, persists the report, and returns structured JSON for your agent to use.

Endpoint
POST /api/v2/audit
Price
$0.50 USDC
Network
Base
Protocol
x402 V2
Response
JSON

Protocol

One paid request, one investigation

The payment challenge is part of normal HTTP request handling. Audit work begins only after authorization succeeds.

01

Agent

A buyer needs structured growth intelligence.

02

POST

/api/v2/audit

03

HTTP 402

The server advertises payment requirements.

04

$0.50

USDC authorization on Base.

05

Investigate

Verdict performs bounded multi-page research.

06

JSON

The agent receives a persisted, structured result.

Contract

A deliberately small request surface

The request accepts one field: the public startup URL to investigate.

Request body

{
  "url": "https://example.com"
}

Response excerpt

{
  "reportId": "7c3f…91a2",
  "overallScore": 78,
  "company_name": "Example",
  "identity": {
    "company_name": "Example",
    "inferred_description": "Developer platform for autonomous workflows",
    "target_audience": "Engineering teams",
    "primary_cta": "Get Started Free"
  },
  "the_verdict": {
    "status": "Pass",
    "primary_constraint": "Self-serve pricing is hidden below the fold.",
    "highest_opportunity": "Expose transparent self-serve tiers directly on navigation.",
    "estimated_impact": "High"
  },
  "score_interpretation": "Strong growth foundation with clear ICP clarity and high conversion potential.",
  "priority_matrix": [
    {
      "task": "Add upfront pricing tiers",
      "why": "Reduces friction for developer evaluation",
      "impact": "High",
      "effort": "Low"
    }
  ],
  "pillars": {
    "positioning": {
      "confidence": "High",
      "reason": "Clear positioning and distinct ICP wedge.",
      "strengths": ["Unmistakable developer focus"],
      "weaknesses": ["Competitor comparison is absent"]
    },
    "conversion": {
      "confidence": "Medium",
      "reason": "Missing upfront pricing on primary landing page.",
      "strengths": ["Clear primary CTA"],
      "weaknesses": ["Hidden pricing"]
    }
  },
  "sources": [
    {
      "url": "https://example.com/",
      "path": "/",
      "role": "homepage",
      "category": "identity",
      "keyFindings": ["Clear value prop and primary CTA"]
    }
  ],
  "pagesInspected": 2,
  "pagesAccepted": 2,
  "stopReason": "sufficient",
  "evidenceCoverage": {
    "pagesTotal": 2,
    "pagesAcquired": 2,
    "pagesAccepted": 2,
    "charsTotal": 14200,
    "categories": { "identity": 1, "conversion": 1 }
  }
}

The full public result includes the overall Growth Readiness Score, qualitative pillar evaluations, source grounding, executive verdict, priority matrix, and evidence coverage metrics. It excludes scraped markdown, prompts, payment signatures, and private model reasoning.

Buyer

Call Verdict with the official x402 V2 client

The wrapper handles the initial 402 challenge, signs the advertised EVM payment, and retries the request.

npm install @x402/core@2.24 @x402/evm@2.24 @x402/fetch@2.24 viem
audit.ts
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const privateKey = process.env.EVM_PRIVATE_KEY as `0x${string}`;
const signer = privateKeyToAccount(privateKey);

const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));

const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const response = await fetchWithPayment("https://tryverdict.xyz/api/v2/audit", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ url: "https://example.com" }),
});

if (!response.ok) {
  throw new Error(`Verdict request failed: ${response.status}`);
}

const verdict = await response.json();
console.log(verdict);
Keep EVM_PRIVATE_KEY in a server-side secret manager. Never ship a payer key to browser code, logs, or source control.

Raw HTTP

Inspect the payment challenge

This curl command is intentionally unpaid. It demonstrates the initial request and should return HTTP 402 with payment requirements; it does not complete an audit.

curl -i -X POST https://tryverdict.xyz/api/v2/audit \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com"}'

Lifecycle

Payment and fulfillment

Verdict uses x402 V2's challenge-and-retry flow while keeping payment verification ahead of costly audit execution.

  1. 1Send the audit URL to the canonical endpoint.
  2. 2Receive HTTP 402 with x402 V2 payment requirements.
  3. 3Select the advertised Base payment option.
  4. 4Sign a USDC authorization in the buyer process.
  5. 5Retry the request with the payment signature.
  6. 6Verdict verifies payment before beginning the audit and settles successful fulfillment.
  7. 7Receive the JSON result and payment response metadata.

Product

What the agent buys

This is bounded investigation, not an exhaustive crawl. Verdict seeks enough useful evidence to produce a defensible growth-readiness assessment within fixed limits.

Acquires and preserves the startup homepage as primary evidence.

Discovers safe, same-site candidate pages without crawling the whole site.

Assesses evidence gaps and selects useful supporting pages.

Stops on sufficiency, planner completion, unavailable evidence, or a hard budget.

Caps pages, evidence characters, planning rounds, and gather time.

Grades the combined evidence and computes the overall Growth Readiness Score via fixed weights.

The public response reports pages inspected, pages accepted, evidence coverage, sources, and the stop reason so downstream agents can judge the investigation scope.