Beam Help
Get help now

How-to · Zoho CRM

How to get layouts in Zoho

Retrieve all layouts available in a module.

Retrieving layouts in Zoho CRM is straightforward once you know which API endpoints to call — you can fetch all layouts for a module or drill into a single layout by its ID.


Why this matters


Layouts in Zoho CRM control which fields, sections, and rules are presented to users when they create or edit records in a given module. If you are building an integration, automating data entry, or auditing your CRM configuration, you will need to programmatically retrieve layout definitions to understand the structure of each module. Knowing the correct endpoints saves significant trial-and-error time.


> Note: Beam Help is independent expert support for Zoho — we are not official Zoho support.


---


Step-by-step


Step 1. To retrieve all layouts for a specific module, send a GET request to the /settings/layouts endpoint, passing the module name as the module query parameter. For example, to get layouts for the Leads module you would call GET /settings/layouts?module=Leads. [4]


Step 2. The underlying method accepts a single string argument representing the module name (m), and the Zoho CRM API returns the full list of layouts configured for that module. [4]


# Example usage
layouts = get_layouts(m="Leads")

Step 3. If you already know the specific layout you need, use the single-layout endpoint instead: GET /settings/layouts/{lid}, where {lid} is the layout ID. You still pass the module name as a query parameter alongside the layout ID. [5]


Step 4. The method signature for fetching a single layout takes two arguments — the module name (m) and the layout ID (lid). [5]


# Example usage
layout = get_layout(m="Leads", lid="4567890123456789")

Step 5. Once you have a layout ID, you can go one level deeper and retrieve the fields belonging to that layout. Use GET /api/v1/layouts/{layoutId}/fields, passing the layoutId as a path parameter. An optional pagination parameter (p) can be supplied as a dictionary if the field list is long. [7]


# Example usage
fields = get_layout_fields(layoutId="4567890123456789", p={"page": 1})

Step 6. Use the fields response to understand exactly which fields are present on a layout, their order, and any associated metadata — this is particularly useful when mapping CRM data to an external system or validating that required fields exist before pushing records. [7]


---


Common pitfalls


  • Wrong module name casing. Zoho CRM API module names are case-sensitive in many contexts (e.g., Leads not leads). Always use the API name as it appears in your CRM settings, not the display label.
  • Missing layout ID. The single-layout endpoint (/settings/layouts/{lid}) requires a valid layout ID. If you skip Step 1–2 and try to guess an ID, the request will fail. Always retrieve the full list first to obtain valid IDs. [4][5]
  • Confusing CRM layouts with Desk layouts. The /settings/layouts endpoints described here are specific to Zoho CRM. Zoho Desk uses a different path structure (/api/v1/layouts/{layoutId}/fields) for its own layout field retrieval. Make sure you are targeting the correct product's base URL. [4][7]

---


What to check


  • Confirm the module name is the API name (not the display name) by cross-referencing your CRM module settings before making the call. [4]
  • Verify the layout ID returned in the all-layouts response matches the layout you intend to inspect before calling the single-layout or fields endpoints. [5]
  • Check pagination on the fields endpoint if your layout contains many fields — use the optional p parameter to page through results and ensure no fields are missed. [7]

Sources cited

  1. [1] server.py: chat_plan
  2. [2] server.py: chat_stream
  3. [3] GET /settings/layouts
  4. [4] GET /settings/layouts/{lid}
  5. [5] server.py: chat_plan_stream
  6. [6] GET /api/v1/layouts/{layoutId}/fields
  7. [7] server.py: build_zoho_links
Get Layouts in Zoho | Beam Help — Beam Help