Export Data

You can use Bulk APIs to export data from the specified view.

REQUEST URI

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

Get

oauthscopeZohoAnalytics.data.read

Note: Export Data API is restricted for certain resources ( given below ). For the same kindly use Asynchronous Export APIs for exporting data.

  • Tables having more than one million rows.
  • Tables and Views from live connect workspaces.
  • Dashboard and Querytable view types.

QUERY PARAMETERS

 

Parameter Name
Description
CONFIG*JSONObject
Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

KeyDescription
responseFormat*

String
The format of the data to be exported.

  • csv
  • json
  • xml
  • pdf
  • html
  • image
criteriaString
If criteria is sent, then the rows matching the criteria alone are exported.

Sample: {"criteria":"\"SalesTable\".\"Region\"='East'"}
Refer this link for more details about how to construct a criteria.
selectedColumnsJSONArray
Controls the columns that need to be exported.

Sample: ["column1","column2"]
showHiddenColsBoolean
Controls whether the columns that have been hidden in the table have to be exported.
Default value - false.
showPersonalColsBoolean
Controls whether the columns that have been marked as personal data in the table have to be exported.
Default value - false.
generateTOCBoolean
To generate Table Of Contents.Only for dashboards
Default value - false.
dashboardLayout

Integer
Layout type of the dashboard to be exported.Only for dashboards

  • 0 - For Each Report in New Page
  • 1 - For Layout as in Dashboard

CSV SPECIFIC ATTRIBUTES

KeyDescription
delimiter

Integer
The delimiter character used for separating the fields in a row in the CSV.

  • 0 - COMMA
  • 1 - TAB
  • 2 - SEMICOLON
  • 3 - SPACE
recordDelimiter

Integer
The record delimiter (newline character) to use.

  • 0 - DOS
  • 1 - UNIX
  • 2 - MAC
quoted

Integer
The quote character to use for quoting the values.

  • 0 - SINGLE
  • 1 - DOUBLE
includeHeaderBoolean
To include the column names in the first row of the CSV exported.
Default value - true.

JSON SPECIFIC ATTRIBUTES

KeyDescription
keyValueFormatBoolean
To return JSON data as ColumnName - Value pair.
Default value - true.

PDF SPECIFIC ATTRIBUTES

KeyDescription
paperSize

Integer
The size of the paper.

  • 0 - LETTER
  • 1 - LEGAL
  • 2 - TABLOID
  • 3 - A3
  • 4 - A4
  • 5 - AUTO
paperStyleString
To controls the orientation.
Portrait/Landscape
showTitle

Integer
To controls the title positioning.

  • 0 - AT TOP
  • 1 - AT BOTTOM
  • 2 - NONE
showDesc

Integer
To controls the description positioning.

  • 0 - AT TOP
  • 1 - AT BOTTOM
  • 2 - NONE
exportLanguage

Integer
PDF will be rendered using the specified language.

  • 0 - ENGLISH
  • 1 - CHINESE
  • 2 - JAPANESE
  • 3 - EUROPEAN
  • 4 - KOREAN


Default value - 0 (ENGLISH).

zoomfactorInteger
To control the zoom factor for the PDF.
0 to 100
Default value - 100.
Margin Settings:
topMargin
bottomMargin
leftMargin
rightMargin
Float
The margin in inches for that edge. Can be decimal between 0 to 1 (like 0.5).
Header/Footer Settings:
leftHeader
rightHeader
centerHeader
leftFooter
rightFooter
centerFooter

Integer
The header or footer value that needs to be generated for each page at that particular position.

  • 0 - Leave it blank
  • 1 - Include Title
  • 2 - Current Date/Time
  • 3 - Include Page number in the format “Page #”
  • 4 - Include page number in the format “Page # Of #”
  • 5 - CUSTOM - Include custom text in footer
Custom Header/Footer value
leftHeaderText
rightHeaderText
centerHeaderText
leftFooterText
rightFooterText
centerFooterText
String
If any of the header/footer setting is 5 (.ie, CUSTOM) then the corresponding custom value/text should be passed.

HTML SPECIFIC ATTRIBUTES

KeyDescription
includeTitle

Integer
To contol the title positioning.
Default value - 0.

  • 0 - AT TOP
  • 1 - AT BOTTOM
  • 2 - NONE
includeDesc

Integer
To contol the description positioning.
Default value - 0.

  • 0 - AT TOP
  • 1 - AT BOTTOM
  • 2 - NONE

IMAGE SPECIFIC ATTRIBUTES

KeyDescription
widthInteger
The width of the image.
Default value - 500.
heightInteger
The height of the image.
Default value - 400.
titleBoolean
To include the view name in the exported view.
Default value - true.
descriptionBoolean
To include the view description in the exported view.
Default value - true.
legendBoolean
Controls whether the legend is to be included in the image generated.
Default value - true.
imageFormatString
The format of the exported image.
png/jpg
Default value - png.

POSSIBLE ERROR CODES

7103 , 7138 , 8002 , 8046 , 8119 , 8504

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/views/<view-id>/data?CONFIG=<encoded_json_value> 
-X 'GET' 
-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;
        long workspaceId = 35130000001055707;
        long viewId = 35730000007354002;

        public void ExportData(IAnalyticsClient ac)
        {
            string responseFormat = "csv";
            string filePath = "C:\\Users\\Administrator\\Downloads\\SalesTable.csv";
            IBulkAPI data = ac.GetBulkInstance(orgId, workspaceId);
            data.ExportData(viewId, responseFormat, filePath, null);
            Console.WriteLine("success");
        }

        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.ExportData(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 = "35130000001055707"
)

func ExportData(ac ZAnalytics.Client) {
    config := map[string]interface{}{}
    responseformat := "pdf"
    filepath := "/home/local/admin/Files/Sales.pdf"
    bulk := ZAnalytics.GetBulkInstance(&ac, orgId, workspaceId)
    exception := bulk.ExportData(viewId, responseformat, filepath, config)

    if(exception != nil){
        fmt.Println(exception.ErrorMessage)
    }else{
        fmt.Println("success")
    }
}

func main() {

    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    ExportData(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.exportData(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 exportData(AnalyticsClient ac) throws Exception {
        String responseFormat = "csv";
        String filePath = "/home/local/admin/Files/Sales.csv";
        BulkAPI bulk = ac.getBulkInstance(orgId, workspaceId);
        bulk.exportData(viewId, responseFormat, filePath, null);
        System.out.println("success");
    }
}
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 exportData() {
            $response_format = "csv";
            $file_path = "/home/local/admin/Files/Sales.csv";
            $bulk = $this->ac->getBulkInstance($this->org_id, $this->workspace_id);
            $bulk->exportData($this->view_id, $response_format, $file_path);
        }
    }

    $test_obj = new Test();

    try {
        $test_obj->exportData();
    }
    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 export_data(self, ac):
        response_format = "csv"
        file_path = "/home/local/admin/Files/Sales.csv"
        bulk = ac.get_bulk_instance(Config.ORGID, Config.WORKSPACEID)
        bulk.export_data(Config.VIEWID, response_format, file_path)

try:
    obj = sample()
    obj.export_data(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 responseFormat = 'csv';
var filePath = '/home/local/admin/Files/Sales.csv';
var bulk = ac.getBulkInstance(orgId, workspaceId);
bulk.exportData(viewId, responseFormat, filePath).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);
config = Map();
config.put("responseFormat","csv");
paramsMap = Map();
paramsMap.put("CONFIG",config.toString());
response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/views/" + viewId + "/data"
  type :GET
  parameters:paramsMap
  headers:headersMap
  connection:"analytics_oauth_connection"
];
info response;

Download client libraries:  C# | GO | JAVA | PHP | PYTHON | NodeJS

Sample value for CONFIG parameter:

Copied{
"responseFormat":"csv"
}

Sample Response

CopiedHTTP/1.1 200 OK
Content-Type:text/csv;charset=UTF-8

Date,Region,Product,Customer Name,Sales
"15 June, 2021",East,Cereals,Vincent Herbert,682.39
"15 June, 2021",West,Clocks,John Britto,$272.34
"15 June, 2021",Central,Art Supplies,Susan Juliet,$45.31