Beam Help
Get help now

How-to · Zoho DESK

How to list module fields in Zoho Desk

View all fields available in a specific module.

Listing module fields in Zoho Desk is straightforward once you know the correct API endpoint and have the right OAuth scopes in place.


Why this matters


When building integrations, automations, or custom reporting on top of Zoho Desk, you often need to know exactly which fields exist on a given module — their API names, types, and availability. Retrieving the full field list programmatically saves you from manually inspecting the Zoho Desk UI and ensures your code references accurate field identifiers. This is especially useful before constructing filtered queries or mapping data between systems.


Step-by-step


Step 1. Confirm your OAuth token includes the correct Desk scopes before making any API call. At minimum you will need Desk.settings.READ or Desk.basic.READ to introspect module metadata. A well-configured scope set also covers tickets, contacts, tasks, and articles so that field lookups work across all common modules. [4]


Step 2. Identify the moduleId for the module whose fields you want to inspect. Module IDs in Zoho Desk are numeric or string identifiers that correspond to entities such as tickets, contacts, or accounts. You can obtain a module's ID by first calling the modules list endpoint, or by checking the value returned when you previously queried that module. [6]


Step 3. Send a GET request to the following endpoint, substituting your actual module identifier:


GET /api/v1/modules/{moduleId}/fields

The operation name for this call is listmodulefields, and it accepts two parameters: moduleId (required, the identifier of the target module) and p (an optional pagination or filter parameter passed as a dictionary). [6]


Step 4. In code, the call looks like this:


def list_module_fields(self, moduleId: str, p: dict = None):
    return self.c.request("GET", f"/api/v1/modules/{moduleId}/fields", p, None)

Pass your authenticated client instance as self.c, provide the moduleId string, and optionally supply p for any query parameters such as page number. [6]


Step 5. Parse the response to extract field metadata. The returned payload will contain details for each field on the module. When displaying results to users or logging them, focus on the key data fields and skip internal IDs or empty values to keep output readable. [7]


Common pitfalls


  • Wrong scope: If your token lacks Desk.settings.READ or the relevant module-level scope, Zoho Desk will return a 401 authentication error. Re-check your configured scopes and reconnect if needed. [4] [5]
  • Invalid moduleId: Passing an incorrect or misspelled module identifier will result in an "invalid module" style error. Always verify the moduleId value against a fresh modules list rather than hard-coding it. [5] [6]
  • Pagination omitted: For modules with a large number of custom fields, the response may be paginated. Use the p parameter to iterate through pages and ensure you retrieve the complete field list. [6]

What to check


  • Verify that your OAuth token includes Desk.settings.READ (or a broader Desk.settings.ALL) scope before calling the endpoint. [4]
  • Confirm the moduleId you are passing matches a real module in your Zoho Desk organisation — cross-reference it against a modules list call if in doubt. [6]
  • Review the returned field API names carefully; use these exact names when constructing filters or queries to avoid "invalid column" errors downstream. [5]

---


*Beam Help is an independent expert support resource for Zoho products and is not official Zoho support.*

Sources cited

  1. [1] server.py: build_zoho_links
  2. [2] browser_automation.py
  3. [3] config.py
  4. [4] server.py: _clarifying_question_from_tool_error
  5. [5] GET /api/v1/modules/{moduleId}/fields
  6. [6] planner.py
List Module Fields in Zoho Desk | Beam Help — Beam Help