REST API Documentation

  • API Reference
  • OAuth2.0 & Introduction
  • OAuth Requests & Step 1: Register your application
  • Step 2: Authorization Request
  • Step 3: Generate Access Token and Refresh Token
  • Step 4: Refresh Access Tokens
  • Step 5: Revoking Tokens
  • API Limits
  • API Dashboards
  • HTTP Status Codes
  • HTTP Methods
  • Modules APIs & Get list of modules
  • Users APIs & Get users
  • Get single user data
  • Roles APIs & Get roles
  • Get single role data
  • Profiles APIs & Get profiles
  • Get single profile data
  • Layouts
  • Single Layout
  • Custom Views
  • Single Custom View
  • Organization API & Organization Data
  • Upload Organization photo
  • Bulk Record APIs & Get list of records
  • Insert records
  • Update records
  • Insert or Update (upsert)
  • Delete records
  • Get list of deleted records
  • Search records
  • Single Record APIs & Get a specific record
  • Insert a specific record
  • Update a specific record
  • Delete a specific record
  • Convert Lead
  • Subform APIs
  • Bulk Read APIs & Create Bulk Read Job
  • Get Bulk Read Job details
  • Download Bulk Read Job result
  • Tag APIs & Get Tags
  • Get record counts for a specific tag
  • Create new tags
  • Merge tags
  • Single tag update
  • Multiple tag updates
  • Delete a tag
  • Add tags to a single record
  • Add tags to multiple records
  • Remove tags from a single record
  • Remove tags from multiple records
  • Notes APIs & Get notes
  • Get specific notes data
  • Create notes
  • Create specific notes
  • Update notes
  • Delete specific notes
  • Delete notes
  • Files and Attachments APIs & Get list of attachments
  • Upload an attachment
  • Download an attachment
  • Delete an attachment
  • Upload a photo
  • Download a photo
  • Delete a photo
+
  • API Reference
    • OAuth2.0
      • Introduction
        • OAuth Requests
          • Step 1: Register your application
          • Step 2: Authorization Request
          • Step 3: Generate Access Token and Refresh Token
          • Step 4: Refresh Access Tokens
          • Step 5: Revoking Tokens
  • API Limits
  • API Dashboards
  • HTTP Status Codes
  • HTTP Methods
  • Modules APIs
    • Users APIs
      • Get Users
      • Get single user data
    • Roles APIs
      • Get Roles
      • Get single role data
    • Profiles APIs
      • Get Profiles
      • Get single profile data
      • Module Meta Data
      • Layouts
      • Single Layout
      • Custom Views
      • Single Custom View
    • Organization APIs
      • Get Organization data
      • Upload Organization photo
    • Record APIs
        • Bulk Records APIs
          • Get list of records
          • Insert records
          • Update records
          • Insert or Update (upsert)
          • Delete records
          • Get list of deleted records
          • Search records
        • Single Record APIs
          • Get a specific record
          • Insert a specific record
          • Update a specific record
          • Delete a specific record
          • Convert Lead
      • Subform APIs
    • Bulk Read APIs
      • Create a Bulk Read Job
      • Get Bulk Read Job Details
      • Download Bulk Read Result
    • Tag APIs
      • Get Tags
      • Get record count for a specific tag
      • Create New Tags
      • Merge Tags
      • Single Tag Update
      • Multiple Tag Update
      • Delete a Tag
      • Add Tags to a Specific record
      • Add Tags to Multiple records
      • Remove Tags from a Specific record
      • Remove Tags from Multiple record
      • Get related records
    • Notes APIs
      • Get notes
      • Get specific notes data
      • Create notes
      • Create specific notes
      • Update notes
      • Delete specific notes
      • Delete notes
    • Files and Attachments APIs
      • Get list of attachments
      • Upload an attachment
      • Download an attachment
      • Delete an attachment
      • Upload a photo
      • Download a photo
      • Delete a photo

API Reference

SkyDesk CRM provides REST API (Application Programming Interface) that lets you integrate CRM with third-party applications such as, accounting, ERP, ecommerce, self-service portals and others.

The REST API uses simple HTTP methods, such as GET, POST, PUT and DELETE. These methods allow CRM data to be extracted in JSON format including errors, making it easy to develop new applications and also to integrate with existing business applications.

Note:

All requests to the API should be made over HTTPS. The API requests and responses are formatted in JSON.

OAuth2.0

Introduction

The SkyDesk CRM API is authenticated using OAuth2.0 protocol. This allows you to share specific data with any application while keeping your usernames and passwords private. This protocol provides users with a secure and easy way to use authentication.

Why use OAuth2.0?

  • You can revoke a customer's access to the application any time.
  • No need for disclosing credentials to clients.
  • No information will be revealed even if the client is hacked, since access tokens are issued to individual applications and not the client as a whole.
  • Specific scopes can be applied to either restrict or provide access to certain data for the client. It would be different for each client application.

How OAuth2.0 works?


There are different type of tokens defined by OAuth2.0, which are used to serve different purposes in the authentication process. Please take a look at the following terms and the differences between each of them.

Protected resources

The SkyDesk CRM resources, such as Leads, Contacts, Deals, etc.

Resource server

The SkyDesk CRM server that hosts the protected resources.

Resource owner

Any end user of your account, who can grant access to the protected resources.

Client

An application that sends requests to the resource server to access the protected resources on behalf of the end user.

Authentication server

Authorization server provides the necessary credentials (such as Access and Refresh tokens) to the client. In this case, it will be the SkyDesk CRM authorization server.

Authentication code

A temporary token created by the authorization server and sent to the client via the browser. The client will send this code to the authorization server in order to obtain an access and refresh tokens.

Access Token

A token that is sent to the resource server to access the protected resources of the user. The Access token provides a secure and temporary access to SkyDesk CRM APIs and is used by the applications to make requests to the connected app. Each access token will be valid only for an hour, and can be used only for the set of operations that is described in the scope.

Refresh Token

A token that can be used to obtain new access tokens. This token has an unlimited lifetime until it is revoked by the end user.

Scope

While accessing each endpoint, you need to authenticate your application using an appropriate key and scope. The SkyDesk CRM API uses selected scopes, which control the type of resource that can be accessed by the client application. Tokens are usually created with various scopes to ensure improved security. For example, you can generate a scope to create or view a lead, or to view metadata and so on.

Available Scopes

Scope Name Associated Methods
users users.all
org org.all
settings settings.all, settings.territories, settings.custom_views, settings.related_lists, settings.modules, settings.tab_groups, settings.fields, settings.layouts, settings.macros, settings.custom_links, settings.custom_buttons, settings.roles, and settings.profiles
modules modules.all, modules.approvals, modules.leads, modules.accounts, modules.contacts, modules.deals, modules.campaigns, modules.tasks, modules.cases, modules.events, modules.calls, modules.solutions, modules.products, modules.vendors, modules.pricebooks, modules.quotes, modules.salesorders, modules.purchaseorders, modules.invoices, modules.custom, modules.dashboards, modules.notes, modules.activities, modules.search

Scopes contain three parameters which are important. They are the service name, scope name and the operation type.

For instance,

https://accounts.skydesk.jp/oauth/v2/auth?scope=SkyDeskCRM.modules.ALL

In the above example, the service name of the API is "SkyDeskCRM". The scope name is "modules", which represents all of the modules of your SkyDesk CRM account. And the operation type is "ALL", which represents that you have full access to the modules.

The operation type can be ALL, READ, CREATE, DELETE or UPDATE.

Group Scopes

Group scopes are ones which provide complete access to all functions that can be performed on the record. For instance, group scopes allows a user to read, create, update and delete records of all modules whereas separate scopes allow access to only one or some modules based on the requirement.

For instance,

https://accounts.skydesk.jp/oauth/v2/auth?scope=SkyDeskCRM.modules.ALL,SkyDeskCRM.settings.ALL&
client_id={client_id}&response_type=code&
access_type={"offline"or"online"}&redirect_uri={redirect_uri}

The above scope gives the user access to all the modules available in the client SkyDeskCRM account.

You can also restrict certain permissions such as making the information read-only, by setting up specific scopes.

Some examples would be:

  • scope=SkyDeskCRM.modules.READ
  • scope=SkyDeskCRM.modules.CREATE
  • scope=SkyDeskCRM.modules.UPDATE
  • scope=SkyDeskCRM.modules.DELETE

Separate Scopes

Separate scopes are used to provide access to data in a particular module without access to other modules.

For instance,

https://accounts.skydesk.jp/oauth/v2/auth?scope=SkyDeskCRM.modules.leads.ALL,SkyDeskCRM.modules.deals.ALL,SkyDeskCRM.settings.ALL&
client_id={client_id}&response_type=code&
access_type={"offline"or"online"}&redirect_uri={redirect_uri}

The above scope gives the user access to only the leads and deals modules from the client SkyDeskCRM account.

Additionally, you can set specific permissions, like read, create, update or delete, for each module. For examples:

  • scope=SkyDeskCRM.modules.leads.READ
  • scope=SkyDeskCRM.modules.leads.CREATE
  • scope=SkyDeskCRM.modules.leads.UPDATE
  • scope=SkyDeskCRM.modules.leads.DELETE

Important

User Access Token must be kept confidential, since it defines the type of API that you use. Do NOT expose your Access Token anywhere in public forums, public repositories or on your website's client side code like HTML or JavaScript. Exposing it to public may lead to data theft, loss or corruption.

OAuth Requests

Step 1: Register your application

Before you get started with authorization and make any calls to the SkyDesk CRM API, you need to register your application with SkyDesk CRM API.

To register:

  • Go to the site: accounts.skydesk.jp/developerconsole
  • Click Add Client ID.
  • Enter the Client name, domain and redirect URL.
  • Click Create.
  • Note down your client ID.

Registered applications will receive the following credentials:

Client id – The consumer key generated from the connected app.

Client Secret – The consumer secret generated from the connected app.

Redirect URI – The Callback URL that you registered during the app registration.

Self-Client:

In case the user does not have a domain and a redirect URL, the self-client option can be used to get access token.

Step 1:

Step 2:

Clicking View Code will provide the user with a Grant token. Use the grant token to generate access and refresh token as mentioned in Step 3.

Step 2: Authorization Request

To authenticate your application, you need to redirect the user of the client application to the suitable authorization endpoint. On successful login, SkyDesk CRM will call your redirect URI along with an authorization code.

Now authorize yourself using the following parameters:

Parameter Description
scope Specifies what data can be accessed by your application. Refer “Scope” for more info.
client_id Specify the consumer key generated from the connected app.
redirect_uri Specify the Callback URL that you registered during the app registration.
response_type Specify response_type as code.
access_type Specify access_type as online or offline. If you want to generate the refresh token, please set the value as "offline".

To authorize your app:

  • Once you have your client ID, enter the Authorization URL in the browser, which would be like this:

    https://accounts.skydesk.jp/oauth/v2/auth?scope=SkyDeskCRM.users.ALL&client_id={client_id}
    &response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}

  • In the resultant page, click Accept.
  • You will get redirected to the "redirect_uri" that you specified during registration of the app. The URL of that page would be like this:

    {redirect_uri}?code={grant_token}&location=us&accounts-server=https%3A%2F%2Faccounts.skydesk.jp

  • You will get redirected to the "redirect_uri" that you specified during registration of the app.
  • Note down the "code={grant_token}" parameter.
    This is a short-lived token (valid only for a minute) and will be used to generate the access token and refresh token.

Note:

The above authorization URL has the scope for the Users. You can change the scope as per your requirement.

Step 3: Generate Access Token and Refresh Token

OAuth2.0 requests are usually authenticated with an access token, which is passed as bearer token. To use this access token, you need to construct a normal HTTP request and include it in an Authorization header along with the value of Bearer.

The following parameters are required to generate the access token and refresh token:

Parameter Description
grant_type Enter the value as "authorization_code".
client_id Specify client-id obtained from the connected app.
client_secret Specify client-secret obtained from the connected app.
redirect_uri Specify the Callback URL that you registered during the app registration.
code Enter the grant token generated from previous step.

To generate access and refresh token:

  • Make a POST request with the following URL:

    https://accounts.skydesk.jp/oauth/v2/token?code={grant_token}&redirect_uri={redirect_uri}&client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code

  • If the request is successful, you would receive the following:

    {
    "access_token": "{access_token}",
    "refresh_token": "{refresh_token}",
    "expires_in_sec": 3600,
    "api_domain": "https://apis.skydesk.jp",
    "token_type": "Bearer",
    "expires_in": 3600000
    }

This completes the authentication. Once your app receives the access token, send the token in your HTTP authorization header to SkyDesk CRM API with the value "Zoho-oauthtoken {access_token}" for each endpoint (for each request). Please note that your "access_token" will be expired in an hour.

Step 4: Refresh Access Tokens

As obvious as it is, refresh tokens are used to generate new access tokens when the current ones are past the expiry time.

  • Make a POST request with the following URL:

    https://accounts.skydesk.jp/oauth/v2/token?refresh_token={refresh_token}&client_id={client_id}&client_secret={client_secret}&grant_type=refresh_token

  • If the request is successful, you will receive the following output

    {
    "access_token": "{new_access_token}",
    "expires_in_sec": 3600,
    "api_domain": "https://apis.skydesk.jp",
    "token_type": "Bearer",
    "expires_in": 3600000
    }

Note:

There are no limitations on the number of access tokens that can be generated using a single refresh token, having said that, at any instance of time you can have at most 15 active access tokens(non expired).

We have provided with a sample test OAuth in all the examples, so that you can test any example on your own. You can replace the sample OAuth Token with your actual token to test requests from your CRM account.

Step 5: Revoking Tokens

In case if you wish to revoke the refresh_token, use the below approach.

  • Use the "POST" HTTP method and construct the following URL to revoke the refresh_token.

https://accounts.skydesk.jp/oauth/v2/token/revoke?token={refresh_token}

API Limits

SkyDesk CRM uses a credit system to provide a rate limit to your application. Each API call made will result in reduction of 1 credit. However, for some APIs, the credit reduction would be different. For example, for a "Convert Lead API", 5 credits will be reduced for a single API call.

Credit system


API calls in SkyDesk CRM are associated with Credits. The credits are deducted from your Credit Count, based on the type of the API call that you make. The credit deduction is based upon the intensiveness of the performance, and the memory usage of the operations involved in the API calls.


Maximum credit limits in a 24-hour window for various editions of SkyDesk CRM

Edition Allowed Credits Maximum Credits
Free Edition 5000 credits 5000 credits
Standard Edition 5,000 credits + (Number of User licenses x 250) 100,000 credits
Professional 10,000 credits + (Number of User licenses x 500) 200,000 credits
Enterprise 10,000 credits + (Number of User licenses x 1000) 500,000 credits

Note:

  • For instance, in Standard edition, if an Organization has 10 User licenses, the minimum number of available API credits an organisation can make use of in a day is increased by (10 x 250) requests/day, making it 7500 credits.
  • Even if the number of user licenses are high, the API credit limit does not exceed the maximum limit. For ex: if the org account is the Enterprise Edition and the User licenses are 500, the total credits would become 510,000. However, the maximum api credits limit is 500,000.

The credit deduction for some of the API operations are listed below -

API Call Number of Credits Deducted
Get Users/Roles/Profiles 1
Get list of Modules 1
Get Field Meta Data 1
Get Module Meta Data 1
Get IDs of deleted records 2
Get records with cvid parameter 3
Convert Lead 5
Add/Remove Tags to Multiple records 1 credit for every 50 records
Insert/Update/Upsert 1 credit for every 10 records
Bulk Read Initialize 50
All other APIs 1

Note:

  • The Insert/Update/Upsert API call can be made for a maximum of 100 records, and the Add/Remove Tags to Multiple records API call can be made for a maximum of 500 records. Therefore, the maximum number of credits that can be deducted for these two API calls are 10.
  • The API call limit has a rolling 24 hours window, from the start of the call.

Concurrency limits for various editions of SkyDesk CRM


However, in addition to the above credit system, a Concurrency system is used to calculate API Limits based on the number of concurrent calls made per user per app in SkyDesk CRM. These concurrency limits therefore specify the maximum number of API calls that can be simultaneously active at a given point of time for a user per app.

Since the API limits are based on the number of simultaneous active calls, there are no time-based API call restrictions in SkyDesk CRM. You can make any number of API calls in a minute, provided the number of concurrent calls are within the specified limits.

Edition Concurrency Limits for a User/App
Free 5
Standard 10
Professional 15
Enterprise 20

API Dashboard

The new API dashboard features an all new interface to view your usage statistics. The interface is made up of a graph view and a table view. You can classifiy the stats based on modules, IP address from which the call was made, method, user or time. This dashboard supports the previous version of the API as well as the new version.

The New API Usage statistics:

  • The progress bar stays purple till 90% of the API calls are made, after which it turns red.
  • The new API follows the "Last 24 hours tracking" method.

Note:

  • The last 24 hours tracking method is practised only in the new version 2 API.
  • There would be a 15 minute delay in refreshing the statistics. However, the number of API calls used are updated immediately.
  • Statistics of API Usage older than 30 days will be deleted periodically.

The usage statistics helps you keep track of the number of API calls that you have made in order to plan how to use the CRM in the most effective way. The statistics for the V2 API(new) is classified in the following ways.

Application based:

The new API relies on making API calls from specific applications. Hence, the classification based on what application the call was made from would make more sense than classifying them based on the method of the API call.

Graph view:

A doughnut chart is used to represent the top 5 applications for which APIs were called.

Click the List view icon to view the top 5 most used applications in list format.

Note:

  • Click any of the application name to open the statistics for that application in Table view.

Table view:

The applications column is set as the default column and the rest of the information are arranged accordingly.

Module based:

You can view usage statistics based on API calls from modules.

Graph view:

Only the top 5 modules are displayed in the Graph view. Click on any of the module's name to open the stats in table view with the default column as "Module".

Note:

  • Click the list view button to view, the top 5 methods from which the API calls are made, can be viewed as a list.
  • Click View all to view the statistics of all the modules.

Table view:

The table view is even more precise as it displays all the information regarding the module in one go.

Note:

  • Click Sort order to sort the table in the required view.
  • Hover the pointer to the information and you can see the connection between the records.

IP Address based:

List view:

You can find the statistics based on the User's IP address in the Graph view page. In other words, the stats are displayed based on the Access points of the Users. The Top 5 IP Addresses classified based on number of API calls made from them, will be displayed. To view all of the User IP addresses, click View all.

Note:

  • Click on any of the IP addresses to open the Table view with IP address as the default column.

Table view:

The table view, the IP address column is set as default and the rest of the information is arranged based on it.

User based:

You can view the usage based on who made the API calls in the Prolific users section.

Graph view:

The top 3 users who made the most API calls are listed in this section.

Note:

  • Click View all, to view the number of API calls made by all individual users.

Table view:

The IP address, method and the module used by a User can be viewed by setting the User column as the default column in the Table view. However, refreshing the page resets the view.

Time based:

One of the easier way to know your usage and limits would be to take account of the time in which the API calls are made. This is available only in the graph view.

The graph displaying stats in a single day:

The graph displaying stats for a range of dates:

HTTP Status Codes

Status Codes Meaning Description
200 OK The API request is successful.
201 CREATED Request fulfilled for single record insertion.
202 ACCEPTED Request fulfilled for multiple records insertion.
204 NO CONTENT There is no content available for the request.
304 NOT MODIFIED The requested page has not been modified. In case "If-Modified-Since" header is used for GET APIs
400 BAD REQUEST The request or the authentication considered is invalid.
401 AUTHORIZATION ERROR Invalid API key provided.
403 FORBIDDEN No permission to do the operation.
404 NOT FOUND Invalid request.
405 METHOD NOT ALLOWED The specified method is not allowed.
413 REQUEST ENTITY TOO LARGE The server did not accept the request while uploading a file, since the limited file size has exceeded.
415 UNSUPPORTED MEDIA TYPE The server did not accept the request while uploading a file, since the media/ file type is not supported.
429 TOO MANY REQUESTS Number of API requests per minute/day has exceeded the limit.
500 INTERNAL SERVER ERROR Generic error that is encountered due to an unexpected server error.

HTTP Methods

Method Description
GET To retrieve data from the given server.
POST To insert or upload any new resource to the server.
PUT To update an existing resource. This replaces the target resource with the updated content.
DELETE To delete a resource at a particular location.

For example, using the GET method, you can retrieve the list of resources or get the details of a particular resource.

To get a list of modules, send request as shown below:

curl "https://apis.skydesk.jp/crm/v2/settings/modules"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

To get the details of a specific record, send the record_id in your API request as shown below:

curl "https://apis.skydesk.jp/crm/v2/Leads/410888000000698006"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Modules APIs

SkyDesk CRM has standard modules such as, Leads, Accounts, Contacts, Deals, Forecasts, Activities, etc,. Using SkyDesk CRM REST API, you can retrieve the list of available modules as shown in the examples below:

Get list of modules

Purpose

To get the module related data. This will retrieve the list of modules available in your CRM account.

Request URL

https://apis.skydesk.jp/crm/v2/settings/modules

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.modules.{operation_type}

Possible operation types
ALL, READ

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/modules"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Attributes:

  • "convertable" : Describes if the user can convert the record into another type of record. For example: Convert Leads in to Deals.
  • "creatable" : Checks if the user can create a record in the current module.
  • "generated_type" : Describes the type of module which would be generated by the user. There are 4 types: default, web, custom, linking.
  • "api_supported" : The modules which are currently not accessible by APIs have value as "false". If the modules are supported in the future, the value automatically changes to "true".
  • "modified_time" : The date and time of changes made by the user.

Note:

The key "api_name" should be referred in the JSON data while accessing the resource. Every module, field and related lists will have a API name, which can be used in third party integrations. For example, if you want to access the Leads module, “Leads" has to be used as the api_name every time you access the resource. New API names are generated internally in SkyDesk CRM, while creating a custom module, custom field or related list label. Please note that, API Names for the default modules, fields and related lists cannot be altered. You are allowed to change the API names only for custom modules, fields and related lists.

The generated API name can contain only alphabets, numbers and underscore. The API name should start with an alphabet and should not have two consecutive underscores or end with an underscore.

Users APIs

In SkyDesk CRM, user is the one who is allowed to access and manage the CRM records. These users can be defined under various profiles and categories such as Administrators, Standard, etc,.

Using the Users APIs, you can retrieve the basic information of your available CRM users. Use the type parameter to get the required list of users. For example, you can set the param type as AdminUsers, to get the list of CRM users with Administrative profile. The detailed explanation of the Users API and the examples are shown below:

Get users

Purpose

To retrieve the users data specified in the API request. You can specify the type of users that needs to be retrieved using the Users API. For example, use type=AllUsers, to get the list of all the CRM users available.

Request URL

https://apis.skydesk.jp/crm/v2/users

Scope

scope=SkyDeskCRM.users.{operation_type}

Possible operation types
ALL - Full access to users
READ - get user data

Request Method

GET

Parameters

Parameter Name Data Type Description
type String
AllUsers

To list all users in your organization (both active and inactive users)

ActiveUsers

To get the list of all Active Users

DeactiveUsers

To get the list of all users who were deactivated

ConfirmedUsers

To get the list of confirmed users

NotConfirmedUsers

To get the list of non-confirmed users

DeletedUsers

To get the list of deleted users

ActiveConfirmedUsers

To get the list of active users who are also confirmed

AdminUsers

To get the list of admin users.

ActiveConfirmedAdmins

To get the list of active users with the administrative privileges and are also confirmed

CurrentUser

To get the list of current CRM users

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/users?type=AllUsers"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Load more examples

Get single user data

Purpose

To get the details of any specific user. Specify the unique id of the user in your API request to get the data for that particular user.

Request URL

https://apis.skydesk.jp/crm/v2/users/{user_id}

user_id - Specify the unique id of the user.

Scope

scope=SkyDeskCRM.users.{operation_type}

Possible operation types
ALL - Full access to users
READ - get user data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/users/4108880000469041"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Roles APIs

In SkyDesk CRM, roles are issued to users by the Administrator. Usually, roles are meant to denote the different levels of employees in a company. For instance, it can be Managers, Sales Reps, Supervisors, Product Management Staff, etc.

Using the Roles APIs, you can retrieve the basic information of roles. The detailed explanation of the Roles APIs and the examples are shown below:

Get roles

Purpose

To retrieve the data of roles through an API request.

Request URL

https://apis.skydesk.jp/crm/v2/settings/roles

Scope

scope=SkyDeskCRM.settings.roles.{operation_type}

Possible operation types
ALL - Full access to roles data
READ - get role data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/roles"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Get single role data

Purpose

To get the details of any specific role. Specify the unique id of the role in your API request to get the data for that particular role.

Request URL

https://apis.skydesk.jp/crm/v2/settings/roles/{role_id}

role_id - Specify the unique id of the role.

Scope

scope=SkyDeskCRM.settings.roles.{operation_type}

Possible operation types
ALL - Full access to roles data
READ - get role data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/roles/2883756000000026005"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Profiles APIs

Profiles define a set of privileges a user has within SkyDesk CRM. The administrator gets to decide a user's level of data access. All users need to be assigned to a profile during initialization.

Using the Profiles APIs, you can retrieve the basic information of the profiles. The detailed explanation of the Profiles APIs and the examples are shown below:

Get roles

Purpose

To retrieve the data of profiles through an API request.

Request URL

https://apis.skydesk.jp/crm/v2/settings/profiles

Scope

scope=SkyDeskCRM.settings.profiles.{operation_type}

Possible operation types
ALL - Full access to profiles data
READ - get profile data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/profiles"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Get single profile data

Purpose

To get the details of any specific profile. Specify the unique id of the profile in your API request to get the data for that particular profile.

Request URL

https://apis.skydesk.jp/crm/v2/settings/profiles/{profile_id}

profile_id - Specify the unique id of the profile.

Scope

scope=SkyDeskCRM.settings.profiles.{operation_type}

Possible operation types
ALL - Full access to profile data
READ - get profile data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/profiles/2883756000000026011"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Bulk Read APIs

SkyDesk CRM allows you to export and take a backup of all your CRM data. You can export data (in CSV format) from individual CRM modules. The result is available only as a ZIP file.

Create Bulk Read job (Bulk Export)

Purpose

To create a bulk read job to export records.

Request URL

https://apis.skydesk.jp/crm/bulk/v2/read

Scope

scope=SkyDeskCRM.bulk.read
(and)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to a record
READ - get bulk read job

Request JSON

Attributes Data Type Mandatory Description
callback String No A valid URL, which should allow HTTP Post method. The Bulk Read Job's details is posted to this URL on successful completion of job or on failure of job.
module String (query JSON object) Yes Specify the API Name of the module to be read. eg: Leads, Contacts. Sample - "module" : "Leads”.
fields Array (query JSON object) No Specify the API Name of the fields to be fetched. eg: First_Name, Last_Name, Email. Sample - "fields" : ["First_Name", "Last_Name", "Email”].
page Integer (query JSON object) No To get the list of records from the respective pages. Default value for page is 1. Each page contains 200,000 records. If page is not specified, then the first two hundred thousand records matching the criteria will be fetched.
criteria - (query JSON object) No To qualify records based on certain conditions and actions to be performed on the said records. Ex: The API Name of a module or field, comparators used to add two or more criteria, a group to which the record/module/field belongs to, etc.
api_name String (criteria JSON object) Yes, if group & group_operator are not specified. API name of a field to be compared. eg: First_Name, Last_Name.
value String or Array (criteria JSON object) Yes, if group & group_operator are not specified. Positive Integer values only
group_operator String (criteria JSON object) Yes, if api_name, comparator & value are not specified. Logical operators. Supported values - and, or.
group Array (criteria JSON object) Yes, if api_name, comparator & value are not specified. Array of criteria objects.
comparator String (criteria JSON object) Yes, if group & group_operator are not specified. Specify any kind of comparator. eg: equal, greater_than. Refer the table given below for more details.

Comparators

Data Type Comparator Value Limits
Number (Integer/
Decimal/BigInteger/
Currency/Percent)
equal, not_equal, in, not_in, less_than, less_equal, greater_than, greater_equal Any number values or ${EMPTY} for empty value. Not more than 19 digits for big integer, allow decimal values for decimal & currency fields. In multi-currency enabled account, only home currency value is supported.
Text (Email, Phone, URL, Picklist, Multi-select, etc) equal, not_equal, in, not_in, contains, not_contains, starts_with, ends_with. Any text values or ${EMPTY} for empty value Not more than 255 characters.
Date equal, not_equal, in, not_in, between, not_between. Any date values or ${EMPTY} for empty value.  
Date Time equal, not_equal, in, not_in, between, not_between. Date time value, supports “till seconds" or ${EMPTY} for empty value. Milliseconds is not supported.
Boolean equal True / False.  
Lookup equal, not_equal, in, not_in Biginteger value of the lookup or ${EMPTY} for empty value. Lookup Name is not supported.
Text Area (Multiline)     Not Supported.

Request Method

POST

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/bulk/v2/read"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@inputData.json"

In the above request, @inputData.json contains the sample input data.

Copy sample input

Sample Input:

Copy sample response

Sample Response:

Get Bulk Read Job details

Purpose

To get the details of a bulk read job performed previously.

Request URL

https://apis.skydesk.jp/crm/bulk/v2/read/{job_id}

job_id - Specify the unique id of a bulk read job.

Scope

scope=SkyDeskCRM.bulk.read
(and)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to related records
READ - get bulk read job

Request JSON

Attributes Data Type Mandatory Description
callback String No A valid URL, which should allow HTTP Post method. The Bulk Read Job's details is posted to this URL on successful completion of job or on failure of job.
module String (query JSON object) Yes Specify the API Name of the module to be read. eg: Leads, Contacts. Sample - "module" : "Leads”.
fields Array (query JSON object) No Specify the API Name of the fields to be fetched. eg: First_Name, Last_Name, Email. Sample - "fields" : ["First_Name", "Last_Name", "Email”].
page Integer (query JSON object) No To get the list of records from the respective pages. Default value for page is 1. Each page contains 200,000 records. If page is not specified, then the first two hundred thousand records matching the criteria will be fetched.
criteria - (query JSON object) No To qualify records based on certain conditions and actions to be performed on the said records. Ex: The API Name of a module or field, comparators used to add two or more criteria, a group to which the record/module/field belongs to, etc.
api_name String (criteria JSON object) Yes, if group & group_operator are not specified. API name of a field to be compared. eg: First_Name, Last_Name.
value String or Array (criteria JSON object) Yes, if group & group_operator are not specified. Positive Integer values only
group_operator String (criteria JSON object) Yes, if api_name, comparator & value are not specified. Logical operators. Supported values - and, or.
group Array (criteria JSON object) Yes, if api_name, comparator & value are not specified. Array of criteria objects.
comparator String (criteria JSON object) Yes, if group & group_operator are not specified. Specify any kind of comparator. eg: equal, greater_than. Refer the table given below for more details.

Comparators

Data Type Comparator Value Limits
Number (Integer/
Decimal/BigInteger/
Currency/Percent)
equal, not_equal, in, not_in, less_than, less_equal, greater_than, greater_equal Any number values or ${EMPTY} for empty value. Not more than 19 digits for big integer, allow decimal values for decimal & currency fields. In multi-currency enabled account, only home currency value is supported.
Text (Email, Phone, URL, Picklist, Multi-select, etc) equal, not_equal, in, not_in, contains, not_contains, starts_with, ends_with. Any text values or ${EMPTY} for empty value Not more than 255 characters.
Date equal, not_equal, in, not_in, between, not_between. Any date values or ${EMPTY} for empty value.  
Date Time equal, not_equal, in, not_in, between, not_between. Date time value, supports “till seconds" or ${EMPTY} for empty value. Milliseconds is not supported.
Boolean equal True / False.  
Lookup equal, not_equal, in, not_in Biginteger value of the lookup or ${EMPTY} for empty value. Lookup Name is not supported.
Text Area (Multiline)     Not Supported.

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/bulk/v2/read/1000000031045"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response for Job Added

Copy sample response

Sample Response for Job In Progress

Copy sample response

Sample Response for Job Completed

Download Bulk Read result

Purpose

To download the bulk read job as a CSV file. (i.e) Bulk Export of records. The file would be in .zip format. Extract it to get the CSV file.

Request URL

https://apis.skydesk.jp/crm/bulk/v2/read/{job_id}/result

job_id - Specify the unique id of a bulk read job.

Scope

scope=SkyDeskCRM.bulk.read
(and)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to related records
READ - get bulk read job

Request JSON

Attributes Data Type Mandatory Description
callback String No A valid URL, which should allow HTTP Post method. The Bulk Read Job's details is posted to this URL on successful completion of job or on failure of job.
module String (query JSON object) Yes Specify the API Name of the module to be read. eg: Leads, Contacts. Sample - "module" : "Leads”.
fields Array (query JSON object) No Specify the API Name of the fields to be fetched. eg: First_Name, Last_Name, Email. Sample - "fields" : ["First_Name", "Last_Name", "Email”].
page Integer (query JSON object) No To get the list of records from the respective pages. Default value for page is 1. Each page contains 200,000 records. If page is not specified, then the first two hundred thousand records matching the criteria will be fetched.
criteria - (query JSON object) No To qualify records based on certain conditions and actions to be performed on the said records. Ex: The API Name of a module or field, comparators used to add two or more criteria, a group to which the record/module/field belongs to, etc.
api_name String (criteria JSON object) Yes, if group & group_operator are not specified. API name of a field to be compared. eg: First_Name, Last_Name.
value String or Array (criteria JSON object) Yes, if group & group_operator are not specified. Positive Integer values only
group_operator String (criteria JSON object) Yes, if api_name, comparator & value are not specified. Logical operators. Supported values - and, or.
group Array (criteria JSON object) Yes, if api_name, comparator & value are not specified. Array of criteria objects.
comparator String (criteria JSON object) Yes, if group & group_operator are not specified. Specify any kind of comparator. eg: equal, greater_than. Refer the table given below for more details.

Comparators

Data Type Comparator Value Limits
Number (Integer/
Decimal/BigInteger/
Currency/Percent)
equal, not_equal, in, not_in, less_than, less_equal, greater_than, greater_equal Any number values or ${EMPTY} for empty value. Not more than 19 digits for big integer, allow decimal values for decimal & currency fields. In multi-currency enabled account, only home currency value is supported.
Text (Email, Phone, URL, Picklist, Multi-select, etc) equal, not_equal, in, not_in, contains, not_contains, starts_with, ends_with. Any text values or ${EMPTY} for empty value Not more than 255 characters.
Date equal, not_equal, in, not_in, between, not_between. Any date values or ${EMPTY} for empty value.  
Date Time equal, not_equal, in, not_in, between, not_between. Date time value, supports “till seconds" or ${EMPTY} for empty value. Milliseconds is not supported.
Boolean equal True / False.  
Lookup equal, not_equal, in, not_in Biginteger value of the lookup or ${EMPTY} for empty value. Lookup Name is not supported.
Text Area (Multiline)     Not Supported.

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/bulk/v2/read/1000000031045/result"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Note:

  • Response contains a compressed file, {job_id}.zip, which contains the result CSV file.

Layouts

Purpose

To get the layouts associated with the particular module.

Request URL

https://apis.skydesk.jp/crm/v2/settings/layouts

Scope

scope=SkyDeskCRM.settings.layouts.read
(or)
scope=SkyDeskCRM.settings.layouts.all
(or)
scope=SkyDeskCRM.settings.all

Request Method

GET

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/layouts?module=Leads"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Single Layout

Purpose

To get the layout details of a particular module

Request URL

https://apis.skydesk.jp/crm/v2/settings/layouts/{layout_id}

layout_id - Specify the unique id of the layout.

Scope

scope=SkyDeskCRM.settings.layouts.read
(or)
scope=SkyDeskCRM.settings.layouts.all
(or)
scope=SkyDeskCRM.settings.all

Request Method

GET

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)
Curl
Copy sample response

Sample Response:

Custom Views

Purpose

To get the custom views data of a particular module. You need to specify the module name in your API request to which the custom view data has to be retrieved.

Request URL

https://apis.skydesk.jp/crm/v2/settings/custom_views

Scope

scope=SkyDeskCRM.settings.custom_views.read
(or)
scope=SkyDeskCRM.settings.custom_views.all
(or)
scope=SkyDeskCRM.settings.all

Request Method

GET

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/custom_views?module=Leads"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Single Custom View

Purpose

To get the data of any specific custom view of the module. Specify the custom view id of the module in your API request URL, so that the data related to that particular custom view will be retrieved.

Request URL

https://apis.skydesk.jp/crm/v2/settings/custom_views/{custom_view_id}

custom_view_id - Specify the unique id of the custom view.

Scope

scope=SkyDeskCRM.settings.custom_views.read
(or)
scope=SkyDeskCRM.settings.custom_views.all
(or)
scope=SkyDeskCRM.settings.all

Request Method

GET

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)
Curl
Copy sample code

Sample Request:

"https://apis.skydesk.jp/crm/v2/settings/custom_views/4108880000066613?module=Leads"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Organization API

SkyDesk CRM and it's APIs are used by Admins for management of their company. The Organization API allows access for third-party users to view information about the client's company. The information is quite secure, as administrators can enable read-only, create, or edit access to developers based on their requirements.

Get Organization Data

Purpose

To get the organization data

Request URL

https://apis.skydesk.jp/crm/v2/org

Scope

scope=SkyDeskCRM.org.{operation_type}

Possible operation types
ALL - Full access to organization data
READ - get organization data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/org"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Attributes:

  • "iso_code" : string representing base currency of the current org
  • "mc_status" : Checks if Multi-Currency is enabled or disabled.

Upload Organization photo

Each organization has a unique logo or image. You can upload and update the organization photo using this API.

Purpose

To upload the brand logo or image of the organization

Request URL

https://apis.skydesk.jp/crm/v2/org/photo

Scope

scope=SkyDeskCRM.org.{operation_type}

Possible operation types
ALL - Full access to organization data
CREATE - to upload organization photo
WRITE - sedit organization data

Request Method

POST

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/org/photo"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-F "file=@img1.png"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Record APIs

A record is an entity which stores all the combined information of a particular contact or company, which is acquired from various sources. The information may be acquired from a web-form or from social media services or advertisements, etc. The records API allows the user to get, create, update, delete or search records.

Get list of records

Purpose

To get the list of available records from a module

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes, approvals, dashboards, search and activities. ALL - Full access to record
READ - get records from a module

Request Method

GET

Parameters

Parameter Name Data Type Description Possible Values
fields (optional) String To list all the module records with respect to fields Multiple field API names, comma separated. For example: Last_Name,Email
sort_order (optional) String To sort the available list of records in either ascending or descending order asc - ascending order
desc - descending order
sort_by (optional) String To sort the available list of records based on given field Field API name
Example: Email
converted (optional) String To get the list of converted records true - get only converted records
false - get only non-converted records
both - get all records
approved (optional) String To get the list of approved records true - get only approved records
false - get only records which are not approved
both - get all records
page (optional) Integer To get the list of records from the respective pages. Default value for page is 1. Positive Integer values only
per_page (optional) Integer To get the list of records available per page. Default value for per page is 200. Positive Integer values only
cvid (optional) Integer To get the list of records based on custom views {custom_view_id}

Note:

  • sort_order applies to given sort_by field.
  • If sort_by field is not provided, then it applies to the system defined field.
  • The page and per_page parameter is used to fetch records according to their position in the CRM. Let's assume that the user has to fetch 400 records. The maximum number of records that one can get for an API call is 200. So, for records above the 200th position, they cannot be fetched. By using the page (1, 2, 3 and 4) and per_page (100) parameter, the user can fetch all 400 records using 4 API calls.

Request Headers

Header Name Data Type Description
If-Modified-Since (optional) DateTime(ISO 8601 format) To get the list of recently modifed records

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)
Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request Syntax:

zoho.crm.getRecords(<module String>,<page Long>,<perPage Long>,<optionalDataMap Map>,<connectionName String>,<userAccess Boolean>);
mandatory : module

Sample Request:

resp = zoho.crm.getRecords("Leads",5,2,{"converted":"false"});

Copy sample response

Sample Response:

Load more examples

Sample attributes:

  • The sample for Single Line:

    "Single_Line_1": "This is single line",

  • The sample for Multi Line:

    "Multi_Line_1": "This is the first line \n Now for the second Line",

  • The sample for Email:

    "Email_1": "p.boyle@zylker.com",

  • The sample for Phone:

    "Phone_1": "9900000000",

  • The sample for Picklist:

    "Picklist_1" : "In Progress",

  • The sample for Multi-select picklist:

    "Multi-Select_Picklist" : [
        "{Option_1}",
        "{Option_2}",
        "{Option_3}"

        ],

  • The sample for Date:

    "Date_1": "2017-08-16",

  • The sample for Date/time:

    "Date_Time": "2017-08-16T14:32:23+05:30",

  • The sample for Number:

    "Number_1": 575,

  • The sample for Currency:

    "Currency_1": 250000,

  • The sample for Decimal:

    "Decimal_1": 250000.50,

  • The sample for Percent:

    "Percent_1": 25,

  • The sample for Long Integer:

    "Long_Integer_1": "250000000000000",

  • The sample for Checkbox:

    "Checkbox_1": false,

  • The sample for URL:

    "URL_1": "https://crm.skydesk.jp",

  • The sample for Lookup:

    "Lookup" : {
        "name" : "James"
        "id" : "425248000000104001"
        },

  • The sample for the Record owner:

    "Owner": {
        "name" : "Patricia"
        "id": "425248000000104003"
        },

  • The sample for the Layout:

    "Layout": {
        "name" : "Custom Layout 1"
        "id": "425248000000404433"
        },

  • The sample for Auto Number:

    "Auto_Number_1": "LEAD44N",


    Where LEAD - Prefix, 44 - Assigment Number and N - Suffix.

Insert records

Purpose

To add a new entities to a module

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to record
WRITE - edit records in a module
CREATE - create records in a module

Request Method

POST

Possible Errors

HTTP Status Error Code Message Reason Details Key Values
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)
403 NO_PERMISSION permission denied to create '{modulename}' No permission to insert records
400 MANDATORY_NOT_FOUND Required field not found. If the data key isn't available. {
"api_name": "data"
}
400 INVALID_DATA Invalid Data If the data key has the invalid data type. {
"expected_data_type":
"jsonarray",
"api_name": "data"
},
202 INVALID_DATA (at the record index) Invalid Data If the record passed isn't a JSON object {
"expected_data_type":
"jsonobject",
"index": 0
}
201 MANDATORY_NOT_FOUND Required field not found. If the mandatory fields are not available. {
"api_name":
"Last_Name"
}
202 INVALID_DATA Invalid Data If the datatype is mismatched. {
"expected_data_type":
"double", "api_name":
"Decimal_1"
}

Note:

  • An error is thrown if the field value length is more than the maximum length defined for that field.
  • If an API used inside a Function when the field value length exceeds the limit, then that function receives error response from the API. For ex: If the max length for a "Text field" is defined as 10, then value given for it in API cannot be "12345678901", as it has 11 characters.
Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@newlead.json"

-X POST

Copy sample code

Sample Request Syntax:

zoho.crm.bulkCreate(<module String>,<dataList List>,<optionalDataMap Map>,<connectionName String>,<userAccess Boolean>);
mandatory : module,dataList

Sample Request: Creating Price Book records

resp = zoho.crm.bulkCreate("Price_Books", [{"Owner": {"id": "7000000031553"},"Active": true,"Pricing_Details": [{"to_range": 5,"discount": 0,"from_range": 1},{"to_range": 11,"discount": 1,"from_range": 6},{"to_range": 17,"discount": 2,"from_range": 12},{"to_range": 23,"discount": 3,"from_range": 18},{"to_range": 29,"discount": 4,"from_range": 24}],"Pricing_Model": "Differential","Description": "Design your own layouts that align your business processes precisely. Assign them to profiles appropriately.","Price_Book_Name": "Price_Book_Name oops1"},{"Owner": {"id": "7000000031553"},"Active": true,"Pricing_Details": [{"to_range": 5,"discount": 0,"from_range": 1},{"to_range": 11,"discount": 1,"from_range": 6},{"to_range": 17,"discount": 2,"from_range": 12},{"to_range": 23,"discount": 3,"from_range": 18},{"to_range": 29,"discount": 4,"from_range": 24}],"Pricing_Model": "Differential","Description": "Design your own layouts that align your business processes precisely. Assign them to profiles appropriately.","Price_Book_Name": "Price_Book_Name oops2"}]);

Sample Request: Inserting Leads

resp = zoho.crm.bulkCreate("Leads", [{"Last_Name":"Raghu Ram 1"},{"Last_Name":"Raghu Ram 2"}], {"trigger":["workflow","blueprint","approval"]});

Sample Request: Creating records in a Custom Module ("Students")

resp=zoho.crm.bulkCreate("Students",[{"Name":"Patricia Boyle new","Owner":"7000000031553","Email":"p.boyle@zylker.com","Secondary_Email":"sdf@zylker.com","Single_Line":"Single_Line 22 new","Multi_Line_1":"Room for Negotiation","Currency_1":1.245,"Email_1":"adf@aps.com","Email_Opt_Out":true,"Decimal_1":2.34,"Phone_1":"9000000000","Percent_1":9,"Tag":{"tag"},"Pick_List_1":"new pick list","Long_Integer_1":"123456789012345690","Multi_Select_1":["Val 1","Val 2"],"Checkbox_1":true,"Date_1":"2018-01-31","website":"www.skydesk.@","Date_Time_1":"2018-02-01T12:30:00+05:30","Lookup_1":{"id":"7000000032001"},"Number_1":1},{ "Name":"Deborah Grogan","Owner":"7000000031553","Email":"d.grogan@zylker.com","Secondary_Email":"dgrgn@zylker.com","Single_Line":"Single_Line 23 new","Multi_Line_1":"Negotiation succeeded","Currency_1":1.245,"Email_1":"adf@aps.com","Email_Opt_Out":true,"Decimal_1":2.34,"Phone_1":"9000000000","Percent_1":9,"Tag":{"tag"},"Pick_List_1":"new pick list","Long_Integer_1":"123456789012345690","Multi_Select_1":["Val 1","Val 2"],"Checkbox_1":true,"Date_1":"2018-01-31","website":"www.zylker.com","Date_Time_1":"2018-02-01T12:30:00+05:30","Lookup_1":{"id":"7000000032001"},"Number_1":1}]);

In the above request, @newlead.json contains the sample input data.

Note:

  • Duplicates are checked for every insert record API call based on unique fields.
  • A maximum of 100 records can be inserted per API call.
  • Provide the Field API names along with the corresponding values to be populated, in the Input.
  • The trigger input can be workflow, approval or blueprint. If the trigger is not mentioned, the workflows, approvals and blueprints related to the API will get executed. Enter the trigger value as [] to not execute the workflows.
Copy sample input

Sample Input:

Copy sample response

Sample Response:

Note:

  • Records with Subform details can also be inserted to CRM using the Records API. Please look at the below link to learn more about adding subform information within a record.
  • $approved key is used to set the records to be created in approval mode. Mostly used for leads and contacts procured from webforms.
Load more examples

Sample attributes:

  • The sample for Single Line:

    "Single_Line_1": "This is single line",

  • The sample for Multi Line:

    "Multi_Line_1": "This is the first line \n Now for the second Line",

  • The sample for Email:

    "Email_1": "p.boyle@zylker.com",

  • The sample for Phone:

    "Phone_1": "9900000000",

  • The sample for Picklist:

    "Picklist_1" : "In Progress",

  • The sample for Multi-select picklist:

    "Multi-Select_Picklist" : [
        "{Option_1}",
        "{Option_2}",
        "{Option_3}"

        ],

  • The sample for Date:

    "Date_1": "2017-08-16",

  • The sample for Date/time:

    "Date_Time": "2017-08-16T14:32:23+05:30",

  • The sample for Number:

    "Number_1": 575,

  • The sample for Currency:

    "Currency_1": 250000,

  • The sample for Decimal:

    "Decimal_1": 250000.50,

  • The sample for Percent:

    "Percent_1": 25,

  • The sample for Long Integer:

    "Long_Integer_1": "250000000000000",

  • The sample for Checkbox:

    "Checkbox_1": false,

  • The sample for URL:

    "URL_1": "https://www.skydesk.jp",

  • The sample for Lookup:

    "Lookup" : {
        "id" : "425248000000104001"
        },

  • The sample for the Record owner:

    "Owner": {
        "id": "425248000000104003"
        },

  • The sample for the Layout:

    "Layout": {
        "id": "425248000000404433"
        },

Update records

Purpose

To update the existing entity in the module

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to records
WRITE - edit records in module
UPDATE - update records in a module

Request Method

PUT

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)

Note:

  • An error is thrown if the field value length is more than the maximum length defined for that field.
  • If an API used inside a Function when the field value length exceeds the limit, then that function receives error response from the API. For ex: If the max length for a "Text field" is defined as 10, then value given for it in API cannot be "12345678901", as it has 11 characters.
Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads"

-X PUT

-d "@updatelead.json"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request Syntax:

zoho.crm.bulkUpdate(<module String>,<dataList List>,<optionalDataMap Map>,<connectionName String>,<userAccess Boolean>);
mandatory : module,dataList

Sample Request: Updating Price Book records

resp = zoho.crm.bulkUpdate("Price_Books", [{"Owner": {"id": "7000000031553"},"id":"7000000037030","Active": true,"Pricing_Details": [{"to_range": 5,"discount": 0,"from_range": 1},{"to_range": 11,"discount": 1,"from_range": 6},{"to_range": 17,"discount": 2,"from_range": 12},{"to_range": 23,"discount": 3,"from_range": 18},{"to_range": 29,"discount": 4,"from_range": 24}],"Pricing_Model": "Differential","Description": "Design your own layouts that align your business processes precisely. Assign them to profiles appropriately.","Price_Book_Name": "Price_Book_Name oops1 updated"},{"Owner": {"id": "7000000031553"},"Active": true,"Pricing_Details": [{"to_range": 5,"discount": 0,"from_range": 1},{"to_range": 11,"discount": 1,"from_range": 6},{"to_range": 17,"discount": 2,"from_range": 12},{"to_range": 23,"discount": 3,"from_range": 18},{"to_range": 29,"discount": 4,"from_range": 24}],"Pricing_Model": "Differential", "id":"7000000037031","Description": "Design your own layouts that align your business processes precisely. Assign them to profiles appropriately.","Price_Book_Name": "Price_Book_Name oops2 updated"}]);

Note:

In the above request, @updatelead.json contains the sample input.

Copy sample input

Sample Input:

Note:

  • Duplicates are checked for every update record API call based on unique fields.
  • A maximum of 100 records can be updated per API call.
  • Provide the Field API names along with the corresponding values to be populated, in the Input.
  • The trigger input can be workflow, approval or blueprint. If the trigger is not mentioned, the workflows, approvals and blueprints related to the API will get executed. Enter the trigger value as [] to not execute the workflows.
  • If the update API calls for a record are from DRE(Functions), due to workflow triggered on the same record's create / update, then workflow alone will not get executed, irrespective of the trigger param configuration.
Copy sample response

Sample Response:

Note:

  • Record details can be udpated with Subform details using the Records API. Please look at the below link to learn more about updating subform information within a record.
Load more examples

Sample attributes:

  • The sample for Single Line:

    "Single_Line_1": "This is single line",

  • The sample for Multi Line:

    "Multi_Line_1": "This is the first line \n Now for the second Line",

  • The sample for Email:

    "Email_1": "p.boyle@zylker.com",

  • The sample for Phone:

    "Phone_1": "9900000000",

  • The sample for Picklist:

    "Picklist_1" : "In Progress",

  • The sample for Multi-select picklist:

    "Multi-Select_Picklist" : [
        "{Option_1}",
        "{Option_2}",
        "{Option_3}"

        ],

  • The sample for Date:

    "Date_1": "2017-08-16",

  • The sample for Date/time:

    "Date_Time": "2017-08-16T14:32:23+05:30",

  • The sample for Number:

    "Number_1": 575,

  • The sample for Currency:

    "Currency_1": 250000,

  • The sample for Decimal:

    "Decimal_1": 250000.50,

  • The sample for Percent:

    "Percent_1": 25,

  • The sample for Long Integer:

    "Long_Integer_1": "250000000000000",

  • The sample for Checkbox:

    "Checkbox_1": false,

  • The sample for URL:

    "URL_1": "https://crm.skydesk.jp",

  • The sample for Lookup:

    "Lookup" : {
        "id" : "425248000000104001"
        },

  • The sample for the Record owner:

    "Owner": {
        "id": "425248000000104003"
        },

  • The sample for the Layout:

    "Layout": {
        "id": "425248000000404433"
        },

Insert or Update (upsert)

Purpose

To insert a new record, if the record does not exist (records will be inserted or updated based on duplicate checks). If the record already exists, then it will be updated accordingly. This is used to avoid creating duplicate records.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/upsert

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, cases, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to record
WRITE - edit records in a module
CREATE - create records in a module

Parameters

Parameter Name Data Type Description Possible Values
duplicate_check_fields (optional) String To check for duplicated records based on the fields specified in a strict sequential user-defined order followed by system-defined fields and remaining unique fields. Multiple field API names, comma separated. For example: Last_Name,Email

Note:

  • In case the user does not specify the duplicate_check_fields, the system-defined duplicate check fields followed by unique fields, are used by default.See below.

Request Method

POST

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)

Note:

  • An error is thrown if the field value length is more than the maximum length defined for that field.
  • If an API used inside a Function when the field value length exceeds the limit, then that function receives error response from the API. For ex: If the max length for a "Text field" is defined as 10, then value given for it in API cannot be "12345678901", as it has 11 characters.
Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/upsert"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@upsertlead.json"

-X POST

Copy sample code

Sample Request Syntax:

zoho.crm.upsert(<module String>,<dataMap Map>,<optionalDataMap Map>,<connectionName String>,<userAccess Boolean>);
mandatory : module,dataMap

Sample Request:

resp = zoho.crm.upsert("Leads", {"Last_Name":"Patricia upsert UF2", "UF":"p.boyle@zylker.com", "Email":"d.grogan@zylker.com"}, {"duplicate_check_fields":["UF" , "Email"]});

Note:

In the above request, @upsertlead.json contains the sample input data.

Copy sample input

Sample Input:

Note:

  • A maximum of 100 records can be inserted/updated per API call.
  • Provide the Field API names along with the corresponding values to be populated, in the Input.
  • The trigger input can be workflow, approval or blueprint. If the trigger is not mentioned, the workflows, approvals and blueprints related to the API will get executed. Enter the trigger value as [] to not execute the workflows.
Copy sample response

Sample Response:

Note:

  • Record details can be udpated with Subform details using the Records API.

System-defined Duplicate Check Fields

  • The system-defined duplicate check fields are given in the format : {module_name} - {field_API_name}
  • Leads - Email, Accounts - Account_Name, Contacts - Email, Deals - Deal_Name, Campaigns - Campaign_Name, Cases - Subject, Solutions - Solution_Title, Products - Product_Name, Vendors - Vendor_Name, PriceBooks - Price_Book_Name, Quotes - Subject, SalesOrders - Subject, PurchaseOrders - Subject, Invoices - Subject, CustomModules - Name

Sample attributes:

  • The sample for Single Line:

    "Single_Line_1": "This is single line",

  • The sample for Multi Line:

    "Multi_Line_1": "This is the first line \n Now for the second Line",

  • The sample for Email:

    "Email_1": "p.boyle@zylker.com",

  • The sample for Phone:

    "Phone_1": "9900000000",

  • The sample for Picklist:

    "Picklist_1" : "In Progress",

  • The sample for Multi-select picklist:

    "Multi-Select_Picklist" : [
        "{Option_1}",
        "{Option_2}",
        "{Option_3}"

        ],

  • The sample for Date:

    "Date_1": "2017-08-16",

  • The sample for Date/time:

    "Date_Time": "2017-08-16T14:32:23+05:30",

  • The sample for Number:

    "Number_1": 575,

  • The sample for Currency:

    "Currency_1": 250000,

  • The sample for Decimal:

    "Decimal_1": 250000.50,

  • The sample for Percent:

    "Percent_1": 25,

  • The sample for Long Integer:

    "Long_Integer_1": "250000000000000",

  • The sample for Checkbox:

    "Checkbox_1": false,

  • The sample for URL:

    "URL_1": "https://crm.skydesk.jp",

  • The sample for Lookup:

    "Lookup" : {
        "id" : "425248000000104001"
        },

  • The sample for the Record owner:

    "Owner": {
        "id": "425248000000104003"
        },

  • The sample for the Layout:

    "Layout": {
        "id": "425248000000404433"
        },

Delete records

Purpose

To delete entities or records from a module.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}?ids={EntityID}

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to a record
WRITE - edit records in a module
DELETE - delete records in a module

Request Method

DELETE

Parameters

Parameter Name Data Type Description Possible Values
ids (mandatory) Integer Specify the unique id of the record. Entity IDs separated by commas. For example: 410405000002264040,410405000002264025
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads?ids=410405000002264040,410405000002264025"

-X DELETE

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

In the above sample, the lead records with ids "410405000002264040" and "410405000002264025" will be deleted.

Note:

  • By default, all the workflows related to this API will get executed.
Copy sample response

Sample Response:

Get list of deleted records

Purpose

To get the list of deleted records

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/deleted

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to a record
READ - get records in a module

Request Method

GET

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the module API name
type String
All

To get the list of all deleted records

Recycle

To get the list of deleted records from recycle bin

Permanent

To get the list of permanently deleted records

page (optional) Integer To get the list of records from the respective pages. Default value for page is 1.
per_page (optional) Integer To get the list of records available per page. Default value for per page is 200.

Note:

The page and per_page parameter is used to fetch records according to their position in the CRM. Let's assume that the user has to fetch 400 records. The maximum number of records that one can get for an API call is 200. So, for records above the 200th position, they cannot be fetched. By using the page (1, 2, 3 and 4) and per_page (100) parameter, the user can fetch all 400 records using 4 API calls.

Possible Errors

HTTP Status Error Code Message Reason
400 INVALID_DATA invalid data Invalid type param value given.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/deleted?type=All"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Search records

Purpose

To retrieve the records that matches your search criteria

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/search

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes and activities. ALL - Full access to a record
READ - get records in a module

Request Method

GET

Parameters

Parameter Name Data Type Description
criteria String Performs search by the following shown criteria. (({apiname}:{starts_with|equals}:{value}) and ({apiname}:{starts_with|equals}:{value})) You can search a maximum of 10 criteria (with same or different columns) with equals and starts_with conditions as shown above.
email String {email} - Performs module search by email. All the email fields of a particular module will be searched and listed.
phone String {Phone} - Performs module search by phone number. All the phone fields of a particular module will be searched and listed.
word String {Word}- Performs global search by word.
page (optional) Integer To get the list of records from the respective pages. Default value for page is 1.
per_page (optional) Integer To get the list of records available per page. Default value for per page is 200.

Note:

  • Only one of the above four parameters would work at one point of time. Furthermore, if two parameters are given simultaneously, preference will be given in the order criteria, email, phone and word, and only one of them would work.
  • The page and per_page parameter is used to fetch records according to their position in the CRM. Let's assume that the user has to fetch 400 records. The maximum number of records that one can get for an API call is 200. So, for records above the 200th position, they cannot be fetched. By using the page (1, 2, 3 and 4) and per_page (100) parameter, the user can fetch all 400 records using 4 API calls.
Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Contacts/search?phone=888-555-2145"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request Syntax:

zoho.crm.searchRecords(<module String>,<criteria String>,<page Long>,<perPage Long>,<connectionName String>,<userAccess Boolean>);
mandatory : module,criteria

Sample Request:

resp = zoho.crm.searchRecords("Leads", "(Last_Name:equals:Hawkins) or (Last_Name:starts_with:Pat)");

Copy sample response

Sample Response:

Load more examples

To search by email

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/search?email=p.daly@zylker.com"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Response:

Single Record APIs

Get a specific record

Purpose

To get a particular entity or record

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes, approvals and activities. ALL - Full access to a record
READ - get records in a module

Request Method

GET

Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/410888000000698006"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

In the above sample, the lead record with id "410888000000698006" will be retrieved.

Copy sample code

Sample Request Syntax:

zoho.crm.getRecordById(<module String>,<recordID Long>,<connectionName String>,<userAccess Boolean>);
mandatory : module,recordID

Sample Request:

resp = zoho.crm.getRecordById("Price_Books", "7000000037031");

Copy sample response

Sample Response:

Sample attributes:

  • The sample for Single Line:

    "Single_Line_1": "This is single line",

  • The sample for Multi Line:

    "Multi_Line_1": "This is the first line \n Now for the second Line",

  • The sample for Email:

    "Email_1": "p.boyle@zylker.com",

  • The sample for Phone:

    "Phone_1": "9900000000",

  • The sample for Picklist:

    "Picklist_1" : "In Progress",

  • The sample for Multi-select picklist:

    "Multi-Select_Picklist" : [
        "{Option_1}",
        "{Option_2}",
        "{Option_3}"

        ],

  • The sample for Date:

    "Date_1": "2017-08-16",

  • The sample for Date/time:

    "Date_Time": "2017-08-16T14:32:23+05:30",

  • The sample for Number:

    "Number_1": 575,

  • The sample for Currency:

    "Currency_1": 250000,

  • The sample for Decimal:

    "Decimal_1": 250000.50,

  • The sample for Percent:

    "Percent_1": 25,

  • The sample for Long Integer:

    "Long_Integer_1": "250000000000000",

  • The sample for Checkbox:

    "Checkbox_1": false,

  • The sample for URL:

    "URL_1": "https://crm.skydesk.jp",

  • The sample for Lookup:

    "Lookup" : {
        "name" : "James"
        "id" : "425248000000104001"
        },

  • The sample for the Record owner:

    "Owner": {
        "name" : "Patricia"
        "id": "425248000000104003"
        },

  • The sample for the Layout:

    "Layout": {
        "name" : "Custom Layout 1"
        "id": "425248000000404433"
        },

  • The sample for Auto Number:

    "Auto_Number_1": "LEAD44N",


    Where LEAD - Prefix, 44 - Assigment Number and N - Suffix.

Insert a specific record

Purpose

To insert a new entity into a module

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to record
WRITE - edit records in a module
CREATE - create records in a module

Request Method

POST

Possible Errors

HTTP Status Error Code Message Reason Details Key Values
400 INVALID_MODULE The module name given seems to be invalid Invalid module name or no tab permission, or the module could have been removed from the organized module
400 INVALID_MODULE The given module is not supported in API The modules such as Documents and Projects are not supproted in the current API. (This error will not be shown, once these modules are been supported.)
403 NO_PERMISSION permission denied to create '{modulename}' No permission to insert records
400 MANDATORY_NOT_FOUND Required field not found. If the data key isn't available. {
"api_name": "data"
}
400 INVALID_DATA Invalid Data If the data key has the invalid data type. {
"expected_data_type":
"jsonarray",
"api_name": "data"
},
202 INVALID_DATA (at the record index) Invalid Data If the record passed isn't a JSON object {
"expected_data_type":
"jsonobject",
"index": 0
}
201 MANDATORY_NOT_FOUND Required field not found. If the mandatory fields are not available. {
"api_name":
"Last_Name"
}
202 INVALID_DATA Invalid Data If the datatype is mismatched. {
"expected_data_type":
"double", "api_name":
"Decimal_1"
}
Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@newlead.json"

-X POST

Copy sample code

Sample Request Syntax:

zoho.crm.create(<module String>,<dataMap Map>,<optionalDataMap Map>,<connectionName String>,<userAccess Boolean>);
mandatory : module,dataMap

Sample Request: Insert a Lead

resp = zoho.crm.create("Leads", {"Last_Name":"Patricia Boyle"},{"trigger":["workflow","blueprint","approval"]});

Sample Request: Insert a Price Book

resp = zoho.crm.create("Price_Books", {"Owner": {"id": "7000000031553"},"Active": true,"Pricing_Details": [{"to_range": 5,"discount": 0,"from_range": 1},{"to_range": 11,"discount": 1,"from_range": 6},{"to_range": 17,"discount": 2,"from_range": 12},{"to_range": 23,"discount": 3,"from_range": 18},{"to_range": 29,"discount": 4,"from_range": 24}],"Pricing_Model": "Differential","Description": "Design your own layouts that align your business processes precisely. Assign them to profiles appropriately.","Price_Book_Name": "Price_Book_Name"});

Sample Request: Insert a record in a Custom Module ("Students")

resp = zoho.crm.create("Students", {"Name" : "Sname"});

In the above request, @newlead.json contains the sample input data.

Note:

  • Provide the Field API names along with the corresponding values to be populated, in the Input.
  • The trigger input can be workflow, approval or blueprint. If the trigger is not mentioned, the workflows, approvals and blueprints related to the API will get executed. Enter the trigger value as [] to not execute the workflows.
Copy sample input

Sample Input:

Copy sample response

Sample Response:

Load more examples

Sample attributes:

  • The sample for Single Line:

    "Single_Line_1": "This is single line",

  • The sample for Multi Line:

    "Multi_Line_1": "This is the first line \n Now for the second Line",

  • The sample for Email:

    "Email_1": "p.boyle@zylker.com",

  • The sample for Phone:

    "Phone_1": "9900000000",

  • The sample for Picklist:

    "Picklist_1" : "In Progress",

  • The sample for Multi-select picklist:

    "Multi-Select_Picklist" : [
        "{Option_1}",
        "{Option_2}",
        "{Option_3}"

        ],

  • The sample for Date:

    "Date_1": "2017-08-16",

  • The sample for Date/time:

    "Date_Time": "2017-08-16T14:32:23+05:30",

  • The sample for Number:

    "Number_1": 575,

  • The sample for Currency:

    "Currency_1": 250000,

  • The sample for Decimal:

    "Decimal_1": 250000.50,

  • The sample for Percent:

    "Percent_1": 25,

  • The sample for Long Integer:

    "Long_Integer_1": "250000000000000",

  • The sample for Checkbox:

    "Checkbox_1": false,

  • The sample for URL:

    "URL_1": "https://crm.skydesk.jp",

  • The sample for Lookup:

    "Lookup" : {
        "id" : "425248000000104001"
        },

  • The sample for the Record owner:

    "Owner": {
        "id": "425248000000104003"
        },

  • The sample for the Layout:

    "Layout": {
        "id": "425248000000404433"
        },

Update a specific record

Purpose

To update a particular entity or record

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}

module_api_name - The api name of the module.

record_id - Specify the unique id of the record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes and activities. ALL - Full access to a record
WRITE - edit records in a module
UPDATE - update records in a module

Request Method

PUT

Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/410888000000698006"

-X PUT

-d "@updatelead.json"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

In the above sample, the lead record with id "410888000000698006" will be updated.

Copy sample code

Sample Request Syntax:

zoho.crm.update(<module String>,<recordID Long>,<dataMap Map>,<optionalDataMap Map>,<connectionName String>,<userAccess Boolean>);
mandatory : module,recordID,dataMap

Sample Request: Update a Price Book record

resp = zoho.crm.update("Price_Books", "7000000037030", {"Owner": {"id": "7000000031553"},"Active": true,"Pricing_Details": [{"to_range": 5,"discount": 0,"from_range": 1},{"to_range": 11,"discount": 1,"from_range": 6},{"to_range": 17,"discount": 2,"from_range": 12},{"to_range": 23,"discount": 3,"from_range": 18},{"to_range": 29,"discount": 4,"from_range": 24}],"Pricing_Model": "Differential","Description": "Design your own layouts that align your business processes precisely. Assign them to profiles appropriately.","Price_Book_Name": "Price_Book_Name oops1 updated twice"});

Note:

  • Provide the Field API names along with the corresponding values to be populated, in the Input.
  • The trigger input can be workflow, approval or blueprint. If the trigger is not mentioned, the workflows, approvals and blueprints related to the API will get executed. Enter the trigger value as [] to not execute the workflows.
Copy sample input

Sample Input:

Copy sample response

Sample Response:

Load more examples

Sample attributes:

  • The sample for Single Line:

    "Single_Line_1": "This is single line",

  • The sample for Multi Line:

    "Multi_Line_1": "This is the first line \n Now for the second Line",

  • The sample for Email:

    "Email_1": "p.boyle@zylker.com",

  • The sample for Phone:

    "Phone_1": "9900000000",

  • The sample for Picklist:

    "Picklist_1" : "In Progress",

  • The sample for Multi-select picklist:

    "Multi-Select_Picklist" : [
        "{Option_1}",
        "{Option_2}",
        "{Option_3}"

        ],

  • The sample for Date:

    "Date_1": "2017-08-16",

  • The sample for Date/time:

    "Date_Time": "2017-08-16T14:32:23+05:30",

  • The sample for Number:

    "Number_1": 575,

  • The sample for Currency:

    "Currency_1": 250000,

  • The sample for Decimal:

    "Decimal_1": 250000.50,

  • The sample for Percent:

    "Percent_1": 25,

  • The sample for Long Integer:

    "Long_Integer_1": "250000000000000",

  • The sample for Checkbox:

    "Checkbox_1": false,

  • The sample for URL:

    "URL_1": "https://crm.skydesk.jp",

  • The sample for Lookup:

    "Lookup" : {
        "id" : "425248000000104001"
        },

  • The sample for the Record owner:

    "Owner": {
        "id": "425248000000104003"
        },

  • The sample for the Layout:

    "Layout": {
        "id": "425248000000404433"
        },

Delete a specific record

Purpose

To delete a particular entity or record

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}

module_api_name - The api name of the module.

record_id - Specify the unique id of the record

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes and activities. ALL - Full access to a record
WRITE - edit records in a module
DELETE - delete records in a module

Request Method

DELETE

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/410888000000698006"

-X DELETE

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

In the above sample, the lead record with id "410888000000698006" will be deleted.

Note:

  • By default, all the workflows related to this API will get executed.
Copy sample response

Sample Response:

Convert Lead

Purpose

To convert a lead

Request URL

https://apis.skydesk.jp/crm/v2/Leads/{record_id}/actions/convert

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.leads.{operation_type}

Possible operation types
ALL - Full access to a record
WRITE - edit records in a module
CREATE - create records in a module

Request Method

POST

Curl Functions
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/1000000145990/actions/convert"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@convertlead.json"

-X POST

In the above request, @convertlead.json contains the sample input.

Copy sample code

Sample Request Syntax:

zoho.crm.convertLead(<leadId Long>,<dataMap Map>,<connectionName String>,<userAccess Boolean>);
mandatory : leadId,dataMap

Sample Request:

resp = zoho.crm.convertLead("7000000037308", { "overwrite": true, "notify_lead_owner": false, "notify_new_entity_owner": true, "Accounts": "7000000037323", "Deals": { "Deal_Name": "Robert", "Closing_Date": "2016-03-30", "Stage": "Closed Won", "Amount": 56.6 } });

Copy sample input

Sample Input:

Note:

1. In the input shown above, the assign_to value can either be the SMOWNERID or email id.

2. You can associate the existing contact or account to the converting lead even if the lead is converted or not converted to a deal. To achieve this, you have to send the account id and contact id in your input data.

3. If both account id and overwrite values are true, then the account name will be replaced by the company name, while associating it with the existing account. However, the data of that account will remain the same.

4. If overwrite value is set false, then association will only happen. However, if you set the overview value without account id, the working of this method remains unchanged.

5. If contact id is given in your input, then the converting lead will be associated to the existing contact.

Copy sample response

Sample Response:

Subform APIs

A subform is a secondary form or a table, which will enable you to include multiple line items into a primary form. They are used to associate multiple items to a single record. On a more technical perspective, subforms easily solve the need for you to establish a one-to-many relationship with data in your CRM, in which many secondary items are associated to a single primary record.

The subform API is avaliable only in Enterprise and above editions of SkyDesk CRM.

Points-to-remember:

  • The parent Module API name can be acquired using the module API.
  • The Field API name of the subform is acquired using Fields meta data API of the parent module.
  • The Field API names of the individual fields in a subform are acquired using Fields meta data API, with the request URL as "fields?module={Sub_form_api_name}".
  • A maximum of 5 aggragate custom fields are available for a subform.

Scope

scope=ZohoCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, solutions, products, vendors, custom, notes and activities. ALL - Full access to a record
READ - get records in a module
WRITE - edit records in a module
CREATE - create records in a module
UPDATE - update records in a module

The Subform API supports

Single Record APIs:


Bulk Record APIs:

Note:

  • When updating a subform record, the "ID" of the record (Ex: Lead ID) must be specified in the input.
  • When updating a subform record, the "ID" of the subform records must be specified.
  • Assuming that there are 3 rows(records) within the subform, if it is updated with a new record, the IDs of the other three subform records have to be mentioned. The record without the ID will get deleted. For example, if subform is updated with a new record along with records 1,3 then it will delete record 2 and create a new record (suppose with Id 4). The current subform records are 1, 3 and 4.
  • Update of subform records without any JSON objects deletes the subform information within the record. Ex: " subform_1:[] "
  • Whenever a record is deleted, all the subform details within the parent record will also get deleted.

Tag APIs

Tags are keywords that help you categorize your records based on their characteristics. Tags help you sort your data and find it easily when you need it.

Get the tags

Purpose

To get and display all the tags in an organization.

Request URL

https://apis.skydesk.jp/crm/v2/settings/tags?module={module_api_name}

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.tags.all
(or)
scope=SkyDeskCRM.settings.tags.read

Request Method

GET

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the module such as, Leads, Accounts, Deals, etc,.
my_tags (optional) String Specify the names of the tags created by the current user.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/tags?module=Contacts"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Attributes:

  • "allowed_count" : Represents the number of Tags that can be created in the current edition.
  • "count" : Represents the total number of Tags created.

Get Record count for a specific tag

Purpose

To get the total number of records under a tag.

Request URL

https://apis.skydesk.jp/crm/v2/settings/tags/{tag_id}/actions/records_count?module={module_api_name}

tag_id - Specify the unique id of the tag.

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.tags.all
(or)
scope=SkyDeskCRM.settings.tags.read

Request Method

GET

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/tags/2000000039007/actions/records_count?module=Contacts"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Create New Tags

Purpose

To create new tags.

Request URL

https://apis.skydesk.jp/crm/v2/settings/tags?module={module_api_name}

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.tags.{operation_type}

Possible operation types
ALL - Full data access
WRITE - edit tag data
CREATE - create tag data

Request Method

POST

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/tags?module=Contacts"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@createnewtag.json"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample input

Sample Input:

Copy sample response

Sample Response:

Merge Tags

Purpose

To merge tags and put all the records under the two tags into a single tag.

Request URL

https://apis.skydesk.jp/crm/v2/settings/tags/{tag_id}/actions/merge

tag_id - Specify the unique id of the tag.

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.tags.{operation_type}

Possible operation types
ALL - Full data access
WRITE - edit tag data
CREATE - create tag data

Request Method

POST

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/tags/2000000035058/actions/merge"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@mergetag.json"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample input

Sample Input:

Copy sample response

Sample Response:

Single Tag update

Purpose

To update a tag associated with a single record or multiple records.

Request URL

https://apis.skydesk.jp/crm/v2/settings/tags/{tag_id}?module={module_api_name}

tag_id - Specify the unique id of the tag.

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.tags.{operation_type}

Possible operation types
ALL - Full data access
WRITE - edit tag data
UPDATE - update tag data

Request Method

PUT

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/tags/2000000030444?module=Contacts"

-X PUT

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@singletagupdate.json"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample input

Sample Input:

Copy sample response

Sample Response:

Multiple Tag updates

Purpose

To update multiple tags simultaneously.

Request URL

https://apis.skydesk.jp/crm/v2/settings/tags?module={module_api_name}

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.tags.{operation_type}

Possible operation types
ALL - Full data access
WRITE - edit tag data
UPDATE - update tag data

Request Method

PUT

Parameters

Parameter Name Data Type Description
module (mandatory) String Specify the API name of the required module. For example, Leads, Contacts, Accounts, Deals, and so on.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/tags?module=Contacts"

-X PUT

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@multipletagupdate.json"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample input

Sample Input:

Copy sample response

Sample Response:

Delete a Tag

Purpose

To delete a tag from the module

Request URL

https://apis.skydesk.jp/crm/v2/settings/tags/{tag_id}

tag_id - Specify the unique id of the tag.

Scope

scope=SkyDeskCRM.settings.all
(or)
scope=SkyDeskCRM.settings.tags.{operation_type}

Possible operation types
ALL - Full data access
WRITE - edit tag data
DELETE - delete tag data

Request Method

DELETE

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/settings/tags/2000000035058"

-X DELETE

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Add Tags to a Specific record

Purpose

To add tags to a specific record

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/actions/add_tags?tag_names={tag1},{tag2}

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full data access
WRITE - edit tag data
CREATE - create tag data

Request Method

POST

Parameters

Parameter Name Data Type Description
tag_names (mandatory) String Specify the names of the tags to be added.
over_write Boolean Specify if existing tags are to be overwritten.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Contacts/2445013000000402006/actions/add_tags?tag_names=From Email,High Priority&over_write=true"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Add Tags to Multiple records

Purpose

To add tags to multiple records simultaneously.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/actions/add_tags?ids={entity_id}&tag_names={tag1},{tag2}

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full data access
WRITE - edit tag data
CREATE - create tag data

Request Method

POST

Parameters

Parameter Name Data Type Description
tag_names String Specify the names of the tags to be added.
over_write Boolean Specify if the existing tags are to be overwritten.
ids (mandatory) Integer Specify the unique identifier for a record.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Contacts/actions/add_tags?ids=1234567890,123456789&tag_names=From Email,High Priority&over_write=true"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Remove Tags from a Specific record

Purpose

To delete the tag assocaited with a specific record

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/actions/remove_tags?tag_names={tag1},{tag2}

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full data access
WRITE - edit tag data
DELETE - delete tag data

Request Method

POST

Parameters

Parameter Name Data Type Description
tag_names (mandatory) String Specify the names of the tags to be removed from the record.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Contacts/2445013000000402006/actions/remove_tags?id=1234567890&tag_names=From Email,Low Priority&over_write=true"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Remove Tags from Multiple records

Purpose

To delete the tags associated with multiple records.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/actions/remove_tags?ids={entity_id}&tag_names={tag1},{tag2}

module_api_name - The api name of the module.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full data access
WRITE - edit tag data
DELETE - delete tag data

Request Method

POST

Parameters

Parameter Name Data Type Description
ids (mandatory) Integer Specify the unique identifier of the records.
tag_names (mandatory) String Specify the names for the tags to be removed from the records.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Contacts/actions/remove_tags?ids=1234567890,123456789&tag_names=From Email,In progress"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Notes APIs

Notes are to provide some additional information about a contact, account, deal or task. The notes section can be found in most of the modules. Hence, with Notes API, you can create, delete or update notes. You can perform actions on single or multiple notes.

Get notes

Purpose

To get the list of notes

Request URL

https://apis.skydesk.jp/crm/v2/Notes

Scope

scope=SkyDeskCRM.modules.notes.{operation_type}

Possible operation types
ALL - Full access to notes
READ - get note data

Parameters

Parameter Name Data Type Description
page (optional) Integer To get the list of records from the respective pages. Default value for page is 1.
per_page (optional) Integer To get the list of records available per page. Default value for per page is 200.

Note:

The page and per_page parameter is used to fetch records according to their position in the CRM. Let's assume that the user has to fetch 400 records. The maximum number of records that one can get for an API call is 200. So, for records above the 200th position, they cannot be fetched. By using the page (1, 2, 3 and 4) and per_page (100) parameter, the user can fetch all 400 records using 4 API calls.

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Notes"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample code

Sample Request:

Copy sample response

Sample Response:

Get specific notes data

Purpose

To get the list of notes of a particular record of the module

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Notes

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, events, calls, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full access to notes
READ - get note data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/410888000000698006/Notes"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

The above request will retrieve the list of notes of a Lead's record with id 410888000000698006.

Copy sample response

Sample Response:

Create notes

Purpose

To add new notes

Request URL

https://apis.skydesk.jp/crm/v2/Notes

Scope

scope=SkyDeskCRM.modules.notes.{operation_type}

Possible operation types
ALL - Full access to notes
WRITE - edit note data
CREATE - create note data

Request Method

POST

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Notes"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@newnote.json"

-X POST

Note:

In the above request, @newnote.json contains the sample input.

In the Input, specify the field API names of the Notes module along with the corresponding values.

Copy sample code

Sample Input:

Copy sample code

Sample Response:

Create specific notes

Purpose

To add new notes to a particular record

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Notes

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, events, calls, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full data access
WRITE - edit note data
CREATE - create note data

Request Method

POST

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/1000000145990/Notes"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@newnote.json"

-X POST

In the above request, @newnote.json contains the sample input.

Note:

In the Input, specify the field API names of the Notes module along with the corresponding values.

Copy sample input

Sample Input:

Copy sample response

Sample Response:

Update notes

Purpose

To update the existing note

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Notes/{note_id}

module_api_name - The api name of a module.

record_id - Specify the unique id of a record.

note_id - Specify the unique id of a note.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full access to notes
WRITE - edit note data
UPDATE - update note data

Request Method

PUT

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/410888000000645234/Notes/410888000000643123"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-d "@updatenote.json"

-X PUT

In the above request, @updatenote.json contains the sample input.

Note:

In the Input, specify the field API names of the Notes module along with the corresponding values.

Copy sample input

Sample Input:

Copy sample response

Sample Response:

Delete specific notes

Purpose

To delete a note

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Notes/{note_id}

module_api_name - The api name of a module.

record_id - Specify the unique id of a record.

note_id - Specify the unique id of a note.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom. ALL - Full access to notes
WRITE - edit note data
DELETE - delete note data

Request Method

DELETE

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/2883756000000268053/Notes/2883756000000268003"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-X DELETE

Copy sample response

Sample Response:

Delete bulk notes

Purpose

To delete notes in bulk

Request URL

https://apis.skydesk.jp/crm/v2/Notes?ids={Entity_ID1, Entity_ID2, Entity_ID3,..}

Entity_ID - The unique ID of the note.

Scope

scope=SkyDeskCRM.modules.notes.{operation_type}

Possible operation types
ALL - Full access to notes
WRITE - edit note data
DELETE - delete note data

Request Method

DELETE

Parameters

Parameter Name Data Type Description
ids (mandatory) Array Specify the unique IDs of the notes to be deleted.
Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Notes?ids=2883756000000268003,2883756000000987654,2883756000000736435"

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-X DELETE

Copy sample response

Sample Response:

Files and Attachments APIs

Attachments provide more information about a contact or a company, which normally cannot be displayed. You may also need to send images, text files or videos or any other type of files to contacts. The files and attachments API allows a user to get a list of attachments, upload or download a photo or a file.

Get list of attachments

Purpose

To get the list of attachments

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Attachments

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to attachments
READ - get attachment data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/1000000231009/Attachments"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Load more examples

Upload an attachment

Purpose

To attach a file to a record (as MULTIPART). Specify the module name and the relavant attachment id in your API request to upload the attachment to your record.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Attachments

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to attachments
WRITE - edit attachment data
CREATE - create attachment data

Request Method

POST

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/1000000231009/Attachments"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-F "file=@attachment1.txt"

Copy sample response

Sample Response:

Download an attachment

Purpose

To download a file attached to a record. Specify the relevant attachment id and record id in your API request to download the required attachment.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Attachments/{attachment_id}

module_api_name - The api name of a module.

record_id - Specify the unique id of a record.

attachment_id - Specify the unique id of an attachment.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to attachments
READ - get attachment data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/100023009/Attachments/100013547"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

The required file will be downloaded.

Delete attachments

Purpose

To delete a file attached to a record

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/Attachments/{attachment_id}

module_api_name - The api name of a module.

record_id - Specify the unique id of a record.

attachment_id - Specify the unique id of an attachment.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_api_name}.{operation_type}

Possible module names Possible operation types
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, pricebooks, quotes, salesorders, purchaseorders, invoices, custom, notes. ALL - Full access to attachments
DELETE - delete attachment data

Request Method

DELETE

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/2883756000000261075/Attachments/2883756000000261017"

-X DELETE

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response:

Upload a photo

Purpose

To upload a photo (as MULTIPART) to a record in Leads or Contacts. You need to provide the record id of the associated Lead or Contact in your API request to which the required photo has to be uploaded.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/photo

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads and contacts. ALL - Full access to images
WRITE - edit photo data
CREATE - create photo data

Request Method

POST

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/3000000038009/photo"

-X POST

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

-F "file=@img1.png"

Copy sample response

Sample Response:

Download a photo

Purpose

To download the photo associated with a Lead/Contact. You need to send the unique id of the Lead or contact record in your API request to download the required photo.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/photo

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads and contacts. ALL - Full access to images
READ - get photo data

Request Method

GET

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/3000000038009/photo"

-X GET

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

The required photo from the Leads record with id 3000000038009 will be downloaded.

Delete a photo

Purpose

To delete a photo from a record in Leads or Contacts. You need to provide the record id of the associated Lead or Contact in your API request from which the required photo has to be deleted.

Request URL

https://apis.skydesk.jp/crm/v2/{module_api_name}/{record_id}/photo

module_api_name - The api name of the module.

record_id - Specify the unique id of a record.

Scope

scope=SkyDeskCRM.modules.all
(or)
scope=SkyDeskCRM.modules.{module_name}.{operation_type}

Possible module names Possible operation types
leads and contacts. ALL - Full access to images
WRITE - edit photo
DELETE - delete photo

Request Method

DELETE

Curl
Copy sample code

Sample Request:

curl "https://apis.skydesk.jp/crm/v2/Leads/3000000038009/photo"

-X DELETE

-H "Authorization: Zoho-oauthtoken d92d401c803988c5cb849d0b4215f52"

Copy sample response

Sample Response: