Choose a PayPal credit pack. After a verified payment, the return page reveals your private API key. Save it securely. Keep it on your server, outside logs and public browser code.
Download the dependency-free client for Node.js 20.3 or later. Buy credits first, then read your key from a private environment variable:
curl -fsS https://bounty-engineer-x402-prod.onrender.com/buyer-client.mjs -o buyer-client.mjs
Save the following as app.mjs. Set BOUNTY_API_KEY privately, then run node app.mjs:
import { BountyClient } from "./buyer-client.mjs";
const client = new BountyClient({ apiKey: process.env.BOUNTY_API_KEY });
const quote = await client.quote("web-extract");
const reply = await client.call("web-extract",
{ url: "https://example.com" },
{ idempotencyKey: "extract-job-0001", maxCredits: 1 }
);
console.log(reply.result);
const balance = await client.balance();Save the job key with your task before calling. Reuse it with the same input when retrying. The client quotes the current catalog, sends your credit cap for server enforcement, and retries pending or ambiguous transport failures at most twice with the identical key and body. Refunded failures and input conflicts stop; they never create a new paid request automatically.
POST /v1/prepaid/web-extract
Authorization: Bearer YOUR_API_KEY
Idempotency-Key: extract-job-0001
X-Max-Credits: 1
Content-Type: application/json
{"url":"https://example.com"}Send the same input JSON as the corresponding x402 tool. Keep the key and body identical when retrying within 24 hours. X-Max-Credits is optional for raw HTTP calls; if the current tool cost exceeds it, HTTP 412 rejects the call before reserving credits. A successful retry returns the saved result without a second deduction. Pending requests return 409 and Retry-After; a different input with the same key returns 409.
| Tool | Credits per success |
|---|---|
| tender-search | 10 |
| tender-match | 25 |
| margin-unlock | 2 |
| margin-portfolio-unlock | 10 |
| json-contract-check | 1 |
| json-change-set | 1 |
| evidence-pack | 2 |
| context-pack | 1 |
| data-quality-gate | 2 |
| provider-route-plan | 1 |
| result-consensus-gate | 2 |
| retry-policy-plan | 1 |
| batch-budget-plan | 1 |
| structured-record-merge | 2 |
| tool-output-quality-gate | 1 |
| agent-commerce-plan | 3 |
| audit | 1 |
| web-extract | 1 |
| funding-rates | 1 |
| hash | 1 |
| jwt-decode | 1 |
| base64 | 1 |
| json-canonicalize | 1 |
| tool-call-dry-run | 1 |
| tool-response-shield | 1 |
| schema-drift-guard | 3 |
| x402-payment-preflight | 5 |
| bounty-intel | 1 |
| bounty-due-diligence | 75 |
| bounty-deal-desk | 150 |
| agent-opportunity-underwriter | 490 |
| autonomous-execution-blueprint | 990 |
| agent-revenue-command-center | 1990 |
GET /v1/prepaid/balance with your Bearer key returns your current balance. Execution errors refund reserved credits. Interrupted reservations recover automatically after two minutes. A billing transport error requires a retry with the same key and body. This credit usage is consumption of an existing purchase; it is not an additional payment.
Stateful control tools and the settlement canary continue to use x402. The original /v1/audit-key remains available.