Beam Help
Get help now

How-to · Zoho DESK

How to get organization fields in a module in Zoho Desk

Retrieve all custom and standard fields for a specific module.

Retrieving all organization fields for a given module in Zoho Desk is straightforward with a single authenticated GET request to the organizationFields endpoint — no complex payload required.


Why this matters


When building integrations or custom UIs on top of Zoho Desk, you often need to know exactly which fields exist for a module (tickets, contacts, accounts, etc.) before you can map or display data correctly. Fetching the full field list programmatically saves you from hard-coding field names and lets your app adapt dynamically when an admin adds or removes fields. You may also need to drill into a specific field's metadata or its picklist options for validation purposes.


Step-by-step


Step 1. Ensure your OAuth token includes the correct Zoho Desk scopes. At minimum you will need Desk.basic.READ and Desk.settings.READ in your scope string so the API accepts your credentials. [5]


Step 2. Make a GET request to the following endpoint, replacing {moduleName} with the target module (for example tickets, contacts, or accounts):


GET /api/v1/organizationFields/{moduleName}

You may pass an optional query-parameter dictionary (p) to filter or paginate the results. [1]


Step 3. In Python, the call looks like this:


fields = desk_client.get_organization_fields_in_a(
    moduleName="tickets",
    p={"page": 1}   # optional pagination params
)

The method issues a GET to /api/v1/organizationFields/tickets and returns the parsed response. [1]


Step 4. If you need the metadata for one specific field rather than the full list, append the fieldId to the path:


GET /api/v1/organizationFields/{moduleName}/{fieldId}

In Python:


field_detail = desk_client.get_field_details(
    moduleName="tickets",
    fieldId="123456789"
)

This returns detailed metadata for that single field only. [2]


Step 5. For picklist or dropdown fields, you can fetch the available options with a further call:


GET /api/v1/organizationFields/{moduleName}/{fieldId}/options

In Python:


options = desk_client.get_field_options(
    moduleName="tickets",
    fieldId="123456789"
)

This is especially useful when you need to validate user input against the allowed values for a select-type field. [4]


---


> Note: Beam Help is an independent expert support resource for Zoho products — we are not official Zoho support. Always cross-reference with the latest Zoho Desk API documentation for any version-specific changes.


---


Common pitfalls


  • Wrong module name casing. Module names in the URL path are typically lowercase (e.g., tickets, contacts). Using mixed or upper case may result in a 404 or empty response. [1]
  • Missing scopes. If your OAuth token was generated without Desk.basic.READ or Desk.settings.READ, the API will reject the request with an authorization error. Double-check your scope configuration before debugging the request itself. [5]
  • Org ID not set. The Zoho Desk API is org-scoped. If your client object does not have a valid orgid attached, requests will fail or return data from the wrong organization. Confirm the deskorg_id is resolved and stored before making field-level calls. [7]

What to check


  • Scope coverage: Verify that Desk.basic.READ and Desk.settings.READ are present in your active OAuth token's scope list. [5]
  • Module name accuracy: Confirm the moduleName value you are passing matches a real Zoho Desk module (e.g., tickets, contacts, accounts) by testing with a known-good module first. [1]
  • Field ID validity: When calling the single-field or options endpoints, make sure the fieldId was obtained from a prior list call rather than guessed, to avoid unnecessary 404 errors. [^2, ^4]

Sources cited

  1. [1] GET /api/v1/organizationFields/{moduleName}
  2. [2] GET /api/v1/organizationFields/{moduleName}/{fieldId}
  3. [3] db.py
  4. [4] GET /api/v1/organizationFields/{moduleName}/{fieldId}/options
  5. [5] config.py
  6. [6] server.py: get_zoho_api
  7. [7] server.py: build_zoho_links
Get Organization Fields | Beam Help