{ "opencollection": "1.0.0", "info": { "name": "Helpcenter Records API", "version": "1.0.0" }, "items": [ { "info": { "name": "Records", "type": "folder" }, "items": [ { "info": { "name": "Get Record Count in a Module", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/:moduleApiName/actions/count", "params": [ { "name": "moduleApiName", "value": "", "type": "path", "description": "The API name of the module to retrieve the record count for." }, { "name": "email", "value": "", "type": "query", "description": "Searches for records using an email address. The API searches across all email fields in the specified module and returns matching records. (e.g., `p%2Bboyle@abc.com` for `p+boyle@abc.com`)." }, { "name": "phone", "value": "", "type": "query", "description": "Searches for records using a phone number. The API searches across all phone fields in the specified module and returns matching records. (e.g., `9876543210`)." }, { "name": "word", "value": "", "type": "query", "description": "Performs a global search within the specified module using the given word. The matchable records across multiple fields based on the search term. (e.g., `fin` to match records containing 'fin' in any searchable field)." }, { "name": "cvid", "value": "", "type": "query", "description": "The ID of the custom view from which to get the record count." }, { "name": "criteria", "value": "", "type": "query", "description": "Performs search by following the shown criteria: `(({api_name}:{operator}:{value}) and/or ({api_name}:{operator}:{value}))`\n\nPerforms a search based on the following format:\n`(({field_API_name}:{operator}:{value}) and/or ({field_API_name}:{operator}:{value}))`\n\nReplace `{field_API_name}`, `{operator}`, and `{value}` with the appropriate field API name, condition, and value.\n\n**Key Points:**\n- You can search for a maximum of **10 criteria** (with same or different columns)\n- The only operator that is supported for **encrypted fields** is `equals`\n- When using the `equals` operator in the Search API, it behaves like `contains`, retrieving records that include the specified value\n\n**Single Condition:**\nIf the condition is `(Company:equals:ABC)`, the response will include records with \"ABC\" as well as \"ABC Inc\" in the Company field.\n\n**Multiple Conditions:**\n`equals` still behaves like `contains`. For example, `((Company:equals:ABC) and (First_Name:starts_with:M))`, it retrieves records where the \"First Name\" starts with \"M\" and the \"Company\" contains \"ABC\" (e.g., \"ABC\" or \"ABC Inc.\").\n\n**Note:** The above behaviour does not apply to the **picklist field type**.\n\n**IN Operator:**\nThe `in` operator checks if a field's value matches any value in a given list.\nFor example, `(Full_Name:in:Patricia,Boyle,Kate)`, it retrieves records where the Full Name is Patricia, Boyle, or Kate.\n\n**Special Character Handling:**\nWhen a single-line field value contains characters such as `{`, `}`, `[`, `]`, `^`, `:`, `-`, `/`, `!`, `?`, `*`, `_`, `@`, space, the Search API returns records with similar-looking values, even if the characters are not an exact match.\n\nFor example, if Record A has the field value `sales-team@zoho.com` and Record B has `sales_team@zoho.com`, a search using `equals:sales-team@zoho.com` may return both records.\n\n**Escaping Special Characters:**\nWhen using parentheses `()`, commas `,`, or a backslash `\\` as the last character in a search value, follow these steps:\n1. Escape special characters using a backslash `\\`\n2. Encode the value before making the API request. Select the value of the criteria, right-click the value, and choose the EncodeURIComponent option.\n\n**Example 1: Escaping Parentheses and Commas**\n- Search term: `((Last_Name:equals:Burns,B) and (First_Name:starts_with:M))`\n- Escape the comma `\\,`: `((Last_Name:equals:Burns\\,B) and (First_Name:starts_with:M))`\n- Encode the value: `((Last_Name:equals:Burns%5C%2CB) and (First_Name:starts_with:M))`\n\n**Example 2: Escaping a Backslash at the End**\n- Search term: `(Last_Name:equals:K\\)`\n- Escape the backslash `\\\\`: `(Last_Name:equals:K\\\\)`\n- Encode the value: `(Last_Name:equals:K%5C%5C)`\n\n**Supported Data Types:**\n`picklist`, `owner_lookup`, `user_lookup`, `lookup`, `phone`, `email`, `date`, `datetime`, `text`, `textarea`, `integer`, `currency`, `decimal`, `multiselectpicklist`, `bigint`, `percent`, `formula`, `website`, `boolean`, `double`\n\n**Supported Operators:**\n`equals`, `starts_with`, `in`, `not_equal`, `greater_equal`, `greater_than`, `less_equal`, `less_than`, `between`\n\n**Operator Compatibility by Data Type:**\n\n| Data Type | equals | starts_with | in | not_equal | greater_equal | greater_than | less_equal | less_than | between |\n|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|\n| **text** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **textarea** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **email** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **phone** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **website** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **picklist** | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **multiselectpicklist** | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **lookup** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **owner_lookup** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **user_lookup** | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **boolean** | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |\n| **integer** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **bigint** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **currency** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **decimal** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **double** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **percent** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **date** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **datetime** | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| **formula** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n\n**Legend:** ✓ = Supported, ✗ = Not Supported\n\n**Note:** Refer to the Zoho CRM API documentation for the most up-to-date operator compatibility information." }, { "name": "converted", "value": "", "type": "query", "description": "Filters leads based on their conversion status." }, { "name": "approved", "value": "", "type": "query", "description": "Filters leads based on their approval status." }, { "name": "page", "value": "", "type": "query", "description": "The page number to retrieve." }, { "name": "per_page", "value": "", "type": "query", "description": "The number of records to return per page." }, { "name": "type", "value": "", "type": "query", "description": "Filters users based on their type. This parameter is supported **only for the Users module**." } ] }, "docs": "Fetches the total number of records in a specified module.\nThe count can be filtered using `cvid` (Custom View ID) or one of the search parameters (`criteria`, `phone`, `email`, `word`).\n\n**Important Constraint (Zoho Documentation):**\nYou can only include **either** `cvid` **or** one of the search parameters (`criteria`, `phone`, `email`, `word`) in a single request. Combining `cvid` with any search parameter will result in an `AMBIGUITY_DURING_PROCESSING` error (HTTP 400)." }, { "info": { "name": "Get Records for a specific module", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/:module", "params": [ { "name": "module", "value": "", "type": "path", "description": "Specifies the module name" }, { "name": "fields", "value": "", "type": "query", "description": "Specify the API names of the fields you want to retrieve when fetching the records." }, { "name": "territory_id", "value": "", "type": "query", "description": "Specify the territory ID to get the list of records that belongs to a specific territory" }, { "name": "ids", "value": "", "type": "query", "description": "To retrieve specific records based on their unique ID." }, { "name": "cvid", "value": "", "type": "query", "description": "Specify the custom view ID to get the list of records based on custom views" }, { "name": "per_page", "value": "", "type": "query", "description": "Specify how many records to return per page" }, { "name": "page", "value": "", "type": "query", "description": "To get the list of records from the respective pages" }, { "name": "page_token", "value": "", "type": "query", "description": "To fetch more than 2000 records, you must include the \"page_token\" param in the request" }, { "name": "sort_order", "value": "", "type": "query", "description": "To sort the available list of records in either ascending or descending order" }, { "name": "sort_by", "value": "", "type": "query", "description": "To sort the records based on the fields id, Created_Time, and Modified_Time. The default value is 'id'" }, { "name": "converted", "value": "", "type": "query", "description": "To get the list of converted records" }, { "name": "include_child", "value": "", "type": "query", "description": "To include records from the child territories" } ] }, "docs": "To get the list of available records from a module" }, { "info": { "name": "Create a Record in a specific module", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/:module", "params": [ { "name": "module", "value": "", "type": "path", "description": "Specifies the module name" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a Record in a specific module" }, { "info": { "name": "To update existing entities or records in a specified module", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/:module", "params": [ { "name": "module", "value": "", "type": "path", "description": "Specifies the module name" } ], "body": { "type": "json", "data": "{}" } }, "docs": "To update existing entities or records in a specified module." }, { "info": { "name": "Delete multiple records from a module", "type": "http" }, "http": { "method": "DELETE", "url": "{{baseUrl}}/:module", "params": [ { "name": "module", "value": "", "type": "path", "description": "Specifies the module name" }, { "name": "ids", "value": "", "type": "query", "description": "To retrieve specific records based on their unique ID." } ] }, "docs": "Permanently deletes one or more records from the specified module using comma-separated record IDs. Returns per-item results for bulk operations." }, { "info": { "name": "Get Record for a specific module with RecordId", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/:module/:recordID", "params": [ { "name": "recordID", "value": "", "type": "path", "description": "This ID is used to uniquely identify a record" }, { "name": "module", "value": "", "type": "path", "description": "Specifies the module name" } ] }, "docs": "To get the details of a specific record with its unique record ID." }, { "info": { "name": "To update existing entities or records in a specified module with the recordID", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/:module/:recordID", "params": [ { "name": "module", "value": "", "type": "path", "description": "Specifies the module name" }, { "name": "recordID", "value": "", "type": "path", "description": "This ID is used to uniquely identify a record" } ], "body": { "type": "json", "data": "{}" } }, "docs": "To update existing entities or records in a specified module with the recordID" }, { "info": { "name": "Delete a single record by ID", "type": "http" }, "http": { "method": "DELETE", "url": "{{baseUrl}}/:module/:recordID", "params": [ { "name": "module", "value": "", "type": "path", "description": "Specifies the module name" }, { "name": "recordID", "value": "", "type": "path", "description": "This ID is used to uniquely identify a record" } ] }, "docs": "Permanently deletes a specific record from the module using its unique record ID." } ] } ], "bundled": true }