Get Custom Roles

Returns the list of all custom roles configured in the current organization, along with each role's access type and the full grouped permission map. 

REQUEST URI

https://<ZohoAnalytics_Server_URI>/restapi/v2/orgs/roles

Get

oauthscopeZohoAnalytics.usermanagement.read

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/orgs/roles
-H 'ZANALYTICS-ORGID: <org-id>'
-H 'Authorization: Zoho-oauthtoken <access_token>'
Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;
using System.Text.Json;

namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;

        public void GetCustomRoles(IAnalyticsClient ac)
        {
            IOrgAPI org = ac.GetOrgInstance(orgId);
            JsonElement result = org.GetCustomRoles();
            Console.WriteLine(result);
        }

        static void Main(string[] args)
        {
            string clientId = "1000.xxxxxxx";
            string clientSecret = "xxxxxxx";
            string refreshToken = "1000.xxxxxxx.xxxxxxx";

            try
            {
                IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
                Program obj = new Program();
                obj.GetCustomRoles(ac);
            }
            catch (ServerException ex)
            {
                Console.WriteLine("Server exception - " + ex.GetErrorMessage());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Other exception - " + ex.Message);
            }
        }
    }
}
Copiedpackage main

import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)

var (
    clientId     = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"

    orgId = "55522777"
)

func GetCustomRoles(ac ZAnalytics.Client) {
    org := ZAnalytics.GetOrgInstance(&ac, orgId)
    result, exception := org.GetCustomRoles()
    if exception != nil {
        fmt.Println("Error:", exception.ErrorMessage)
        return
    }
    fmt.Println(result)
}

func main() {
    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    GetCustomRoles(ac)
}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {

    private long orgId = 55522777l;

    public static void main(String args[]) {

        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";

        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);

        try {
            tObj.getCustomRoles(ac);
        }
        catch (ServerException ex) {
            System.out.println("Server exception - ErrorCode : " + ex.getErrorCode() + ", ErrorMessage : " + ex.getErrorMessage());
        }
        catch (ParseException ex) {
            System.out.println("Parser exception - ErrorMessage : " + ex.getResponseMessage());
        }
        catch (Exception ex) {
            System.out.println("Other exception - ");
            ex.printStackTrace();
        }
    }

    public void getCustomRoles(AnalyticsClient ac) throws Exception {
        OrgAPI org = ac.getOrgInstance(orgId);
        JSONArray result = org.getCustomRoles();
        System.out.println(result);
    }
}
Copied<?php

    require 'AnalyticsClient.php';

    class Test
    {
        public $ac = NULL;
        public $client_id = "1000.xxxxxxx";
        public $client_secret = "xxxxxxx";
        public $refresh_token = "1000.xxxxxxx.xxxxxxx";

        public $org_id = "55522777";

        function __construct() {
            $this->ac = new AnalyticsClient($this->client_id, $this->client_secret, $this->refresh_token);
        }

        function getCustomRoles() {
            $org = $this->ac->getOrgInstance($this->org_id);
            $response = $org->getCustomRoles();
            print_r($response);
        }
    }

    $test_obj = new Test();

    try {
        $test_obj->getCustomRoles();
    }
    catch(ServerException $se) {
        echo "Server exception : " . $se->getErrorMessage() . "\n";
    }
    catch(IOException $ioe) {
        echo "IO exception : " . $ioe->getErrorMessage() . "\n";
    }
    catch(ParseException $pe) {
        echo "Parser exception : " . $pe->getErrorMessage() . "\n";
    }
    catch(Exception $e) {
        echo "Exception : " . $e->getErrorMessage() . "\n";
    }
?>
Copiedfrom __future__ import with_statement
from AnalyticsClient import AnalyticsClient
import sys
import json

class Config:

    CLIENTID = "1000.xxxxxxx"
    CLIENTSECRET = "xxxxxxx"
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx"

    ORGID = "55522777"

class sample:

    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)

    def get_custom_roles(self, ac):
        org = ac.get_org_instance(Config.ORGID)
        result = org.get_custom_roles()
        print(result)

try:
    obj = sample()
    obj.get_custom_roles(obj.ac)

except Exception as e:
    print(str(e))
Copiedvar analyticsClient = require('./AnalyticsClient');

var clientId = '1000.xxxxxxx';
var clientSecret = 'xxxxxxx';
var refreshtoken = '1000.xxxxxxx.xxxxxxx';
var orgId = '55522777';

var ac = new analyticsClient(clientId, clientSecret, refreshtoken);

var org = ac.getOrgInstance(orgId);
org.getCustomRoles().then((response) => {
    console.log(response);
}).catch((error) => {
    console.log('errorCode : ' + error.errorCode);
    console.log('errorMessage : ' + error.errorMessage);
});
CopiedorgId = "55522777";
headersMap = Map();
headersMap.put("ZANALYTICS-ORGID", orgId);
response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/orgs/roles"
  type :GET
  headers:headersMap
  connection:"analytics_oauth_connection"
];
info response;
Copiedrequire 'zoho_analytics_client'

class Config
  ORGID = "55522777"
end

class Sample
  def initialize
    @ac = AnalyticsClient.new
           .with_data_center("US")
           .with_oauth({
             "clientId" => "1000.xxxxxxx",
             "clientSecret" => "xxxxxxx",
             "refreshToken" => "1000.xxxxxxx.xxxxxxx"
           })
           #.with_token_store_path("/home/admin/analytics_ruby_sdk/tokens") # Optional – specify a directory path to securely store the encrypted access token
           .build
  end

  def get_custom_roles
    org = @ac.get_org_instance(Config::ORGID)
    result = org.get_custom_roles
    puts result
  end
end

begin
  obj = Sample.new
  obj.get_custom_roles
rescue ServerError => e
  puts "Server Error: \#{e.response_content}"
rescue StandardError => e
  puts e.message
  puts e.backtrace.join("\n")
end

Download SDKs:  C# | GO | JAVA | PHP | PYTHON | NodeJS | Ruby

Sample Response:

CopiedHTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8

{
  "status": "success",
  "summary": "Get custom roles",
  "data": {
    "roles": [
      {
        "roleId":   "466206000000312015",
        "roleName": "Report Designer",
        "accessType": "ALL_REPORTS_AND_DASHBOARDS",
        "permissions": {
          "createPermissions": {
            "createFolder":   true,
            "createTable":    false,
            "createQueryTable": false,
            "createFormula":  false
          },
          "dataPermissions": {
            "addRow":                false,
            "modifyRow":             false,
            "deleteRow":             false,
            "importAppend":          false,
            "importAddOrUpdate":     false,
            "importDeleteAllAdd":    false,
            "importDeleteUpdateAdd": false,
            "dataArchives":          false
          },
          "designPermissions": {
            "designModify": false
          },
          "interactionPermissions": {
            "read":         true,
            "vud":          true,
            "drillDown":    true,
            "drillThrough": true,
            "drillActions": true,
            "insight":      true
          },
          "sharePermissions": {
            "share":              false,
            "discussion":         true,
            "privateLinks":       false,
            "accessAdminPresets": true,
            "createPreset":       false
          },
          "publishPermissions": {
            "export":                  true,
            "manageEmailSchedules":    true,
            "allEmailSchedulesAccess": false,
            "manageDataAlerts":        true,
            "allDataAlertsAccess":     false,
            "createSlideshow":         false,
            "publicViews":             false
          }
        }
      }
    ]
  }
}