Zoho CRM Portal User Type

Portal User Type API is used to create, read, update and delete user group for a portal in ZOHO CRM. A portal user type defines a set of permissions and access levels for users associated with that portal. This API allows administrators to manage user types, assign specific permissions to different modules, and control the access rights of portal users effectively. It helps in organizing and securing data by ensuring that users have appropriate access based on their roles within the portal.

OpenAPI Specification

zoho-crm-portal-user-type-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Portal User Type",
    "description": "Portal User Type API is used to create, read, update and delete user group for a portal in ZOHO CRM. A portal user type defines a set of permissions and access levels for users associated with that portal. This API allows administrators to manage user types, assign specific permissions to different modules, and control the access rights of portal users effectively. It helps in organizing and securing data by ensuring that users have appropriate access based on their roles within the portal.",
    "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/portals/{portal}/user_type": {
      "get": {
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.clientportal.READ"
            ]
          }
        ],
        "operationId": "getPortalUserTypes",
        "summary": "List portal user types",
        "description": "Retrieve all user types for the specified portal.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Portal"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with user types.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Response schema for listing portal user types.",
                  "properties": {
                    "user_type": {
                      "maxItems": 1000,
                      "type": "array",
                      "description": "Array of portal user type objects.",
                      "items": {
                        "type": "object",
                        "description": "Portal user type object.",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User type id (long as string).",
                            "maxLength": 32
                          },
                          "default": {
                            "type": "boolean",
                            "description": "Indicates if this is the default user type."
                          },
                          "personality_module": {
                            "type": "object",
                            "description": "Personality module details.",
                            "properties": {
                              "api_name": {
                                "type": "string",
                                "description": "API name of the personality module.",
                                "maxLength": 255
                              },
                              "id": {
                                "type": "string",
                                "description": "Personality module id.",
                                "maxLength": 255
                              },
                              "plural_label": {
                                "type": "string",
                                "description": "Plural label for the personality module.",
                                "maxLength": 255
                              }
                            },
                            "required": [
                              "api_name",
                              "id"
                            ],
                            "additionalProperties": true
                          },
                          "name": {
                            "type": "string",
                            "description": "Name of the user type.",
                            "maxLength": 255
                          },
                          "active": {
                            "type": "boolean",
                            "description": "Indicates if the user type is active."
                          },
                          "modules": {
                            "type": "array",
                            "description": "Modules accessible by this user type.",
                            "maxItems": 100,
                            "items": {
                              "type": "object",
                              "description": "Module object.",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "Module id.",
                                  "maxLength": 255
                                },
                                "api_name": {
                                  "type": "string",
                                  "description": "API name of the module.",
                                  "maxLength": 255
                                },
                                "shared_type": {
                                  "type": "string",
                                  "enum": [
                                    "public",
                                    "private"
                                  ],
                                  "description": "Shared type of the module."
                                },
                                "plural_label": {
                                  "type": "string",
                                  "description": "Plural label for the module.",
                                  "maxLength": 255
                                },
                                "permissions": {
                                  "type": "object",
                                  "description": "Permissions for the module.",
                                  "properties": {
                                    "view": {
                                      "type": "boolean",
                                      "description": "Permission to view records."
                                    },
                                    "edit": {
                                      "type": "boolean",
                                      "description": "Permission to edit records."
                                    },
                                    "create": {
                                      "type": "boolean",
                                      "description": "Permission to create records."
                                    },
                                    "delete": {
                                      "type": "boolean",
                                      "description": "Permission to delete records."
                                    },
                                    "edit_shared_records": {
                                      "type": "boolean",
                                      "description": "Permission to edit shared records."
                                    },
                                    "create_attachment": {
                                      "type": "boolean",
                                      "description": "Permission to create attachments."
                                    },
                                    "delete_attachment": {
                                      "type": "boolean",
                                      "description": "Permission to delete attachments."
                                    }
                                  },
                                  "additionalProperties": true
                                },
                                "fields": {
                                  "type": "array",
                                  "description": "Fields accessible in the module.",
                                  "maxItems": 100,
                                  "items": {
                                    "type": "object",
                                    "description": "Field object.",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "description": "Field id.",
                                        "maxLength": 255
                                      },
                                      "api_name": {
                                        "type": "string",
                                        "description": "API name of the field.",
                                        "maxLength": 255
                                      },
                                      "read_only": {
                                        "type": "boolean",
                                        "description": "Indicates if the field is read-only."
                                      },
                                      "permissions": {
                                        "type": "array",
                                        "description": "Permissions for the field.",
                                        "maxItems": 10,
                                        "items": {
                                          "type": "object",
                                          "description": "Permission object for field.",
                                          "additionalProperties": true
                                        }
                                      }
                                    },
                                    "required": [
                                      "id"
                                    ],
                                    "additionalProperties": true
                                  }
                                },
                                "filters": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "description": "Filters available for the module.",
                                  "maxItems": 50,
                                  "items": {
                                    "type": "object",
                                    "description": "Filter object.",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "description": "Filter id.",
                                        "maxLength": 255
                                      },
                                      "api_name": {
                                        "type": "string",
                                        "description": "API name of the filter.",
                                        "maxLength": 255
                                      },
                                      "display_label": {
                                        "type": "string",
                                        "description": "Display label for the filter.",
                                        "maxLength": 255
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "api_name"
                                    ],
                                    "additionalProperties": true
                                  }
                                },
                                "layouts": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "description": "Layouts available for the module.",
                                  "maxItems": 20,
                                  "items": {
                                    "type": "object",
                                    "description": "Layout object.",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "description": "Layout id.",
                                        "maxLength": 255
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "Name of the layout.",
                                        "maxLength": 255
                                      },
                                      "display_label": {
                                        "type": [
                                          "string",
                                          "null"
                                        ],
                                        "description": "Display label for the layout.",
                                        "maxLength": 255
                                      },
                                      "_default_view": {
                                        "type": "object",
                                        "description": "Default view for the layout.",
                                        "properties": {
                                          "display_label": {
                                            "type": [
                                              "string",
                                              "null"
                                            ],
                                            "description": "Display label for the default view.",
                                            "maxLength": 255
                                          },
                                          "name": {
                                            "type": "string",
                                            "description": "Name of the default view.",
                                            "maxLength": 255
                                          },
                                          "id": {
                                            "type": "string",
                                            "description": "ID of the default view.",
                                            "maxLength": 255
                                          },
                                          "layout": {
                                            "type": "string",
                                            "description": "Layout type.",
                                            "maxLength": 255
                                          },
                                          "type": {
                                            "type": "string",
                                            "description": "Type of the default view.",
                                            "maxLength": 255
                                          }
                                        },
                                        "additionalProperties": true
                                      }
                                    },
                                    "required": [
                                      "id"
                                    ],
                                    "additionalProperties": true
                                  }
                                },
                                "views": {
                                  "type": [
                                    "object",
                                    "null"
                                  ],
                                  "description": "View object for the module.",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "description": "View id.",
                                      "maxLength": 255
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "Type of the view.",
                                      "maxLength": 255
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "Name of the view.",
                                      "maxLength": 255
                                    },
                                    "display_label": {
                                      "type": "string",
                                      "description": "Display label for the view.",
                                      "maxLength": 255
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "type"
                                  ],
                                  "additionalProperties": true
                                },
                                "custom_views": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "description": "Custom views for the module.",
                                  "maxItems": 50,
                                  "items": {
                                    "type": "object",
                                    "description": "Custom view object.",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "description": "Custom view id.",
                                        "maxLength": 255
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "Name of the custom view.",
                                        "maxLength": 255
                                      },
                                      "deleted": {
                                        "type": "boolean",
                                        "description": "Indicates if the custom view is deleted."
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ],
                                    "additionalProperties": true
                                  }
                                }
                              },
                              "required": [
                                "id",
                                "api_name",
                                "shared_type",
                                "permissions",
                                "fields",
                                "filters"
                              ],
                              "additionalProperties": true
                            }
                          },
                          "active_user_count": {
                            "type": "integer",
                            "format": "int32",
                            "description": "Number of active users for this user type."
                          },
                          "deactive_user_count": {
                            "type": "integer",
                            "format": "int32",
                            "description": "Number of deactivated users for this user type."
                          },
                          "created_by": {
                            "type": "object",
                            "description": "User who created this user type.",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "ID of the creator.",
                                "maxLength": 255
                              },
                              "name": {
                                "type": "string",
                                "description": "Name of the creator.",
                                "maxLength": 255
                              }
                            },
                            "additionalProperties": true
                          },
                          "created_time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp when the user type was created."
                          },
                          "invitation_field": {
                            "type": "object",
                            "description": "Field used for invitation.",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Invitation field id.",
                                "maxLength": 255
                              },
                              "api_name": {
                                "type": "string",
                                "description": "API name of the invitation field.",
                                "maxLength": 255
                              }
                            },
                            "required": [
                              "id"
                            ],
                            "additionalProperties": true
                          },
                          "modified_by": {
                            "type": "object",
                            "description": "User who last modified this user type.",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "ID of the modifier.",
                                "maxLength": 255
                              },
                              "name": {
                                "type": "string",
                                "description": "Name of the modifier.",
                                "maxLength": 255
                              }
                            },
                            "additionalProperties": true
                          },
                          "modified_time": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp when the user type was last modified."
                          }
                        },
                        "required": [
                          "id",
                          "default",
                          "personality_module",
                          "name",
                          "invitation_field"
                        ],
                        "additionalProperties": true
                      }
                    }
                  },
                  "required": [
                    "user_type"
                  ],
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.clientportal.CREATE"
            ]
          }
        ],
        "operationId": "createPortalUserType",
        "summary": "Create portal user type",
        "description": "Create one or more portal user types for the specified portal. Request body must include a user_type array with one or more user type objects.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Portal"
          }
        ],
        "requestBody": {
          "required": true,
          "description": "Payload to create portal user types. Each user_type item must include personality_module, name, modules and invitation_field.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request schema for creating portal user types.",
                "properties": {
                  "user_type": {
                    "type": "array",
                    "description": "Array of user type objects to create.",
                    "minItems": 1,
                    "maxItems": 1000,
                    "uniqueItems": false,
                    "items": {
                      "type": "object",
                      "description": "Portal user type object for creation.",
                      "additionalProperties": true,
                      "properties": {
                        "personality_module": {
                          "type": "object",
                          "description": "Personality module details for the user type.",
                          "additionalProperties": true,
                          "properties": {
                            "api_name": {
                              "type": "string",
                              "description": "API name of the personality module.",
                              "pattern": "^[A-Za-z0-9 ]{1,25}$",
                              "maxLength": 25
                            },
                            "id": {
                              "type": "string",
                              "pattern": "^[0-9]+$",
                              "description": "Long id represented as digits string.",
                              "maxLength": 255
                            },
                            "plural_label": {
                              "type": "string",
                              "description": "Plural label for the personality module.",
                              "maxLength": 255
                            }
                          },
                          "required": [
                            "api_name",
                            "id"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "Name of the user type.",
                          "maxLength": 255
                        },
                        "modules": {
                          "type": "array",
                          "description": "Modules to assign to this user type.",
                          "minItems": 0,
                          "maxItems": 1000,
                          "uniqueItems": true,
                          "items": {
                            "type": "object",
                            "description": "Module object for assignment.",
                            "additionalProperties": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "pattern": "^[0-9]+$",
                                "description": "Module id.",
                                "maxLength": 255
                              },
                              "api_name": {
                                "type": "string",
                                "pattern": "^[A-Za-z0-9 ]{1,25}$",
                                "maxLength": 25,
                                "description": "API name of the module."
                              },
                              "shared_type": {
                                "type": "string",
                                "enum": [
                                  "public",
                                  "private"
                                ],
                                "description": "Shared type of the module."
                              },
                              "plural_label": {
                                "type": "string",
                                "description": "Plural label for the module.",
                                "maxLength": 255
                              },
                              "permissions": {
                                "type": "object",
                                "description": "Permissions for the module.",
                                "additionalProperties": true,
                                "properties": {
                                  "view": {
                                    "type": "boolean",
                                    "description": "Permission to view records."
                                  },
                                  "edit": {
                                    "type": "boolean",
                                    "description": "Permission to edit records."
                                  },
                                  "create": {
                                    "type": "boolean",
                                    "description": "Permission to create records."
                                  },
                                  "delete": {
                                    "type": "boolean",
                                    "description": "Permission to delete records."
                                  },
                                  "edit_shared_records": {
                                    "type": "boolean",
                                    "description": "Permission to edit shared records."
                                  },
                                  "create_attachment": {
                                    "type": "boolean",
                                    "description": "Permission to create attachments."
                                  },
                                  "delete_attachment": {
                                    "type": "boolean",
                                    "description": "Permission to delete attachments."
                                  }
                                }
                              },
                              "fields": {
                                "type": [
                                  "array",
                                  "null"
                                ],
                                "description": "Fields accessible in the module.",
                                "uniqueItems": true,
                                "items": {
                                  "type": "object",
                                  "description": "Field object.",
                                  "additionalProperties": true,
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "pattern": "^[0-9]+$",
                                      "description": "Field id.",
                                      "maxLength": 255
                                    },
                                    "api_name": {
                                      "type": "string",
                                      "maxLength": 255,
                                      "description": "API name of the field."
                                    },
                                    "read_only": {
                                      "type": "boolean",
                                      "description": "Indicates if the field is read-only."
                                    }
                                  },
                                  "required": [
                                    "id"
                

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