Cognos Analytics

 View Only

 How to download a list of User Accounts (12.03, Cloud)

Bobby Davison's profile image
Bobby Davison posted Thu May 22, 2025 11:49 AM

I'm responsible for managing our users and license counts for both Cognos Analytics and Planning Analytics.  I know there are significant improvements coming in 12.1 for user management but can anyone tell me if its possible to download a list of user accounts from Cognos?  It seems we can only upload new users via csv but not download a file nor maintain via file as you can with Planning?

Andrei Istomine's profile image
Andrei Istomine

You can try to use Rest API Swagger

Bobby Davison's profile image
Bobby Davison

Thanks Andrei. if that's the only option at the moment I guess I'll wait for 12.1 and hope it addresses the question

Thanks for responding

Andrei Istomine's profile image
Andrei Istomine

Rest API is the easiest thing to try ... 

Other options: Cognos Audit extension, SDK program, third-party like Motio or BSP...

I just use SDK for this kind of stuff

Paul Mendelson's profile image
Paul Mendelson IBM Champion

If you're willing to use third party software, my Object Search in CogBox handles this quite well. 

When you do a search for users it runs the expressbus/content-manager API to get a list of all accounts. As users log in, I have a script that automatically records their identity and capabilities into their userprofile. This is then pulled and used to generate the output. 

The output includes a separate tab which lists each user by each piece of identity. If you want to see a list of every user who has a specific identity (like Directory Admins) you can just filter on that.

The same way I'm showing identities I also list out each individual capability. Also useful to see who, for example, can use the canAuthorDashboard capability. 

And since we had the tab for identities, I figured I'd just add a list showing the quantity of each capability, and the associated license it uses.

And since that worked so well, I also provide a list of all identities (excluding type account) and how many people are associated with it. 

Feel free to drop me a line and I can give you a demo. 

And since I'm not a sales guy, I'll also explain how to use the expressbus api if you'd prefer not to pay for a 3rd party tool (even though it's super awesome)

First, this.utils.getItems is an abstraction of a fetch request. You could just do fetch with the url, but you'd also have to define the xsrf token in the header (although there are ways around that too). 

await this.utils.getItems(`${__glassAppController.glassContext.gateway}/v1/expressbus/content-manager?searchPath=//schedule[@triggerName]&properties=triggerName,parent&options={refProps:[{refPropName:parent,properties:[defaultName,searchPath,type,id]}]}`);


Breaking it down:

__glassAppController.glassContext.gateway gets the current gateway information. It will probably be something like /ibmcognos/bi but that is liable to change based on your own setup.

/v1/expressbus/content-manager this is the api endpoint. There's not much public documentation on it (and by not much I'm exaggerating), so pretty much all of this is based on trial and error.

 ?searchPath=//schedule[@triggerName] this is any valid searchpath expression. Cognos searchpaths are basically xpath expressions. //schedule will return every schedule in the system and [@triggerName] only returns schedules where triggerName is not null. //account will return a list of every account in the system //folder[contains(@name,'Sales')]/report will return every report that is a direct child of any folder containing the string "Sales" in it's name. https://www.ibm.com/docs/en/cognos-analytics/12.1.0?topic=developer-search-path-syntax

&properties=triggerName,parent the resulting array of objects contains any number of properties. in this case I'm asking only for the trigger name and the parent details. You can also use properties=* to get all of the properties, but I strongly recommend against doing this when you're pulling a lot of data. 

&options={refProps:[{refPropName:parent,properties:[defaultName,searchPath,type,id]}]}`) this bit took me a long time to figure out. The refProps allows us to specify which objects we get when looking at things like the parent. In this case the parent of a schedule might be a report, a job, an event, or whatever. By default the parent is an array of a single object containing id, searchPath and type. The options here allows us to specify exactly what other attributes we can see in it. In this case I'm saying I also want to see the defaultName. Any valid property for the expected object will work. So specification will work for reports, but don't expect it to do anything for accounts.


Note that this isn't a published API yet, but I keep pushing for it. So far it works the same in 11.2 all the way through 12.1. It does not work in 11.1.

Bobby Davison's profile image
Bobby Davison

It seems that Cloud is slightly different to on-prem. Just navigate to Manage > Licenses and there is an export button on the top right