Users can make updates to their profile information through the City user-interface via their profile page, but all admin updates to another user's information must be done through the API. After authenticating to CNAPI using the Admin environment, you can see the properties that can be adjusted on users by calling the Get Users method and inspecting the JSON payload for a single user:



To modify a user, you'll need to find them in the JSON array returned via Get Users so that you have their universally unique identifier (uuid). (Use CMD-F or CTRL-F to search the Postman response for the name you're interested in.) Once you have this, you either append this uuid to the Update User method url, or update the {{user-uuid}} environment variable, and then provide the name/value pairs of the fields you want to modify. In the example below we are modifying the display name for Aristotelis Vartholomaios:



After executing an update, the API returns the updated JSON payload so that you can verify that the change was made.


Updating the administrative privileges of a City user requires a different set of calls than simply updating their profile properties. In this example we'll see how we need to access multiple uuids to perform the appropriate call.


First, we want to get the uuid of the city that the user should be able to administer. We call Admin/Cities/Get cities to return a list of all the cities contained within a given endpoint.



We'll copy the uuid of the city we want to work with, and update our Admin environment to use this uuid for the {{city-uuid}} variable:



That uuid will now be used in all calls that reference the variable {{city-uuid}}. Navigate to Admin/Cities/Users/Get Users and click the Send button. Notice that you didn't have to change the URL of this method because it references {{city-uuid}} and you updated that variable in the environment file to point to your city of interest. Now you can find the particular user you're interested in, copy their uuid, and optionally update the {{user-uuid}} environment variable if you will be making multiple calls related to this user.



Now that the city uuid is stored in the environment and you have the user uuid copied to your clipboard, you can access the Admin/Cities/Users/Update User method, provide the uuid in the UserUuid field, and update the isCityAdmin to true. After clicking the Send button you'll receive a success status return payload if the update is successful.



The user can now log into the city associated with the {{city-uuid}} variable and they will see the Admin button in their top menu bar. It's important to note that being a City Admin is a lower level of access than being a System Admin and that user will still be marked as 'false' for isSystemAdmin. There is only one master System Admin account for a city and it is established during installation. There may be as many City Admin accounts as desired.