DocsGetting started

Start here

Getting started

Install the SDK, construct a client, and make a first authenticated call.

Install#

Place the package under your module as zoho/pkg/analyticsclient and import it:

go
import ZAnalytics "zoho/pkg/analyticsclient"

Go returns errors rather than raising them: every method returns a trailing *ServerException which is nil on success.

Register an OAuth client#

  1. Open the Zoho API Console for your data center.
  2. Create a Self Client for server-to-server integrations, or a Server-based Application if users will authorise your app themselves.
  3. Note the Client ID and Client Secret.
  4. Generate a refresh token with the scopes your integration needs — see Authentication.

Construct the client#

go
package main

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

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

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

Get a scoped instance#

The client hands out four scoped objects. Each one binds the identifiers it needs, so you do not repeat them on every call.

go
org       := ZAnalytics.GetOrgInstance(&ac, orgId)
workspace := ZAnalytics.GetWorkspaceInstance(&ac, orgId, workspaceId)
view      := ZAnalytics.GetViewInstance(&ac, orgId, workspaceId, viewId)
bulk      := ZAnalytics.GetBulkInstance(&ac, orgId, workspaceId)
InstanceBound toUse for
OrgAPIorganizationUsers, roles, admins, subscription, security controls.
WorkspaceAPIorganization + workspaceViews, folders, schedules, alerts, backups, sharing.
ViewAPIorganization + workspace + viewRows, columns, formulas, publishing.
BulkAPIorganization + workspaceImporting and exporting data.

Make a first call#

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

org := ZAnalytics.GetOrgInstance(&ac, orgId)

workspaces, exception := org.GetOrgWorkspaces()
if exception != nil {
    fmt.Printf("HTTP %d / %v: %s\n",
        exception.HttpStatusCode, exception.ErrorCode, exception.ErrorMessage)
    return
}
fmt.Println(workspaces)

A successful call returns the data payload of the response envelope, already decoded. A failure raises or returns A returned *ServerException with ErrorCode, ErrorMessage, HttpStatusCode and Action..

Sample response#

json
{
  "status": "success",
  "summary": "Get organizations",
  "data": {
    "orgs": [
      {
        "orgId": "55522777",
        "orgName": "Zylker Analytics",
        "orgDesc": "",
        "timeZone": "Asia/Kolkata",
        "role": "ORGADMIN"
      }
    ]
  }
}

The SDK unwraps the envelope for you: the value you receive is the contents of data.orgs, not the whole document above.

Where to go next#

  • Authentication — read the token throttle section before you ship.
  • Errors — what to branch on when a call fails.
  • Importing data — the three import modes and when to use each.
Zoho Analytics Go SDK · REST API v2 Generated 2026-10-27