Skip to main content
GET
/
v1
/
analytics
/
receipts
curl "https://win.oneshotagent.com/v1/analytics/receipts?period=7&category=communication" \
  -H "X-Agent-ID: 0xYourWalletAddress"
{
  "receipts": [
    {
      "receipt_id": "rcpt_01HGW2HB4V4T0PZGJ8PFDRCHQM",
      "category": "communication",
      "subcategory": "email",
      "amount_usdc": "0.150000",
      "service_fee": "0.030000",
      "status": "settled",
      "settlement_tx": "0x1a2b3c...",
      "memo": "Following up on demo request from yesterday's webinar",
      "decisionContext": {
        "goal": "Convert webinar leads to discovery calls",
        "confidence": 0.78,
        "campaign": "webinar-q2"
      },
      "value_tag": null,
      "job_id": "0cbb87ee-1f2a-4c3d-9e8b-7a6f5d4c3b2a",
      "created_at": "2026-03-09T14:30:00Z",
      "settled_at": "2026-03-09T14:30:01Z"
    }
  ],
  "count": 1,
  "has_more": false
}
Returns a paginated list of receipts for the calling agent. Free endpoint — requires X-Agent-ID only.

Query Parameters

period
number
default:"all"
Filter to last N days (1–365). Omit to include all receipts.
category
string
Filter by category: data, verification, communication, commerce, infrastructure, agent_to_agent. See overview for the tool→category mapping.
limit
number
default:"50"
Results per page. Hard ceiling of 100 — values above 100 are clamped.
offset
number
default:"0"
Pagination offset
since
string
Lower bound on created_at, inclusive (ISO 8601, e.g. 2026-05-01T00:00:00Z). Combine with until to page through a fixed time window — useful for reaching receipts older than the 100-row cap when tagging value weeks after the call.
until
string
Upper bound on created_at, inclusive (ISO 8601).
curl "https://win.oneshotagent.com/v1/analytics/receipts?period=7&category=communication" \
  -H "X-Agent-ID: 0xYourWalletAddress"
{
  "receipts": [
    {
      "receipt_id": "rcpt_01HGW2HB4V4T0PZGJ8PFDRCHQM",
      "category": "communication",
      "subcategory": "email",
      "amount_usdc": "0.150000",
      "service_fee": "0.030000",
      "status": "settled",
      "settlement_tx": "0x1a2b3c...",
      "memo": "Following up on demo request from yesterday's webinar",
      "decisionContext": {
        "goal": "Convert webinar leads to discovery calls",
        "confidence": 0.78,
        "campaign": "webinar-q2"
      },
      "value_tag": null,
      "job_id": "0cbb87ee-1f2a-4c3d-9e8b-7a6f5d4c3b2a",
      "created_at": "2026-03-09T14:30:00Z",
      "settled_at": "2026-03-09T14:30:01Z"
    }
  ],
  "count": 1,
  "has_more": false
}

Audit fields

Receipts include the audit metadata the caller attached at call time:
job_id
string | null
The job that produced this receipt. This equals the request_id returned from the originating tool call (result.request_id) — so you can find a receipt without storing its rcpt_… id, and you can pass that request_id straight to Tag Receipt Value. The caller’s memo / decisionContext are also echoed into the receipt, so they double as match keys.
memo
string | null
Human-readable reason for the tool call, up to 1000 chars. Set via the SDK’s memo option or memo in the JSON body. See Audit Trail.
decisionContext
object | null
Machine-readable decision metadata. Open schema; known fields include goal, goalId, alternatives, confidence (0-1). Used by supervisor / auditor agents.
A non-null value_tag only counts toward RoCS when its status is "confirmed". See Tag Receipt Value for how to tag.