List Users
Returns one page of users, newest first. search is a single free-text term matched against name, surname and email at once (case-insensitive substring, matched per field, so a full name only matches when it is stored in one field). Soft-deleted users are not listed. A search that matches nobody answers an empty page, not an error.
Rows have the same shape as Get User by ID. A user carries no address: addresses belong to wallets, read them with List User Wallets.
Required permission: user:view
Request
GET /v2/users
Parameters
| Name | Type | In | Description |
|---|---|---|---|
page | integer | query | Required. Page number, starting at 1 |
per_page | integer | query | Required. Items per page, 1–100 |
search | string | query | Optional. Free-text term matched against name, surname and email. Omit it to list every user |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/users?page=1&per_page=10&search=durdu' \
--header 'Authorization: Bearer <access_token>'
Response
{
"data": [
{
"id": "6a87455ad5f439809d488ac3",
"external_id": null,
"name": "Burkay",
"surname": "Durdu",
"email": "burkay.durdu@rudiq.com",
"identity_number": "11111111111",
"status": 0,
"created_at": "2026-08-21T09:14:02.511Z",
"kyc": null
}
],
"total": 1,
"page": 1,
"per_page": 10
}
Response Fields
| Field | Type | Description |
|---|---|---|
data | array | The users on this page. Empty array when nothing matches |
data[].id | string | User ID |
data[].external_id | string | null | Opaque identifier supplied at migration; null when none was given |
data[].name | string | First name; empty string when not stored |
data[].surname | string | Last name; empty string when not stored |
data[].email | string | Email; empty string for users migrated with an external_id only |
data[].identity_number | string | National identity number; empty string when not stored |
data[].status | integer | 0 = active, 1 = inactive (set with Update User Status) |
data[].created_at | string | ISO 8601 creation time |
data[].kyc | null | Always null. KYC is recorded per wallet: read it from Get User Wallet |
total | integer | Number of users matching the filter |
page | integer | Requested page |
per_page | integer | Requested page size |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed (page / per_page missing or out of range) — see details |
See Errors for the error format and common codes.