# Trust402 Procurement Quote

> Trust402 Procurement Quote is a paid API for AI agents from trust402.vercel.app, paid per call via x402, $0.04/call, status unknown (last checked 2026-09-14).

Generates a concrete quote and approval payload for purchasing multiple x402 resources within a budget, without actually executing any payments.

## Facts

- Endpoint: POST https://trust402.vercel.app/api/procurement/quote
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/trust402-procurement-quote-78d4b64d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_5BUpidll5SC2k-Z7Ua5A-

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability trust402-procurement-quote-78d4b64d -d '<json body>'
```

Example prompt: I want to buy access to these three x402 endpoints for data enrichment — my goal is 'enrich lead profiles', my total budget is $2.00, and here are the candidate URLs with their prices. Can you generate a quote and approval payload without actually spending anything?

## When to prefer this

Use this endpoint when an agent needs to plan and review a multi-resource x402 purchase before committing funds — especially when working with a fixed budget across heterogeneous candidate endpoints. Prefer this over the single-endpoint probe when you have 2–10 candidate resources and need a ranked, cost-bounded selection with an approval artifact. Choose this over the spend-plan endpoint when you need a concrete, signable quote payload rather than just a budget allocation sketch.

## Known failure modes

- Budget too low to cover any candidate resource — returns empty plan or error
- Invalid candidate endpoint URLs — schema validation failure
- Missing required 'goal' or 'budgetUsd' fields — 400 bad request
- All candidates lack x402 metadata — scoring impossible, returns degraded quote
- Payment asset or network mismatch across candidates — may exclude incompatible resources
- Endpoint returns 402 during enrichment probe — expected, handled gracefully

## How this service works

Produce a concrete quote and approval payload for a multi-resource purchase path without spending.

## Output

Returns a structured quote object with a ranked list of selected x402 resources that fit within the budget, per-resource price breakdown, total estimated cost, and a ready-to-sign approval payload that can be passed to a payment executor — all without triggering any actual transactions.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "goal": {
   "type": "string",
   "description": "Buyer goal for selecting x402 resources."
  },
  "budgetUsd": {
   "type": "number",
   "description": "Maximum spend budget for the plan or quote."
  },
  "candidates": {
   "type": "array",
   "items": {
    "type": "object",
    "anyOf": [
     {
      "required": [
       "endpoint"
      ]
     },
     {
      "required": [
       "url"
      ]
     }
    ],
    "properties": {
     "id": {
      "type": "string",
      "description": "Stable candidate identifier used in rankings and receipts."
     },
     "url": {
      "type": "string",
      "format": "uri",
      "description": "Alternate field for the x402 resource endpoint."
     },
     "name": {
      "type": "string",
      "description": "Human-readable resource name."
     },
     "x402": {
      "type": "object",
      "description": "Optional parsed x402 challenge metadata."
     },
     "asset": {
      "type": "string",
      "description": "Payment asset address or symbol."
     },
     "payTo": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
     },
     "price": {
      "oneOf": [
       {
        "type": "number",
        "minimum": 0
       },
       {
        "type": "string"
       }
      ],
      "description": "Alternate price field accepted by Trust402."
     },
     "accept": {
      "type": "object",
      "description": "Optional single x402 accept object."
     },
     "has402": {
      "type": "boolean",
      "description": "Whether the endpoint is known to return an x402 challenge."
     },
     "network": {
      "type": "string",
      "description": "x402 payment network, for example eip155:8453."
     },
     "endpoint": {
      "type": "string",
      "format": "uri",
      "description": "HTTPS x402 resource endpoint."
     },
     "metadata": {
      "type": "object",
      "description": "Additional public-safe metadata used during scoring."
     },
     "observed": {
      "type": "object",
      "description": "Optional probe observations such as status or latency."
     },
     "priceUsd": {
      "oneOf": [
       {
        "type": "number",
        "minimum": 0
       },
       {
        "type": "string"
       }
      ],
      "description": "Advertised resource price in USD."
     },
     "hasOpenApi": {
      "type": "boolean",
      "description": "Whether the origin publishes OpenAPI metadata."
     },
     "openapiUrl": {
      "type": "string"
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/trust402-procurement-quote-78d4b64d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from trust402.vercel.app](https://www.zero.xyz/host/trust402.vercel.app/llms.txt)
