Zoho CRM Portals

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

OpenAPI Specification

zoho-crm-portals-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Portals",
    "description": "Portals settings API.",
    "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": {
      "get": {
        "operationId": "getPortals",
        "summary": "Get portals",
        "description": "Retrieve a details of portals data.",
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.clientportal.READ"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Basic details of portals",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Portal response object",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "portals": {
                      "description": "List of portals",
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "description": "Portal details",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "created_time": {
                            "description": "Portal creation timestamp",
                            "type": "string",
                            "format": "date-time"
                          },
                          "modified_time": {
                            "description": "Portal last modification timestamp",
                            "type": "string",
                            "format": "date-time"
                          },
                          "modified_by": {
                            "description": "User who last modified the portal",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "description": "User name",
                                "type": "string",
                                "maxLength": 255
                              },
                              "id": {
                                "description": "User ID",
                                "type": "string",
                                "maxLength": 255
                              }
                            },
                            "required": [
                              "name",
                              "id"
                            ]
                          },
                          "created_by": {
                            "description": "User who created the portal",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "description": "User name",
                                "type": "string",
                                "maxLength": 255
                              },
                              "id": {
                                "description": "User ID",
                                "type": "string",
                                "maxLength": 255
                              }
                            },
                            "required": [
                              "name",
                              "id"
                            ]
                          },
                          "zaid": {
                            "description": "Zoho account ID",
                            "type": "string",
                            "maxLength": 255
                          },
                          "name": {
                            "description": "Portal name",
                            "type": "string",
                            "maxLength": 60
                          },
                          "active": {
                            "description": "Portal active status",
                            "type": "boolean"
                          },
                          "login_url": {
                            "description": "Portal login URL",
                            "type": "string",
                            "maxLength": 2048
                          }
                        },
                        "required": [
                          "created_time",
                          "modified_time",
                          "modified_by",
                          "created_by",
                          "zaid",
                          "name",
                          "active"
                        ]
                      }
                    }
                  },
                  "required": [
                    "portals"
                  ]
                }
              }
            }
          },
          "204": {
            "description": "Portal was not yet created for the org"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Standardized error response for portal creation",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "code": {
                      "description": "Error code identifying the problem",
                      "type": "string",
                      "enum": [
                        "NO_PERMISSION"
                      ]
                    },
                    "message": {
                      "description": "Human-readable error message",
                      "type": "string",
                      "maxLength": 255
                    },
                    "details": {
                      "description": "Additional details about the error",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "permissions": {
                          "description": "List of required permissions",
                          "type": "array",
                          "maxItems": 100,
                          "items": {
                            "description": "Permission identifier",
                            "type": "string",
                            "maxLength": 255
                          }
                        }
                      }
                    },
                    "status": {
                      "description": "Response status",
                      "type": "string",
                      "enum": [
                        "error"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "details",
                    "status"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createPortal",
        "summary": "Create portals",
        "description": "Create portals for the organization to provide access for end customer.",
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.clientportal.CREATE"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Request body schema for creating portals",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "portals": {
                    "description": "Array of portal creation objects",
                    "type": "array",
                    "maxItems": 100,
                    "items": {
                      "description": "Portal creation details",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Portal name (6-30 characters)",
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 30
                        }
                      },
                      "required": [
                        "name"
                      ]
                    }
                  }
                },
                "required": [
                  "portals"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success response for portal creation",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Success response for portal creation",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "portals": {
                      "description": "List of created portals",
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "description": "Portal creation result object",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "code": {
                            "description": "Status code of the portal creation",
                            "type": "string",
                            "enum": [
                              "SUCCESS"
                            ]
                          },
                          "message": {
                            "description": "Message describing the portal creation result",
                            "type": "string",
                            "maxLength": 255
                          },
                          "details": {
                            "description": "Details of the created portal",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "description": "Name of the created portal",
                                "type": "string",
                                "maxLength": 30
                              }
                            },
                            "required": [
                              "name"
                            ]
                          },
                          "status": {
                            "description": "Status of the portal creation",
                            "type": "string",
                            "enum": [
                              "success"
                            ]
                          }
                        },
                        "required": [
                          "code",
                          "message",
                          "details",
                          "status"
                        ]
                      }
                    }
                  },
                  "required": [
                    "portals"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Error response for portal creation",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Standardized error response for portal creation",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "portals": {
                      "description": "List of portal error items",
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "description": "Portal error object",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "code": {
                            "description": "Error code identifying the problem",
                            "type": "string",
                            "enum": [
                              "ALREADY_USED",
                              "PATTERN_NOT_MATCHED",
                              "MANDATORY_NOT_FOUND",
                              "INVALID_DATA",
                              "NO_PERMISSION"
                            ]
                          },
                          "message": {
                            "description": "Human-readable error message",
                            "type": "string",
                            "maxLength": 255
                          },
                          "details": {
                            "description": "Additional details about the error",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "api_name": {
                                "description": "API field name related to the error",
                                "type": "string",
                                "maxLength": 255
                              },
                              "json_path": {
                                "description": "JSON path pointing to the problematic element",
                                "type": "string",
                                "maxLength": 255
                              },
                              "minimum_length": {
                                "description": "Minimum length constraint when applicable",
                                "type": "integer",
                                "format": "int32"
                              },
                              "maximum_length": {
                                "description": "Maximum length constraint when applicable",
                                "type": "integer",
                                "format": "int32"
                              },
                              "expected_data_type": {
                                "description": "Expected data type for the field",
                                "type": "string",
                                "maxLength": 255
                              },
                              "regex": {
                                "description": "Regex used for validation",
                                "type": "string",
                                "maxLength": 255
                              },
                              "resource_path_index": {
                                "description": "Index into a resource path when applicable",
                                "type": "integer",
                                "format": "int32"
                              }
                            }
                          },
                          "status": {
                            "description": "Response status",
                            "type": "string",
                            "enum": [
                              "error"
                            ]
                          }
                        },
                        "required": [
                          "code",
                          "message",
                          "details",
                          "status"
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Standardized error response for portal creation",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "code": {
                      "description": "Error code identifying the problem",
                      "type": "string",
                      "enum": [
                        "NO_PERMISSION"
                      ]
                    },
                    "message": {
                      "description": "Human-readable error message",
                      "type": "string",
                      "maxLength": 255
                    },
                    "details": {
                      "description": "Additional details about the error",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "permissions": {
                          "description": "List of required permissions",
                          "type": "array",
                          "maxItems": 100,
                          "items": {
                            "description": "Permission identifier",
                            "type": "string",
                            "maxLength": 255
                          }
                        }
                      }
                    },
                    "status": {
                      "description": "Response status",
                      "type": "string",
                      "enum": [
                        "error"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "details",
                    "status"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/settings/portals/{portal}": {
      "get": {
        "summary": "Get portal details",
        "description": "Retrieve details for a specific portal by its identifier.",
        "operationId": "getPortal",
        "parameters": [
          {
            "$ref": "#/components/parameters/Portals"
          }
        ],
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.clientportal.READ"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Get portal details response",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response object containing a list of portals with their details.",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "portals": {
                      "description": "Array of portal objects.",
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "description": "Portal details object.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "description": "Portal name.",
                            "type": "string",
                            "maxLength": 50
                          },
                          "created_time": {
                            "description": "Portal creation timestamp.",
                            "type": "string",
                            "format": "date-time"
                          },
                          "modified_time": {
                            "description": "Portal last modification timestamp.",
                            "type": "string",
                            "format": "date-time"
                          },
                          "modified_by": {
                            "description": "User who last modified the portal.",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "description": "User name.",
                                "type": "string",
                                "maxLength": 255
                              },
                              "id": {
                                "description": "User ID.",
                                "type": "string",
                                "maxLength": 255
                              }
                            },
                            "required": [
                              "name",
                              "id"
                            ]
                          },
                          "created_by": {
                            "description": "User who created the portal.",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "description": "User name.",
                                "type": "string",
                                "maxLength": 255
                              },
                              "id": {
                                "description": "User ID.",
                                "type": "string",
                                "maxLength": 255
                              }
                            },
                            "required": [
                              "name",
                              "id"
                            ]
                          },
                          "zaid": {
                            "description": "Zoho account ID.",
                            "type": "string",
                            "maxLength": 255
                          },
                          "active": {
                            "description": "Portal active status.",
                            "type": "boolean"
                          },
                          "saml_configuration": {
                            "description": "SAML configuration for the portal.",
                            "type": [
                              "object",
                              "null"
                            ],
                            "additionalProperties": false,
                            "properties": {
                              "login_url": {
                                "description": "SAML login URL.",
                                "type": "string",
                                "maxLength": 2048
                              },
                              "logout_url": {
                                "description": "SAML logout URL.",
                                "type": "string",
                                "maxLength": 2048,
                                "pattern": "http[s]://www[.][a-z]{7}[.]com"
                              },
                              "public_key": {
                                "description": "SAML public key certificate.",
                                "type": "string",
                                "maxLength": 5000,
                                "enum": [
                                  "-----BEGIN CERTIFICATE-----nMIICkTCCAXkCBgGFNDYS5DANBgkqhkiG9w0BAQsFADAMMQowCAYDVQQDEwFBMB4XDTIyMTIyMDEwMjM1N1oXDTI1MTIyMDEwMjM1N1owDDEKMAgGA1UEAxMBQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ9JHZa/KoI1v4bl9HyDB2EB684y1P8hykirP0BoGpf2o4hj2ITjkhncbBJt9PFR8Cp8PmxL7UnGIZl/4g0VQMIxtq82UuvaC8uTZUQJeUDbrPEVMoN12YOF2sJ2AZ4gf3Pr6rf+kXYDp5T9gyFMFUzqNS/WL5xOpyzVJkROv69YbPkcLWms+orpcs+ADXXNfwhIfwF6ZLcNqgi1itX9T/vuvW5KEcU5QtOLLQdqNQ0Oi/0oiyIXhcsjGD1e+QSAtxdTpM44WkxOYW3TUj0+8EZOdU+Vj0lhgr61+bJHgnYiyA83LHqKcIKXEYVs70Lb3Ors4dU7XU6gBzxLnsf9nCECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAUiTh+to8d/QKYh9yOLqE25PraBEVselNgNx8Dly//JXfXz42lzwG5WOY94bmUur2qYe8sVUqY07O/1XSW7QBrGMhGA9Hhvgz6zrRPzGPUVVQT3caTG/b+1pNLriga7OSam6rp1uL5emutkyyn6ZUZ7px4K1vGEx6/GBFsepGH5E2N0PRuekTp0eiV+5m+6z4VL7tVtYGQbWUfVgBqBUEhkdu450ry0jJT6SPs1W8TPBQEZQ/Pjis4MubIRKrUtkb+SkLDpBSWmXdoKlsIJt8VqhdqN04bmt91sB+XdgSC4X7ideK7WPcEj2DYna4v/YB13MitxQrKKU9uT/HNm1JHg==n-----END CERTIFICATE-----"
                                ]
                              },
                              "active": {
                                "description": "SAML configuration active status.",
                                "type": "boolean",
                                "enum": [
                                  true
                                ]
                              }
                            },
                            "required": [
                              "login_url",
                              "logout_url",
                              "public_key",
                              "active"
                            ]
                          },
                          "login_url": {
                            "description": "Portal login URL.",
                            "type": "string",
                            "maxLength": 2048
                          },
                          "acs_url": {
                            "description": "Portal ACS URL.",
                            "type": "string",
                            "maxLength": 2048
                          },
                          "admin_zuid": {
                            "description": "Admin user zone ID.",
                            "type": "integer",
                            "format": "int32"
                          },
                          "default_relay_state_url": {
                            "description": "Default relay state URL.",
                            "type": "string",
                            "maxLength": 2048
                          },
                          "issuer": {
                            "description": "SAML issuer identifier.",
                            "type": "string",
                            "maxLength": 2048
                          },
                          "single_logout_url": {
                            "description": "Single logout URL.",
                            "type": "string",
                            "maxLength": 2048
                          }
                        },
                        "required": [
                          "created_time",
                          "modified_time",
                          "modified_by",
                          "created_by",
                          "zaid",
                          "active",
                          "saml_configuration"
                        ]
                      }
                    }
                  },
                  "required": [
                    "portals"
                  ]
                }
              }
            }
          },
          "204": {
            "description": "Empty response is returned if there is no portal created for the org"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Standardized error response for portal creation",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "code": {
                      "description": "Error code identifying the problem",
                      "type": "string",
                      "enum": [
                        "NO_PERMISSION"
                      ]
                    },
                    "message": {
                      "description": "Human-readable error message",
                      "type": "string",
                      "maxLength": 255
                    },
                    "details": {
                      "description": "Additional details about the error",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "permissions": {
                          "description": "List of required permissions",
                          "type": "array",
                          "maxItems": 100,
                          "items": {
                            "description": "Permission identifier",
                            "type": "string",
                            "maxLength": 255
                          }
                        }
                      }
                    },
                    "status": {
                      "description": "Response status",
                      "type": "string",
                      "enum": [
                        "error"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "details",
                    "status"
                  ]
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update portal",
        "description": "Update portal settings for the specified portal identifier.",
        "operationId": "updatePortal",
        "parameters": [
          {
            "$ref": "#/components/parameters/Portals"
          }
        ],
        "security": [
          {
            "iam-oauth2-schema": [
              "ZohoCRM.settings.clientportal.UPDATE"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Request body schema for updating portal settings",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "portals": {
                    "description": "Array of portal update objects",
                    "type": "array",
                    "maxItems": 100,
                    "items": {
                      "description": "Portal update object",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Portal name (6-30 characters)",
                          "type": "string",
                          "minLength": 6,
                          "maxLength": 30
                        },
                        "saml_configuration": {
                          "description": "SAML configuration to apply to the portal",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "login_url": {
                              "description": "SAML login URL",
                              "type": "string",
                              "pattern": "http[s]://www[.][a-z]{7}[.]com",
                              "maxLength": 2048
                            },
                            "logout_url": {
                              "description": "SAML logout URL",
                              "type": "string",
                              "pattern": "http[s]://www[.][a-z]{7}[.]com",
                              "maxLength": 2048
                            },
                            "public_key": {
                              "description": "SAML public key certificate",
                              "type": "string",
                              "maxLength": 5000
                            },
                            "active": {
                              "description": "SAML configuration active status",
                              "type": "boolean",
                              "enum": [
                                true
                              ]
                            }
                          },
                          "required": [
      

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