Misar Docs
MisarMailMisar.BlogMisarReachMisarPostMisar.DevMisar PlatformMisar IdentityMisar Posts API
Wallet

List transactions

GET /io/wallet/transactions — paginated credit ledger history for a user.

Returns a paginated list of ledger entries (top-ups and deductions) for a user, newest first.

GET https://api.misar.io/io/wallet/transactions

Authentication

Either mode is accepted:

  • SSO bearer (self): Authorization: Bearer <token> — history is for the token's user; omit user_id.
  • Service key: x-wallet-service-key: <key> plus ?user_id=<id>.

Query parameters

user_idstringquery

The Misar SSO user id. Required with the service key; derived from the token with an SSO bearer.

limitnumberquery

Maximum number of items to return in this page.

cursorstringquery

Opaque pagination cursor. Pass the nextCursor from the previous response to fetch the next page.

Request

curl "https://api.misar.io/io/wallet/transactions?user_id=usr_123&limit=20" \
  -H "x-wallet-service-key: $WALLET_SERVICE_KEY"

Response

{
  "items": [
    {
      "id": "txn_456",
      "type": "deduct",
      "feature": "blog.article.generate",
      "credits": -1,
      "balance_after": 41,
      "created_at": "2026-06-02T10:15:00Z"
    },
    {
      "id": "txn_123",
      "type": "topup",
      "credits": 25,
      "balance_after": 42,
      "stripe_session_id": "cs_live_...",
      "created_at": "2026-06-01T09:00:00Z"
    }
  ],
  "nextCursor": "eyJpZCI6InR4bl8xMjMifQ"
}
itemsobject[]

Ledger entries, newest first. Each entry includes the signed credits delta and the resulting balance_after.

nextCursorstring | null

Cursor for the next page, or null when there are no more pages.

Rate limit

200 reads/user/60 s. Exceeding the limit returns 429 with a Retry-After header.

Paginating

Keep calling with the returned nextCursor until it is null:

# page 2
curl "https://api.misar.io/io/wallet/transactions?user_id=usr_123&cursor=eyJpZCI6InR4bl8xMjMifQ" \
  -H "x-wallet-service-key: $WALLET_SERVICE_KEY"