Get the list of Functions
To retrieve a paginated list of all functions in your Zoho CRM account. The response contains metadata about each function, including its name, API name, runtime, category, state, arguments, tags, and timestamps.
To get the implementation code of a function, you must use the Download Function Code API.
Endpoints
- GET /settings/functions
Request Details
Request URL
{api-domain}/crm/{version}/settings/functions
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Scope
ZohoCRM.settings.functions.ALL
(or)
ZohoCRM.settings.functions.READ
(or)
ZohoCRM.settings.ALL
Parameters
- pageinteger, optional
Specify the page number to retrieve records. The page parameter, together with the per_page parameter, supports retrieving the first 2,000 records. To retrieve records beyond the first 2,000, use the page_token parameter.
Do not use this parameter with the page_token parameter.
Possible Values: Positive integers
Default Value: 1 - per_pageinteger, optional
Specify the maximum number of functions to retrieve per page. This value also determines the number of functions returned when the corresponding page_token is used. You cannot use this parameter with the page_token parameter.
Possible Values: 1 to 200.
Default Value: 200. - page_tokenstring, optional
The token to retrieve functions beyond the first 2000 records. Use the next_page_token or previous_page_token value from the previous response to retrieve the next or previous set of functions, respectively. The API returns the same number of functions as the per_page value used in the request that generated the token. If page_token is specified along with page or per_page, the page_token value takes precedence.
Sample Request
Copiedcurl "https://www.zohoapis.com/crm/v8/settings/functions"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
-X GETResponse JSON
The response contains the functions array, where each object represents a function. Each object contains the following keys:
- return_typestring
Represents the return data type of the function.
Possible values:
map - The function returns key-value pairs.
string - The function returns a text value.
void - The function does not return a value.
For non-Deluge functions, the return type will always be null. - created_timedatetime
Timestamp when the function was created.
- has_draftBoolean
Indicates whether the function has an unpublished draft version. This property is applicable only to Java, Python and Node.js functions.
- descriptionstring
Represents the description of the function.
- runtimestring
Represents the runtime environment used to execute the function.
Possible Values: Deluge 1.0, NodeJS 8, NodeJS 22, Java 8, Java 17, Python 3.12 - languagestring
Represents the programming language of the function.
Possible Values: Deluge, Node JS, Java, Python - sourcestring
Represents the source from which the function was created.
Possible Values: crm, extension, private_extension - rest_api_modeJSON array
Represents the REST API authentication modes enabled for the function.
Possible Values:
Oauth - The function can be invoked using OAuth authentication.
ZAPI - The function can be invoked using a ZAPI key.
None - The function cannot be invoked through REST APIs. - created_byJSON object
Contains the details of the user who created the function. The object contains the user's name and id.
- modified_timedatetime
Timestamp when the function was last modified.
- api_namestring
The unique API name of the function.
- namestring
The display name of the function.
- modified_byJSON object
Contains the details of the user who last modified the function. The object contains the user's name and id.
- argumentsJSON array
Contains the list of arguments accepted by the function. Each object contains the name and type of an argument.
- TagJSON array
Contains the tags associated with the function. Each object contains the name, id, and color_code of the tag.
- idstring
The unique ID of the function.
- statestring
The current state of the function.
Possible Values:
active - The function is published and can be associated with supported features.
unpublished - The function has not been published. This value is valid only for Java and Node.js functions.
deprecated - The function uses a deprecated runtime or deprecated Deluge tasks. - categorystring
The category that determines how the function is executed.
Possible Values:
Related List - Executes from a related list.
Validation Rule - Executes as part of a validation rule.
Schedule - Executes based on a schedule.
Automation - Executes as part of an automation.
Standalone - Executes independently and can be invoked directly.
Signals - Executes when a configured signal is received.
Button - Executes when a user clicks a custom button.
The response also contains the info object, which contains pagination details. It contains the following keys:
- per_pageinteger
The maximum number of functions returned per page.
- next_page_tokenstring
The token to retrieve the next set of functions. This key is available only when there are more functions to retrieve.
- countinteger
The number of functions returned in the current response.
- sort_bystring
The field used to sort the functions.
Possible Values: id - pageinteger
The current page number.
- previous_page_tokenstring
The token to retrieve the previous set of functions. This key is available only when a previous set of functions exists.
- page_token_expirydatetime
The date and time when the next_page_token and previous_page_token expire.
- sort_orderstring
The order in which the functions are sorted.
Possible Values: asc, desc - more_recordsBoolean
Indicates whether there are more functions to retrieve.
Possible Errors
- INVALID_REQUEST_METHODHTTP 400
The http request method type is not a valid one
Resolution: This API supports only the GET method. Retry the request using the GET method. - API_NOT_SUPPORTEDHTTP 400
API not supported for client portal user.
Resolution: This API is not supported for Client Portal users. Use a supported user account to make the API request. - FEATURE_NOT_SUPPORTEDHTTP 400
Your license does not support this feature.
Resolution: Upgrade your Zoho CRM edition to one that supports functions, and then retry the request. For details on edition-wise feature availability, refer to the complete feature list here. - PATTERN_NOT_MATCHEDHTTP 400
Please check whether the input values are correct.
Resolution: Specify valid values for the page, per_page, or page_token parameter, and then retry the request. - DISCRETE_PAGINATION_LIMIT_EXCEEDEDHTTP 400
You can retrieve only the first 2000 records without using the page_token parameter.
Resolution: The specified page value exceeds the supported limit of 200. To retrieve records beyond the first 2000 records, use the page_token parameter with the next_page_token value from the previous response. - OAUTH_SCOPE_MISMATCHHTTP 401
Unauthorized
Resolution: Client does not have the required OAUTH SCOPE. Create a new token with valid scope. Refer to the Scope section for more details. - INVALID_URL_PATTERNHTTP 404
Please check if the URL trying to access is a correct one
Resolution: The request URL specified is incorrect. Specify a valid request URL. Refer to request URL section for more details. - NO_PERMISSIONHTTP 403
- Permission denied
Resolution: The user does not have permission to access functions. Contact the admin for the required permissions. - User email not confirmed.
Resolution: Verify the email address associated with the user account, and then retry the request.
- Permission denied
Sample Response
Copied{
"functions": [
{
"return_type": "string",
"created_time": "2026-06-11T16:50:21+05:30",
"has_draft": false,
"description": null,
"runtime": "Deluge 1.0",
"language": "Deluge",
"source": "crm",
"rest_api_mode": [
"None"
],
"created_by": {
"name": "Patricia Boyle",
"id": "4876876000001360001"
},
"modified_time": "2026-06-11T16:59:33+05:30",
"api_name": "findduplicateemails",
"name": "findDuplicateEmails",
"modified_by": {
"name": "Patricia Boyle",
"id": "4876876000001360001"
},
"arguments": null,
"Tag": [],
"id": "4876876000023502135",
"state": "active",
"category": "Standalone"
},
{
"return_type": "string",
"created_time": "2026-06-11T16:14:30+05:30",
"has_draft": false,
"description": null,
"runtime": "Deluge 1.0",
"language": "Deluge",
"source": "crm",
"rest_api_mode": [
"None"
],
"created_by": {
"name": "Patricia Boyle",
"id": "4876876000001360001"
},
"modified_time": "2026-06-11T17:20:56+05:30",
"api_name": "cleanupallduplicates",
"name": "cleanupAllDuplicates",
"modified_by": {
"name": "Patricia Boyle",
"id": "4876876000001360001"
},
"arguments": null,
"Tag": [],
"id": "4876876000023502113",
"state": "active",
"category": "Button"
}
],
"info": {
"per_page": 200,
"next_page_token": null,
"count": 2,
"sort_by": "id",
"page": 1,
"previous_page_token": null,
"page_token_expiry": null,
"sort_order": "desc",
"more_records": false
}
}