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/transactionsAuthentication
Either mode is accepted:
- SSO bearer (self):
Authorization: Bearer <token>— history is for the token's user; omituser_id. - Service key:
x-wallet-service-key: <key>plus?user_id=<id>.
Query parameters
user_idstringqueryThe Misar SSO user id. Required with the service key; derived from the token with an SSO bearer.
limitnumberqueryMaximum number of items to return in this page.
cursorstringqueryOpaque 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 | nullCursor 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"