Zoho CRM Modules

Modules. Published by Zoho in its first-party OpenAPI 3.1.0 repository github.com/zoho/crm-oas; 5 operation(s).

OpenAPI Specification

zoho-crm-modules-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Modules",
    "description": "Modules",
    "version": "8"
  },
  "servers": [
    {
      "url": "https://zohoapis.{dc}/crm/{version}",
      "description": "API Server URL",
      "variables": {
        "dc": {
          "enum": [
            "com",
            "eu",
            "in",
            "cn",
            "au"
          ],
          "default": "com",
          "description": "API Server URL TLD"
        },
        "version": {
          "default": "v8",
          "description": "API Version"
        }
      }
    }
  ],
  "paths": {
    "/settings/modules": {
      "get": {
        "operationId": "getModules",
        "summary": "Retrieve CRM module metadata",
        "description": "Fetches metadata for CRM modules including configuration, capabilities, and structural information. Supports filtering by feature name to retrieve modules associated with specific features, or by status (e.g., `system_hidden`) to return modules matching that status. When both `status` and `feature_name` are provided, modules must satisfy both criteria (AND logic). Expected latency: ~60ms.",
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.modules.READ"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Status"
          },
          {
            "$ref": "#/components/parameters/FeatureName"
          },
          {
            "$ref": "#/components/parameters/Include"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved module metadata. Returns an array of module objects containing configuration details, permissions, fields, layouts, and related lists for each module. No pagination is applied; all matching modules are returned in a single response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Response containing an array of module metadata objects with complete configuration details.",
                  "additionalProperties": false,
                  "properties": {
                    "modules": {
                      "maxItems": 600,
                      "type": "array",
                      "description": "Array of module metadata objects, each containing complete configuration including fields, layouts, profiles, and permissions.",
                      "items": {
                        "type": "object",
                        "description": "Complete metadata for a single CRM module including configuration, capabilities, fields, layouts, profiles, and related lists.",
                        "additionalProperties": false,
                        "properties": {
                          "global_search_supported": {
                            "type": "boolean",
                            "description": "Whether the module supports global search functionality."
                          },
                          "public_fields_configured": {
                            "type": "boolean",
                            "description": "Whether public fields have been configured for this module."
                          },
                          "recycle_bin_on_delete": {
                            "type": "boolean",
                            "description": "Whether deleted records are moved to the recycle bin instead of being permanently deleted."
                          },
                          "has_more_profiles": {
                            "type": "boolean",
                            "description": "Whether more profiles exist beyond those currently loaded (pagination indicator)."
                          },
                          "sub_menu_available": {
                            "type": "boolean",
                            "description": "Whether a submenu is available for this module in the navigation."
                          },
                          "lookupable": {
                            "type": "boolean",
                            "description": "Whether the module supports lookup functionality and can be used as a lookup target in other modules."
                          },
                          "profile_count": {
                            "type": "integer",
                            "format": "int32",
                            "description": "Number of profiles associated with this module. 0 indicates no profile assignments."
                          },
                          "module_type": {
                            "type": "string",
                            "description": "Type classification of the module. Only exposed for pathfinder and orchestration modules.",
                            "enum": [
                              "CONFIGURATION_ENTITIES",
                              "ENTITIES"
                            ]
                          },
                          "cc_enabled": {
                            "type": "boolean",
                            "description": "Whether CommandCenter functionality is enabled for email communications. Only exposed for orchestration module (not API-supported)."
                          },
                          "deletable": {
                            "type": "boolean",
                            "description": "Whether records in this module can be deleted by users."
                          },
                          "description": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "maxLength": 255,
                            "description": "User-defined description of the module's purpose."
                          },
                          "creatable": {
                            "type": "boolean",
                            "description": "Whether new records can be created in this module."
                          },
                          "inventory_template_supported": {
                            "type": "boolean",
                            "description": "Whether inventory templates are supported for this module."
                          },
                          "modified_time": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time",
                            "description": "Timestamp when the module was last modified (timezone-aware)."
                          },
                          "presence_sub_menu": {
                            "type": "boolean",
                            "description": "Whether the module has a presence submenu option."
                          },
                          "triggers_supported": {
                            "type": "boolean",
                            "description": "Whether workflow triggers are supported for this module."
                          },
                          "id": {
                            "type": "string",
                            "format": "int64",
                            "description": "Unique identifier for the module."
                          },
                          "api_name": {
                            "type": "string",
                            "maxLength": 50,
                            "description": "API identifier for the module; follows naming convention (starts with letter, alphanumeric and underscores only)."
                          },
                          "plural_label": {
                            "type": "string",
                            "maxLength": 25,
                            "description": "Plural display label for the module; if translation is enabled, contains the translated label, otherwise matches actual_plural_label."
                          },
                          "actual_plural_label": {
                            "type": "string",
                            "maxLength": 25,
                            "description": "Original plural label as stored in the database, without translation applied."
                          },
                          "actual_singular_label": {
                            "type": "string",
                            "maxLength": 25,
                            "description": "Original singular label as stored in the database, without translation applied."
                          },
                          "singular_label": {
                            "type": "string",
                            "maxLength": 25,
                            "description": "Singular display label for the module; if translation is enabled, contains the translated label, otherwise matches actual_singular_label."
                          },
                          "isBlueprintSupported": {
                            "type": "boolean",
                            "description": "Whether the module supports Blueprint (process automation) functionality."
                          },
                          "visibility": {
                            "type": "integer",
                            "format": "int32",
                            "description": "Bitwise feature visibility flags; base value 1 indicates fully visible. Add sums of flags to hide module features: 2=WEBUIHIDDEN, 4=TABMENU, 8=LOOKUP, 16=RELATEDLIST, 32=MULTISELECTLOOKUP, 64=MODULE_SETTING, 128=AUTOMATION, 256=TEMPLATES, 512=IMPORT, 1024=EXPORT, 4096=REPORT, 8192=API. Example: 4612 (4+512+4096) hides TabMenu, Import and Report."
                          },
                          "convertable": {
                            "type": "boolean",
                            "description": "Whether records in this module can be converted to other module types."
                          },
                          "editable": {
                            "type": "boolean",
                            "description": "Whether records in this module can be edited by users."
                          },
                          "emailTemplate_support": {
                            "type": "boolean",
                            "description": "Whether email template functionality is supported for this module."
                          },
                          "email_parser_supported": {
                            "type": "boolean",
                            "description": "Whether email parsing capabilities are supported for this module."
                          },
                          "filter_supported": {
                            "type": "boolean",
                            "description": "Whether filtering functionality is available for records in this module."
                          },
                          "show_as_tab": {
                            "type": "boolean",
                            "description": "Whether the module appears as a tab in the main navigation."
                          },
                          "web_link": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "URL for web tab modules; supports parameter substitution via arguments array."
                          },
                          "viewable": {
                            "type": "boolean",
                            "description": "Whether records in this module can be viewed by users."
                          },
                          "api_supported": {
                            "type": "boolean",
                            "description": "Whether API operations are allowed for this module."
                          },
                          "quick_create": {
                            "type": "boolean",
                            "description": "Whether quick create form is available for this module."
                          },
                          "generated_type": {
                            "type": "string",
                            "description": "Type of module generation/creation method.",
                            "enum": [
                              "field_tracker",
                              "default",
                              "web",
                              "linking",
                              "custom",
                              "picklisttracker",
                              "subform",
                              "static_subform",
                              "webtab_link"
                            ]
                          },
                          "static_subform_properties": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "description": "Configuration properties for static subform modules.",
                            "additionalProperties": false,
                            "properties": {
                              "fields": {
                                "type": "array",
                                "maxItems": 25,
                                "description": "Array of field references included in the static subform.",
                                "items": {
                                  "type": "object",
                                  "description": "Field reference object containing API name and ID.",
                                  "additionalProperties": false,
                                  "properties": {
                                    "api_name": {
                                      "type": "string",
                                      "maxLength": 50,
                                      "description": "API name of the static subform field."
                                    },
                                    "id": {
                                      "type": "string",
                                      "format": "int64",
                                      "description": "Unique identifier for the static subform field."
                                    }
                                  },
                                  "required": [
                                    "api_name",
                                    "id"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "fields"
                            ]
                          },
                          "feeds_required": {
                            "type": "boolean",
                            "description": "Whether activity feeds are required for this module."
                          },
                          "scoring_supported": {
                            "type": "boolean",
                            "description": "Whether lead/record scoring functionality is supported for this module."
                          },
                          "webform_supported": {
                            "type": "boolean",
                            "description": "Whether web form integration is supported for this module."
                          },
                          "arguments": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "description": "Array of argument objects used to substitute parameters in web tab URLs (e.g. https://...&id=${Users.User Id}&name=${Users.First Name}). Duplicates are allowed.",
                            "items": {
                              "type": "object",
                              "description": "Argument object defining a URL parameter substitution with name-value pair.",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "maxLength": 50,
                                  "description": "Argument key used in URL template."
                                },
                                "value": {
                                  "type": "string",
                                  "maxLength": 100,
                                  "description": "Field substitution reference expression (e.g. users.recordId)."
                                }
                              },
                              "required": [
                                "name",
                                "value"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "module_name": {
                            "type": "string",
                            "maxLength": 25,
                            "description": "Display name of the module."
                          },
                          "business_card_field_limit": {
                            "type": "integer",
                            "format": "int32",
                            "minimum": 0,
                            "description": "Maximum number of business card fields allowed (non-negative)."
                          },
                          "access_type": {
                            "type": "string",
                            "description": "Access control model for the module.",
                            "enum": [
                              "org_based",
                              "team_based"
                            ]
                          },
                          "private_profile": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "description": "Private profile configuration for the module.",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string",
                                "maxLength": 101,
                                "description": "Name of the private profile."
                              },
                              "id": {
                                "type": "string",
                                "format": "int64",
                                "description": "Unique identifier for the private profile."
                              }
                            },
                            "required": [
                              "name",
                              "id"
                            ]
                          },
                          "track_current_data": {
                            "type": "boolean",
                            "description": "Whether current data tracking is enabled for this module."
                          },
                          "modified_by": {
                            "oneOf": [
                              {
                                "type": "object",
                                "additionalProperties": false,
                                "description": "User who last modified this custom view. Null for system views that have never been modified.",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "maxLength": 101,
                                    "description": "Name of the user who modified the custom view."
                                  },
                                  "id": {
                                    "type": "string",
                                    "format": "int64",
                                    "description": "Unique identifier of the user who modified the custom view."
                                  }
                                },
                                "required": [
                                  "name",
                                  "id"
                                ]
                              },
                              {
                                "type": "null",
                                "description": "Indicates that has never been modified."
                              }
                            ]
                          },
                          "profiles": {
                            "type": "array",
                            "maxItems": 203,
                            "description": "List of profiles associated with this module. May be empty for certain module types.",
                            "items": {
                              "type": "object",
                              "description": "Profile object containing profile name and unique identifier.",
                              "additionalProperties": false,
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "format": "int64",
                                  "description": "Unique identifier for the profile."
                                },
                                "name": {
                                  "type": "string",
                                  "maxLength": 50,
                                  "description": "Display name of the profile."
                                }
                              },
                              "required": [
                                "id"
                              ]
                            }
                          },
                          "parent_module": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "description": "Parent module reference if this is a child/related module. Empty object {} for standalone modules, null in some cases, or populated object with api_name and id for child modules.",
                            "additionalProperties": false,
                            "properties": {
                              "api_name": {
                                "type": "string",
                                "maxLength": 50,
                                "description": "API name of the parent module."
                              },
                              "id": {
                                "type": "string",
                                "format": "int64",
                                "description": "Unique identifier for the parent module."
                              }
                            }
                          },
                          "status": {
                            "type": "string",
                            "description": "Lifecycle/state of the module (e.g. visible to end users, hidden by system/user, or pending deletion). This status is orthogonal to the numeric bitwise feature flags in 'visibility'; it does not itself enable/disable individual features.",
                            "enum": [
                              "visible",
                              "scheduled_for_deletion",
                              "user_hidden",
                              "system_hidden"
                            ]
                          },
                          "sequence_number": {
                            "type": "integer",
                            "format": "int32",
                            "description": "Display order of the module in the navigation/module list."
                          },
                          "territory": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "description": "Territory assignment for the module.",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string",
                                "maxLength": 100,
                                "description": "Name of the territory (e.g., 'All Territories' when id is 0)."
                              },
                              "id": {
                                "type": "string",
                                "format": "int64",
                                "description": "Unique identifier for the territory; 0 indicates the special 'All Territories' territory, other values are unique int64 identifiers."
                              },
                              "subordinates": {
                                "type": "boolean",
                                "description": "Whether subordinate territories are included."
                              }
                            }
                          }
                        },
                        "required": [
                          "global_search_supported",
                          "public_fields_configured",
                          "recycle_bin_on_delete",
                          "has_more_profiles",
                          "sub_menu_available",
                          "profile_count",
                          "deletable",
                          "description",
                          "id",
                          "profiles",
                          "status",
                          "sequence_number"
                        ]
                      }
                    }
                  },
                  "required": [
                    "modules"
                  ]
                }
              }
            }
          },
          "204": {
            "description": "No content - returned when no modules match the specified filter criteria."
          },
          "400": {
            "description": "Bad request due to invalid parameter values. Returned when `status` contains unsupported values or when `feature_name` is provided as an empty string.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "Returned when status parameter contains invalid values",
                      "additionalProperties": false,
                      "properties": {
                        "code": {
                          "type": "string",
                          "description": "Error code indicating invalid data in the request.",
                          "enum": [
                            "INVALID_DATA"
                          ]
                        },
                        "details": {
                          "type": "object",
                          "description": "Details about the validation error including which parameter failed and valid values.",
                          "additionalProperties": false,
                          "properties": {
                            "index": {
                              "type": "integer",
                              "format": "int32",
                              "description": "Zero-based index of the invalid value in comma-separated status parameter"
                            },
                            "supported_values": {
                              "type": "array",
                              "maxItems": 10,
                              "items": {
                                "type": "string",
                                "maxLength": 50,
                                "description": "A valid status value accepted by the API."
                              },
                              "uniqueItems": true,
                              "description": "Unordered list of valid status values. Each value appears exactly once."
                            },
                            "param_name": {
                              "type": "string",
                              "enum": [
                                "status"
                              ],
                              "description": "Name of the parameter that contains the invalid value"
                            }
                          },
                          "required": [
                            "index",
                            "supported_values",
                            "param_name"
                          ]
                        },
                        "message": {
                          "type": "string",
                          "description": "Human-readable error message describing the validation failure",
                          "maxLength": 1000
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "error"
                          ],
                          "description": "Error status indicator. Always 'error' for failed requests."
                        }
                      },
                      "required": [
                        "code",
                        "details",
                        "message",
                        "status"
                      ]
                    },
                    {
                      "type": "object",
                      "description": "Returned when feature_name parameter is empty string",
                      "additionalProperties": false,
                      "properties": {
                        "code": {
                          "type": "string",
                          "description": "Error code indicating invalid data in the request.",
                          "enum": [
                            "INVALID_DATA"
                          ]
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": false,
                          "description": "Empty object for invalid feature_name"
                        },
                        "message": {
                          "type": "string",
                          "description": "Human-readable error message describing the validation failure",
                          "maxLength": 1000
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "error"
                          ],
                          "description": "Error status indicator. Always 'error' for failed requests."
                        }
                      },
                      "required": [
                        "code",
                        "details",
                        "message",
                        "status"
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createModules",
        "summary": "Create a custom CRM module",
        "description": "Creates a single custom module in the CRM. Requires the Crm_Implied_Customize_Zoho_CRM permission. This operation is not idempotent; submitting the same api_name multiple times will result in validation errors. Only one module can be created per request; batch creation is not supported.",
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.modules.CREATE"
            ]
          }
        ],
        "requestBody": {
          "description": "Request body for creating custom modules in the CRM. Only single module creation is supported per request.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body for creating a new custom module in Zoho CRM",
                "additionalProperties": false,
                "properties": {
                  "modules": {
                    "type": "array",
                    "description": 

# --- truncated at 32 KB (300 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-crm/refs/heads/main/openapi/zoho-crm-modules-openapi.json