Zoho: Get records from a specified module
Zoho record.getRecords: arguments, response, policy and SDK examples.
← Record operations · Get started
Operation zoho.getrecords
Provider route: GET /crm/v8/{module}. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/zoho with npm, or alter-sdk-zoho with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { ZohoIntegration } from "@alter-ai/zoho";
async function execute(input: Parameters<ZohoIntegration["record"]["getRecords"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new ZohoIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.record.getRecords(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_zoho import ZohoIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = ZohoIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.record.get_records(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.module | string | Required within parent | Maximum length: 25 |
query | object | Required within parent | Additional keys: not allowed |
query.fields | string | Required within parent | |
query.territory_id | string | Optional | Format: int64 |
query.ids | array | Optional | Minimum items: 1 Unique items: true |
query.ids[] | string | Each item | Unique record ID in int64 string format. Format: int64 |
query.cvid | string | Optional | Format: int64 |
query.filters | Model | Optional | Expand Related Records — request body — query filters |
query.cross_filters | Model | Optional | Expand Get records from a specified module — request body — query cross filters |
query.filterId | string | Optional | The filter identifier Format: int64 Maximum length: 20 |
query.per_page | integer | Optional | Format: int32 Maximum: 200 Minimum: 1 |
query.page | integer | Optional | Format: int32 Minimum: 1 |
query.page_token | string | Optional | Maximum length: 96 |
query.sort_order | string | Optional | One of: desc, asc |
query.sort_by | string | Optional | One of: id, Created_Time, Modified_Time |
query.converted | string | Optional | One of: false, true, both |
query.include_child | boolean | Optional |
Referenced models: Get records from a specified module — request body — query cross filters, Related Records — request body — query filters
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | Model | Alternative | Expand Get records from a specified module — response body — data, info |
$ (anyOf 2) | null | Alternative |
Referenced models: Get records from a specified module — response body — data, info
Schemas
Section titled “Schemas”16 more schemas are linked from the tables above, on the schema pages.
Get records from a specified module — request body — query cross filters
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | array | Root | Represents a list of cross-filter objects that filter Custom View records based on related module records' criteria. Maximum items: 3 Minimum items: 0 |
$[] | object | Each item | Represents a single cross-filter object that filters records based on the presence or absence of related module records matching the specified criteria. Additional keys: not allowed |
$[].criteria | Model | Required within parent | Expand Related Records — request body — query filters |
$[].include_objects | boolean | Required within parent | Indicates whether records with matching related records are included in the results. |
$[].relation | Model | Required within parent | Expand Get records from a specified module — request body — query cross filters item relation |
Referenced models: Get records from a specified module — request body — query cross filters item relation, Related Records — request body — query filters
Related Records — request body — query filters
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | Represents the top-level filter criterion for data selection, supporting both simple field-based filters and complex grouped filters with logical operators. |
$ (anyOf 1) | Model | Alternative | Expand Related Records — request body — query filters value |
$ (anyOf 2) | Model | Alternative | Expand Related Records — request body — query / filters / group_operator: AND, OR, and, or |
Referenced models: Related Records — request body — query / filters / group_operator: AND, OR, and, or, Related Records — request body — query filters value
Get records from a specified module — response body — data, info
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the response schema for the record GET success operation. Additional keys: not allowed |
data | array | Required within parent | Represents the data value. Maximum items: 100 Minimum items: 1 |
data[] | Model | Each item | Expand Get a record by ID from a specified module — response body — data data item |
info | object | Required within parent | Represents the info value. Additional keys: not allowed |
info.call | boolean | Optional | Represents the info value. |
info.count | JSON | Required within parent | |
info.count (anyOf 1) | integer | Alternative | Represents the info value. Format: int32 |
info.count (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
info.email | boolean | Optional | Represents the info value. |
info.more_records | boolean | Required within parent | Represents the info value. |
info.next_page_token | JSON | Required within parent | |
info.next_page_token (anyOf 1) | string | Alternative | Represents the info value. Maximum length: 500 |
info.next_page_token (anyOf 2) | null | Alternative | Represents the info value. Maximum length: 500 |
info.page | JSON | Required within parent | |
info.page (anyOf 1) | integer | Alternative | Represents the info value. Format: int32 |
info.page (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
info.page_token_expiry | JSON | Required within parent | |
info.page_token_expiry (anyOf 1) | string | Alternative | Represents the info value. Format: date-time |
info.page_token_expiry (anyOf 2) | null | Alternative | Represents the info value. Format: date-time |
info.per_page | JSON | Required within parent | |
info.per_page (anyOf 1) | integer | Alternative | Represents the info value. Format: int32 |
info.per_page (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
info.previous_page_token | JSON | Required within parent | |
info.previous_page_token (anyOf 1) | string | Alternative | Represents the info value. Maximum length: 500 |
info.previous_page_token (anyOf 2) | null | Alternative | Represents the info value. Maximum length: 500 |
info.sort_by | string | Required within parent | Represents the info value. Maximum length: 255 |
info.sort_order | string | Required within parent | Represents the info value. Known values: asc, desc |
Referenced models: Get a record by ID from a specified module — response body — data data item
Get records from a specified module — request body — query cross filters item relation
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the reference to a child relationship module. The api_name property is required to identify the child relationship. Additional keys: not allowed |
$disrupted | boolean | Optional | Indicates whether the related module relationship referenced by this criterion is in a disrupted state, typically due to an unresolvable or deleted relationship definition. |
api_name | string | Required within parent | Represents the API name of the child relationship module used to identify the relationship. Maximum length: 255 |
id | string | Optional | Represents the unique ID of the child relationship module record. Format: int64 Maximum length: 25 |
Related Records — request body — query / filters / group_operator: AND, OR, and, or
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents a grouped filter criterion containing multiple filter conditions evaluated with a logical operator. Supports recursive nesting for complex filtering logic. Additional keys: not allowed |
group | array | Required within parent | Contains an array of filter conditions grouped together and evaluated with the specified logical operator. Maximum items: 25 Minimum items: 2 |
group[] | JSON | Each item | |
group[] (anyOf 1) | Model | Alternative | Expand Related Records — request body — query filters value |
group[] (anyOf 2) | Model | Alternative | Expand Related Records — request body — query / filters / group_operator: AND, OR, and, or |
group_operator | string | Required within parent | Represents the logical operator applied between the filter conditions in the group. Possible values: AND - All conditions in the group must be satisfied. OR - At least one condition in the group must be satisfied. and - Equivalent to AND; all conditions in the group must be satisfied. or - Equivalent to OR; at least one condition in the group must be satisfied. One of: AND, OR, and, or |
Referenced models: Related Records — request body — query / filters / group_operator: AND, OR, and, or, Related Records — request body — query filters value
Get a record by ID from a specified module — response body — data data item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents a single record GET data result item. Additional keys: allowed |
$state | string | Optional | This will be as Save or Draft. 'save' indicates the record is not in any active Blueprint Maximum length: 255 |
$wizard_connection_path | JSON | Optional | |
$wizard_connection_path (anyOf 1) | string | Alternative | $wizard_connection_path information denoted by comma separated connection ids between wizard screens. Maximum length: 2000 Read only: false |
$wizard_connection_path (anyOf 2) | null | Alternative | $wizard_connection_path information denoted by comma separated connection ids between wizard screens. Maximum length: 2000 Read only: false |
Created_By | Model | Optional | Expand Get a record by ID from a specified module — response body — data data item Created By |
Created_Time | string | Optional | Represents the timestamp when the record was originally created. Format: date-time |
Modified_By | Model | Optional | Expand Get a record by ID from a specified module — response body — data data item Modified By |
Modified_Time | string | Optional | Represents the timestamp when the record was last modified. Format: date-time |
Owner | object | Optional | Represents the owner value. Additional keys: not allowed |
Owner.email | string | Optional | Represents the owner value. Maximum length: 256 |
Owner.id | string | Required within parent | Represents the owner value. Format: int64 |
Owner.name | string | Required within parent | Represents the owner value. Maximum length: 101 |
Wizard | object | Optional | Represents the wizard value. Additional keys: not allowed |
Wizard.id | string | Required within parent | Represents the wizard value. Format: int64 Maximum length: 19 |
id | string | Optional | Represents the unique identifier of the RecordGETDataItem record. Format: int64 |
Referenced models: Get a record by ID from a specified module — response body — data data item Created By, Get a record by ID from a specified module — response body — data data item Modified By
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: zoho.getrecords. Catalog operation: getRecords. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
No-content response statuses: [204]