# Users ## List users - [GET /reps](https://docs.converz.co/openapi/users/getreps.md): This endpoint returns all users as JSON rows, e.g., [{"rep_id":"kees500","gender":"m","campaign":"sales"},{"rep_id":"cas501","gender":"m","campaign":"sales"},{"rep_id":"kris502","gender":"m","campaign":"service"}]. This is the default format for retrieving user attributes. ## Update one or more users by rep_id. - [POST /reps](https://docs.converz.co/openapi/users/updatereps.md): Update attributes on one or more users. Input format can be columnar, e.g., {"rep_id":["mila","liam"],"gender":["f","m"]}, or row-wise, e.g., [{"rep_id":"mila","gender":"f"},{"rep_id":"liam","gender":"m"}]. Note: if a variable is supplied for only some rows, the value will be set to null for other rows, e.g., [{"rep_id":"mila","gender":"f"},{"rep_id":"liam","name":"Liam"}] will set mila's name to null and liam's gender to null. A safe way to avoid bugs like this is to always use the columnar format, e.g., {"rep_id":["mila","liam"],"gender":["f","m"]} doesn't set any values to null, or {"rep_id":["mila","liam"],"gender":["f",null],"name":[null,"Liam"]} only sets the name for liam and the gender for mila. Max rows per request: 100000.