Start here
Getting started
Install the SDK, construct a client, and make a first authenticated call.
Install#
Require the client. Every method returns a Promise, so use await inside an async function or chain .then() / .catch().
var analyticsClient = require('./AnalyticsClient');Register an OAuth client#
- Open the Zoho API Console for your data center.
- Create a Self Client for server-to-server integrations, or a Server-based Application if users will authorise your app themselves.
- Note the Client ID and Client Secret.
- Generate a refresh token with the scopes your integration needs — see Authentication.
Construct the client#
var analyticsClient = require('./AnalyticsClient');
var clientId = '1000.xxxxxxx';
var clientSecret = 'xxxxxxx';
var refreshToken = '1000.xxxxxxx.xxxxxxx';
var ac = new analyticsClient(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.
var org = ac.getOrgInstance(orgId);
var workspace = ac.getWorkspaceInstance(orgId, workspaceId);
var view = ac.getViewInstance(orgId, workspaceId, viewId);
var bulk = ac.getBulkInstance(orgId, workspaceId);| Instance | Bound to | Use for |
|---|---|---|
OrgAPI | organization | Users, roles, admins, subscription, security controls. |
WorkspaceAPI | organization + workspace | Views, folders, schedules, alerts, backups, sharing. |
ViewAPI | organization + workspace + view | Rows, columns, formulas, publishing. |
BulkAPI | organization + workspace | Importing and exporting data. |
Make a first call#
var ac = new analyticsClient(clientId, clientSecret, refreshToken);
async function main() {
try {
var org = ac.getOrgInstance(orgId);
var workspaces = await org.getOrgWorkspaces();
console.log(workspaces);
} catch (error) {
console.log('Server error ' + error.errorCode + ': ' + error.errorMessage);
}
}
main();A successful call returns the data payload of the response envelope, already decoded. A failure raises or returns A rejected Promise carrying errorCode and errorMessage..
Sample response#
{
"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.