List the wallet's login sessions

Where this account is signed in — one entry per browser or device, newest first. This is the "your devices" list, and the way a user spots a session they do not recognise. Sessions that have been ended or have expired are not listed. An account keeps up to ten at a time; opening an eleventh ends the oldest, so the list is always short. End one with `DELETE /wallets/sessions/{sessionId}`, or all of them with `POST /auth/logout-all`. Requires the `wallets.read` permission.

GET
/wallets/sessions
AuthorizationBearer <token>

The access token returned after a successful sign-in, sent as Authorization: Bearer <access_token>.

It identifies the person and the organization they are working in, and it lasts about fifteen minutes. When it runs out, use their refresh token at POST /auth/refresh-token instead of asking them to sign in again.

In: header

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://api.dual.network/wallets/sessions"
{
  "sessions": [
    {
      "id": "665f1c2d4b1a2c3d4e5f6ac0",
      "current": true,
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
      "when_created": "2026-03-06T08:00:00Z",
      "last_used": "2026-03-06T11:42:00Z",
      "expires": "2026-04-05T08:00:00Z"
    },
    {
      "id": "665f1c2d4b1a2c3d4e5f6ac1",
      "current": false,
      "user_agent": "Dual/2.4 (iPhone; iOS 19.2)",
      "when_created": "2026-02-14T19:20:00Z",
      "last_used": "2026-03-05T07:11:00Z",
      "expires": "2026-04-04T07:11:00Z"
    }
  ]
}
{
  "code": 3,
  "message": "Key: 'limit' Error:Field validation for 'limit' failed on the 'lte' tag"
}

{
  "code": 16,
  "message": "no auth provided"
}

{
  "code": 13,
  "message": "internal error"
}