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 GET

Response 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.

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
    }
}