memo + decisionContext) the caller attached at call time. Receipts power spend tracking, RoCS computation, and supervisor-agent oversight.
Authentication
All analytics endpoints require theX-Agent-ID header with your wallet address. No x402 payment needed — these are free read endpoints (the value tag endpoint is also free).
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /v1/analytics/receipts | List receipts with filters |
GET | /v1/analytics/spend/breakdown | Spend by category |
GET | /v1/analytics/rocs | Return on Cognitive Spend |
PATCH | /v1/analytics/receipts/{receiptId}/value | Tag receipt value |
Annotating value after the fact
Business outcomes (a reply, a meeting, a closed deal) usually land days or weeks after the tool call that drove them. You don’t need to reconcile receipts in the background to bridge that gap:- Keep the id from the call. Every tool result returns both
receipt_id(rcpt_…) andrequest_id. Either one identifies the receipt. - Tag value when the outcome arrives. Call Tag Receipt Value with the
receipt_idor therequest_id— the API resolves arequest_idviaReceipt.job_id(they are the same value), so no List Receipts lookup is required. - If you only kept a timestamp range, page back to the receipt with the
since/untilwindow on List Receipts — this reaches receipts older than the 100-row page cap. The caller’smemo/decisionContextare echoed intometadataas additional match keys.
Receipt Categories
| Category | Tools | Description |
|---|---|---|
data | research, browser, analyze, enrich | Information gathering |
verification | verify_email | Data validation |
communication | email, voice, sms | Outbound messaging |
commerce | commerce_search, commerce_buy | Purchases |
infrastructure | build | Website/app creation |
agent_to_agent | soul | Inter-agent transactions |
Receipt Statuses
| Status | Meaning |
|---|---|
pending | Execution started, payment not yet settled |
settled | Payment verified on-chain (has settlement_tx) |
failed | Execution or payment failed |
disputed | Under review |
Return on Cognitive Spend (RoCS)
status: "confirmed" count toward total_value. Self-reported tags start as "pending" and must be validated by the judge service before they affect RoCS.