> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.mangopay.com/api-reference/users/list-users/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server. # List all Users GET https://api.sandbox.mangopay.com/v2.01/{ClientId}/users List User objects and key details. This endpoint returns key information for each user created by the platform. Reference: https://docs.mangopay.com/api-reference/users/list-users ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. If your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL. ## Servers - `https://api.sandbox.mangopay.com` (Sandbox, default) - `https://api.mangopay.com` (Production) - `https://api-mtls.sandbox.mangopay.com` (mTLS Sandbox) - `https://api-mtls.mangopay.com` (mTLS Production) ## Request ### Path parameters - `ClientId` (string, required) — Platform's API account identifier, associated with the API key. ### Query parameters - `page` (integer, optional) — Start value: `1` **Default value:** `1` Indicates the index of the page for the pagination. - `per_page` (integer, optional) — Min. value: `1`; max. value: `100` **Default value:** `10` Indicates the number of items returned for each page of the pagination. - `Sort` (string, optional) — **Possible values:** `CreationDate:ASC`, `CreationDate:DESC` **Default value:** `CreationDate:ASC` Indicates the direction in which to sort the list. ## Response ### 200 Success - `list of ListAllUsersResponseItems` ## Types ### ListAllUsersResponseItems The key information on the user created by the platform. - `Id` (string, optional) — Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details) The unique identifier of the object. - `Tag` (string, optional) — Max. length: 255 characters Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`. - `CreationDate` (integer, optional) — Unix timestamp (UTC) of the date and time the object was created. - `PersonType` (string, optional) — **Returned values:** NATURAL, LEGAL The type of the user: - `NATURAL` – Natural users are individuals (natural persons). - `LEGAL` – Legal users are legal entities (legal persons) like companies, non-profits, and sole proprietors. The `PersonType` is defined by the endpoint used to create the user and can't be modified. - `Email` (string, optional) — The email address of the user. - `KYCLevel` (string, optional) — **Default value:** `LIGHT` **Returned values:** `LIGHT`, `REGULAR` The verification status of the user set by Mangopay: - `LIGHT` – Unverified, assigned by default to all users. - `REGULAR` – Verified, meaning the user has successfully completed the verification process and had the necessary documents validated by Mangopay. Only users whose `UserCategory` is `OWNER` can submit verification documents for validation. Only users whose `KYCLevel` is `REGULAR` can request payouts. - `TermsAndConditionsAccepted` (boolean, optional) — Whether the user has accepted Mangopay's terms and conditions (as defined by your contract, see the [T&Cs guide](/guides/users/terms) for details). Must be `true` if `UserCategory` is `OWNER`. - `TermsAndConditionsAcceptedDate` (integer, optional) — Unix timestamp (UTC) of the date and time the `TermsAndConditionsAccepted` value was set to `true`. Returned `null` if `UserCategory` is `PAYER`. - `UserCategory` (string, optional) — **Possible values:** `PAYER`, `OWNER`, `PLATFORM` The [category](/guides/users/categories) of the user: - `PAYER` – User who can only make pay-ins to their wallets and transfers to other wallets (as well as refunds for pay-ins and transfers). - `OWNER` – User who can also receive transfers to their wallets. Owners are able to request [KYC verification](/guides/users/verification), which if successful gives them the `KYCLevel` of `REGULAR` and the ability to request payouts. - `PLATFORM` – Single specific user that represents the platform. The `PLATFORM` value is only assigned by Mangopay and may be used as part of the validated workflow implemented by the platform. - `UserStatus` (string, optional) — **Returned values:** ACTIVE, CLOSED Internal use only. This field can only be used and updated by Mangopay teams. ## Examples **Response** ```json [ { "Id": "string", "Tag": "string", "CreationDate": 1, "PersonType": "string", "Email": "string", "KYCLevel": "string", "TermsAndConditionsAccepted": true, "TermsAndConditionsAcceptedDate": 1, "UserCategory": "string", "UserStatus": "string" } ] ``` **SDK Code** ```python from pprint import pprint import mangopay mangopay.client_id = 'your-client-id' mangopay.apikey = 'your-api-key' from mangopay.api import APIRequest handler = APIRequest(sandbox=True) from mangopay.resources import User users = User.all(page=1, per_page=50) for user in users: pprint(vars(user)) ``` ```javascript const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-example-client-id', clientApiKey: 'your-mangopay-api-key', }) const listUsers = async () => { return await mangopay.Users.getAll() .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } listUsers() ``` ```java import com.mangopay.MangoPayApi; import com.mangopay.core.Address; import com.mangopay.core.Pagination; import com.mangopay.core.Sorting; import com.mangopay.core.enumerations.SortDirection; import com.mangopay.entities.User; import java.lang.reflect.Field; import java.util.List; public class ListAllUsers { public static void main(String[] args) throws Exception { MangoPayApi mangopay = new MangoPayApi(); mangopay.getConfig().setClientId("your-client-id"); mangopay.getConfig().setClientPassword("your-api-key"); Pagination pagination = new Pagination(1, 100); Sorting sort = new Sorting(); sort.addField("CreationDate", SortDirection.desc); List users = mangopay.getUserApi().getAll(pagination, sort); for (User user : users) { user = mangopay.getUserApi().get(user.getId()); System.out.println("\nid: " + user.getId()); printObjectFields(user); } } private static void printObjectFields(Object obj) { Class objClass = obj.getClass(); Field[] fields = objClass.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); try { Object value = field.get(obj); if (value instanceof Address) { System.out.println(field.getName() + ": "); printObjectFields(value); } else { System.out.println(field.getName() + ": " + value); } } catch (IllegalAccessException e) { e.printStackTrace(); } } } } ``` ```csharp using MangoPay.SDK; using MangoPay.SDK.Entities; using Newtonsoft.Json; class Program { static async Task Main(string[] args) { MangoPayApi api = new MangoPayApi(); api.Config.ClientId = "your-client-id"; api.Config.ClientPassword = "your-api-key"; var users = await api.Users.GetAllAsync(new Pagination(1, 100)); string prettyPrint = JsonConvert.SerializeObject(users, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $response = $api->Users->GetAll(); print_r($response); } catch(MGPResponseException $e) { print_r($e); } catch(MGPException $e) { print_r($e); } ``` ```ruby require 'mangopay' MangoPay.configure do |client| client.preproduction = true client.client_id = 'your-client-id' client.client_apiKey = 'your-api-key' client.log_file = File.join(Dir.pwd, 'mangopay.log') end def listAllUsers() begin response = MangoPay::User.fetch() puts response return response rescue MangoPay::ResponseError => error puts "Failed to fetch Users #{error.message}" puts "Error details: #{error.details}" return false end end listAllUsers() ```