POST to /crm/v6/coql with a JSON body containing a select_query string written in COQL syntax (similar to SQL: SELECT fields FROM Module WHERE conditions)
Include pagination using LIMIT and OFFSET clauses within the query string
The response contains a data array of matching records and an info block with count and more_records indicating additional pages
Use JOIN syntax in COQL to traverse lookup fields across related modules in a single query
Validate field names against the module's field metadata (GET /crm/v6/settings/fields?module=ModuleName) before running COQL queries
Known gotchas
COQL supports a limited subset of SQL — subqueries, GROUP BY, and aggregate functions have restrictions; check the current Zoho documentation for supported clauses by API version
The maximum number of records returned per COQL request is capped (typically 200); use OFFSET pagination for full extraction
Field API names in COQL are case-sensitive and must match the Zoho internal API name exactly, not the display label
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp