Skip to content

List users, cursor-paginated newest-first (admin only).

GET
/api/admin/users
curl --request GET \
--url 'https://api.tradr.cloud/api/admin/users?limit=25'

Admin-gated (403 ADMIN_REQUIRED). Cursor-paginated over (created_at, id) descending — new signups on page one. cursor is the opaque base64 cursor from a prior page; absent/invalid ⇒ first page. limit defaults to 25, clamped to [1, 100]; a non-numeric limit is a 400 VALIDATION_ERROR. Response { items, nextCursor }; lastActiveAt is the last recorded session activity (nullable, may be arbitrarily old); emailVerified is the stored verified flag — a read-only signal, nothing is gated on it in v1. No secret fields are returned (REQ-3.6).

cursor
string
limit
integer
default: 25 >= 1 <= 100

{ items: AdminUserListItem[], nextCursor: string | null }.

VALIDATION_ERROR — malformed limit.

Not authenticated.

ADMIN_REQUIRED — authenticated but not an admin.

Admin rate limit reached (60 / 60 s per user).