Zoho · Schema

UpdateLayoutRequest

Request body for updating a layout. Only a single layout can be updated per request.

AnalyticsCollaborationCRMCustomer ServiceEmailFinanceHuman ResourcesProject ManagementZoho

Properties

Name Type Description
layouts array Array containing exactly one layout object with update properties. Only single layout updates are supported per request.
View JSON Schema on GitHub

JSON Schema

zoho-update-layout-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/zoho/main/json-schema/zoho-update-layout-request-schema.json",
  "title": "UpdateLayoutRequest",
  "description": "Request body for updating a layout. Only a single layout can be updated per request.",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/zoho-layouts-api-openapi.yml#/components/schemas/UpdateLayoutRequest",
  "type": "object",
  "required": [
    "layouts"
  ],
  "properties": {
    "layouts": {
      "type": "array",
      "description": "Array containing exactly one layout object with update properties. Only single layout updates are supported per request.",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "$ref": "#/$defs/LayoutUpdateObject"
      }
    }
  },
  "additionalProperties": false,
  "$defs": {
    "DeleteObject": {
      "type": "object",
      "description": "Delete configuration object.",
      "required": [
        "permanent"
      ],
      "properties": {
        "permanent": {
          "type": "boolean",
          "description": "If true, permanently deletes the resource. If false, moves it to unused section (for fields)."
        }
      },
      "additionalProperties": false
    },
    "FieldUpdateObject": {
      "type": "object",
      "description": "Field object for adding, updating, creating, or removing fields from a section. For adding an existing field, provide only id. For updating field position, provide id and sequence_number. For creating a new field, provide field_label, data_type, and optionally length and sequence_number. For removing/moving a field, provide id and _delete object.",
      "minProperties": 1,
      "properties": {
        "id": {
          "$ref": "#/$defs/Id",
          "description": "Unique identifier of an existing field. Required when adding, updating position, or removing an existing field. Omit when creating a new custom field."
        },
        "field_label": {
          "type": "string",
          "description": "Display label for the field. Required when creating a new custom field.",
          "minLength": 1,
          "maxLength": 255
        },
        "data_type": {
          "type": "string",
          "description": "Data type of the field. Required when creating a new custom field. Determines the field's input type and validation.",
          "enum": [
            "text",
            "textarea",
            "email",
            "phone",
            "website",
            "integer",
            "bigint",
            "currency",
            "double",
            "percent",
            "date",
            "datetime",
            "boolean",
            "picklist",
            "multiselectpicklist",
            "lookup",
            "multiselectlookup",
            "autonumber",
            "fileupload",
            "imageupload",
            "formula",
            "rollup_summary",
            "consent_lookup",
            "profileimage",
            "richtextarea",
            "userlookup",
            "multiuserlookup",
            "event_reminder"
          ]
        },
        "length": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum length of the field value in characters. Applicable for text-type fields (text, textarea, richtextarea).",
          "minimum": 1,
          "maximum": 32000
        },
        "sequence_number": {
          "type": "integer",
          "format": "int32",
          "description": "Position/order of the field within the section (1-based). Lower numbers appear first.",
          "minimum": 1
        },
        "_delete": {
          "$ref": "#/$defs/DeleteObject",
          "description": "Delete configuration for removing the field. Set permanent to false to move to unused section (can be re-added later), true to permanently delete the field and its data."
        }
      },
      "additionalProperties": false
    },
    "Id": {
      "type": "string",
      "format": "int64",
      "pattern": "^[0-9]{1,19}$",
      "minLength": 1,
      "maxLength": 19,
      "description": "Unique identifier (64-bit integer represented as string)"
    },
    "LayoutUpdateObject": {
      "type": "object",
      "description": "Layout object containing the fields to update. At least one property must be provided. Maximum 5 sections and 5 fields (total across all sections) can be modified per request.",
      "minProperties": 1,
      "properties": {
        "name": {
          "type": "string",
          "description": "New name for the layout. Must be unique within the module.",
          "minLength": 1,
          "maxLength": 255
        },
        "show_business_card": {
          "type": "boolean",
          "description": "Enable or disable the business card display for this layout."
        },
        "profiles": {
          "type": "array",
          "description": "Array of profile objects to add or remove from the layout.",
          "items": {
            "$ref": "#/$defs/ProfileUpdateObject"
          },
          "minItems": 1,
          "maxItems": 50
        },
        "sections": {
          "type": "array",
          "description": "Array of section objects to create, update, or delete. Maximum 5 sections allowed per request. Total fields across all sections must not exceed 5.",
          "items": {
            "$ref": "#/$defs/SectionUpdateObject"
          },
          "minItems": 1,
          "maxItems": 5
        }
      },
      "additionalProperties": false
    },
    "ProfileUpdateObject": {
      "type": "object",
      "description": "Profile object for adding or removing profile permissions.",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "$ref": "#/$defs/Id",
          "description": "Unique identifier of the profile."
        },
        "_delete": {
          "type": "boolean",
          "description": "Set to true to remove this profile's access to the layout."
        }
      },
      "additionalProperties": false
    },
    "SectionUpdateObject": {
      "type": "object",
      "description": "Section object for creating, updating, or deleting sections. For creating a new section, provide name, display_label, sequence_number, tab_traversal, and column_count. For updating an existing section, provide id along with properties to update. For deleting a section, provide id and _delete object.",
      "minProperties": 1,
      "properties": {
        "id": {
          "$ref": "#/$defs/Id",
          "description": "Unique identifier of the section. Required for updating or deleting existing sections. Omit when creating a new section."
        },
        "name": {
          "type": "string",
          "description": "Internal API name of the section. Required when creating a new section. Should be unique within the layout.",
          "minLength": 1,
          "maxLength": 255
        },
        "display_label": {
          "type": "string",
          "description": "Display label shown in the UI for the section. Required when creating a new section.",
          "minLength": 1,
          "maxLength": 255
        },
        "sequence_number": {
          "type": "integer",
          "format": "int32",
          "description": "Position/order of the section in the layout (1-based). Required when creating a new section. Lower numbers appear first.",
          "minimum": 1,
          "maximum": 100
        },
        "tab_traversal": {
          "type": "string",
          "description": "Tab traversal mode for the section. Defines how tab key navigation works within the section. 1 = column-wise, 2 = row-wise.",
          "enum": [
            "left_to_right",
            "top_to_bottom"
          ]
        },
        "column_count": {
          "type": "integer",
          "format": "int32",
          "description": "Number of columns in the section layout.",
          "minimum": 1,
          "maximum": 2
        },
        "fields": {
          "type": "array",
          "description": "Array of field objects to add, update, create, or remove from this section. Note: Total fields across all sections in the request must not exceed 5.",
          "items": {
            "$ref": "#/$defs/FieldUpdateObject"
          },
          "minItems": 1,
          "maxItems": 5
        },
        "_delete": {
          "$ref": "#/$defs/DeleteObject",
          "description": "Delete configuration for removing the section. When provided, the section identified by id will be deleted."
        }
      },
      "additionalProperties": true
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/zoho-update-layout-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.