Get Embed URL (Only For Embedded Analytics Customers)

Returns embed URL to access the specified view.

The generated URL is a short-living URL, which adds more security to the URL. This URL does not require a login and is controlled by the permissions based on the configurations.

To discover more about white labeling or to explore options for implementing it, click here.

REQUEST URI

https://<ZohoAnalytics_Server_URI>/restapi/v2/workspaces/<workspace-id>/views/<view-id>/publish/embed

Get

oauthscopeZohoAnalytics.embed.read

QUERY PARAMETERS

 

Parameter Name
Description
CONFIGJSONObject

Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

KeyDescription
criteriaString

If criteria is sent, then the rows matching the criteria alone are visible, else all the rows are visible.

Sample: {"criteria":"\"SalesTable\".\"Region\"='East'"}
Refer this link for more details about how to construct a criteria.
includeTitleBoolean

To display the view name in the embedded mode.
Default value - true.
includeDescBoolean

To display the view description in the embedded mode.
Default value - true.
includeToolBarBoolean

To include the toolbar in the embedded mode.
Default value - false.
includeSearchBoxBoolean

To include the search box in the table.
Default value - false.
includeDatatypeSymbolBoolean

To include the datatype symbol in the table column.
Default value - false.
legendPosition

String

Controls to display the position on the legend.

  • RIGHT
  • LEFT
  • TOPLEFT
  • TOPRIGHT
  • TOPCENTER
  • BOTTOMLEFT
  • BOTTOMRIGHT
  • BOTTOMCENTER
  • NONE
validityPeriodInteger

Controls the validity period(in seconds) of the generated URL.
Default value - 3600 seconds(One hour).
permissionsJSONObject

Permissions JSON object (permission attributes table).

Sample: {"vud":true,"export":true}
vudColumnsArray of JSONObject

To limit the view underlying data option to specified columns from specified tables.
This will be valid only if the vud permission is set to true.

Sample: [{"tableName":"table1","columnNames":["column1","column2"]}]
drillColumnsArray of JSONObject

To limit the drill down option to specified columns from specified tables.
This will be valid only if the drillDown permission is set to true.

Sample: [{"tableName":"table1","columnNames":["column1","column2"]}]
language

String

To specify language for the embed view.
Default value - english

  • english
  • chinese
  • japanese
  • french
  • italian
  • spanish
  • portuguese
  • portuguese_td
  • german
  • chinese_td
  • dutch
  • russian
  • polish
  • arabic
  • turkish
  • hungarian
  • hebrew
  • swedish
  • korean
  • danish
  • ukranian
  • vietnamies
  • bulgarian
  • croatian
  • czech
  • hindi
  • thai
  • indonesian
  • malay
domainName

Provide the custom domain to obtain the embed URL with the corresponding domain address. 

( Sample Value: analytics.finepick.com

PERMISSION ATTRIBUTES

KeyDescription
exportBoolean

Permission to export the data.
Default value - false.
vudBoolean

Permission to view the Underlying data.
Default value - false.
drillDownBoolean

Permission to drill down in a Chart.
Default value - false.
insightBoolean

Permission to enable the ZIA Insights option.
Default value - false.

POSSIBLE ERROR CODES

7103, 7104, 7301, 7387, 7395, 8083, 8518, 8535

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/views/<view-id>/publish/embed 
-H 'ZANALYTICS-ORGID: <org-id>' 
-H 'Authorization: Zoho-oauthtoken <access_token>'
Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;

namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;
        long workspaceId = 35130000001055707;
        long viewId = 35730000007354002;

        public void GetEmbedUrl(IAnalyticsClient ac)
        {
            IViewAPI view = ac.GetViewInstance(orgId, workspaceId, viewId);
            string viewUrl = view.GetEmbedURL(null);
            Console.WriteLine(viewUrl);
        }

        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.GetEmbedUrl(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"
    workspaceId = "35130000001055707"
    viewId = "35730000007354002"
)

func GetEmbedUrl(ac ZAnalytics.Client) {
    config := map[string]interface{}{}
    view := ZAnalytics.GetViewInstance(&ac, orgId, workspaceId, viewId)
    result, exception := view.GetEmbedUrl(config)
    if(exception != nil){
        fmt.Println(exception.ErrorMessage)
    }else{
        fmt.Println(result)
    }
}

func main() {

    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    GetEmbedUrl(ac)

}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {

    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;
    private long viewId = 35730000007354002l;

    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.getEmbedURL(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 getEmbedURL(AnalyticsClient ac) throws Exception {
        ViewAPI view = ac.getViewInstance(orgId, workspaceId, viewId);
        String result = view.getEmbedURL(null);
        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";
        public $workspace_id = "35130000001055707";
        public $view_id = "35730000007354002";

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

        function getEmbedURL() {
            $view = $this->ac->getViewInstance($this->org_id, $this->workspace_id, $this->view_id);
            $response = $view->getEmbedURL();
            print_r($response);
        }
    }

    $test_obj = new Test();

    try {
        $test_obj->getEmbedURL();
    }
    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";
    WORKSPACEID = "35130000001055707";
    VIEWID = "35730000007354002";

class sample:

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

    def get_embed_url(self, ac):
        view = ac.get_view_instance(Config.ORGID, Config.WORKSPACEID, Config.VIEWID)
        result = view.get_embed_url()
        print(result)

try:
    obj = sample()
    obj.get_embed_url(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 workspaceId = '35130000001055707';
var viewId = '35730000007354002';

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

var config = {};
var view = ac.getViewInstance(orgId, workspaceId, viewId);
view.getEmbedUrl(config).then((response) => {
    console.log(response);

}).catch((error) => {
    console.log('errorCode : '+error.errorCode);
    console.log('errorMessage : '+error.errorMessage);
});
CopiedorgId = "55522777";
workspaceId = "35130000001055707";
viewId = "35730000007354002";

headersMap = Map();
headersMap.put("ZANALYTICS-ORGID",orgId);

response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/views/" + viewId + "/publish/embed"
  type :GET
  headers:headersMap
  connection:"analytics_oauth_connection"
];
info response;

Download SDK:  C# | GO | JAVA | PHP | PYTHON | NodeJS

Sample Response:

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

{
    "status": "success",
    "summary": "Get embed url",
    "data": {
        "embedUrl": "https://analyticsapi.zoho.com/open-view/1767024000003145011?ZDB_THEME_NAME=blue&FS=OS&NEW_ENCRYPTION=true&RSCONFIG=2d91fa85daeb3d27387880153d16f3c6a8ed4301aa9abfed9e4ac83ca3f1d89da971986afb68149365831e6f619752c7d75bd0489f017feb75ca54d06f835a7ebe4981c3ffa5d656a25dd84e2b5a37e2"
    }
}