List SAP Cloud ALM data
calm_listList or query any SAP Cloud ALM collection—tasks, projects, features, documents—with filters, projections, and counts. Use count_only or group_by for totals without overflowing clients.
Instructions
List or query any SAP Cloud ALM collection (tasks, projects, features, documents, test cases, hierarchy nodes, cross-library objects, landscape objects, status events, code lists). Choose a "resource"; OData resources accept $filter/$select/$expand/$orderby/$top/$skip; REST resources read only the params calm_resources lists for them, and any other param (including $filter) is rejected rather than ignored. Defects: resource="tasks", task_type="CALMDEF". To answer "how many?" pass count_only=true, or group_by="status" for a breakdown — never list records to count them, as a few hundred tasks overflow most clients. See calm_resources for the full catalog.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Fetch specific tasks by id (resource:tasks); sent as a comma-separated list | |
| top | No | OData $top — maximum number of records | |
| skip | No | OData $skip — records to skip | |
| tags | No | Tag filters (resource:tasks) | |
| count | No | Return the total as "@count" ALONGSIDE the records (OData resources and analytics only). For a total without the records, use count_only instead | |
| limit | No | REST page size (REST resources) | |
| expand | No | OData $expand — comma-separated navigation properties | |
| fields | No | Comma-separated field projection applied by calmcp to the returned records (any resource). Use it to keep responses small, e.g. "displayId,title,status,assigneeName,timeboxId". Unlike $select this works for REST resources too. Unknown names are rejected | |
| filter | No | OData $filter, e.g. "status eq 'CIPDFCTOPEN'". OData resources only: REST resources have no server-side filter and reject it. calm_resources lists the parameters each resource reads | |
| offset | No | REST page offset (REST resources) | |
| select | No | OData $select — comma-separated field list | |
| status | No | Status code filter (e.g. CIPDFCTOPEN; or deployment plan status) | |
| filters | No | Free-form REST filters for landscape_objects / bsm_events | |
| orderby | No | OData $orderby, e.g. "priority desc". OData resources, and REST resources whose calm_resources entry lists orderby; any other resource rejects it | |
| task_id | No | Task id (required for task sub-resources) | |
| team_id | No | Team id (required for team_roles/program_team_roles) | |
| group_by | No | Comma-separated field name(s) to break the count down by, e.g. "status" or "projectName,status". Returns {total, groups:[{value,count}]} instead of records. Also the quickest way to discover which values a field actually takes | |
| resource | Yes | Which collection to list (see calm_resources for the catalog and required params) | |
| task_type | No | Task type filter (resource:tasks). CALMDEF = Defect | |
| count_only | No | Return ONLY the total number of matching records, no records at all. Use this for every "how many ...?" question — the answer is a few hundred bytes instead of hundreds of KB. Works for every resource and provider | |
| program_id | No | Program id (required for program_teams) | |
| project_id | No | Project id (required for tasks/deliverables/etc.) | |
| sub_status | No | Sub-status code filter (resource:tasks) | |
| timebox_id | No | Timebox (sprint/phase) id filter (resource:tasks). Applied by calmcp after fetching, paging through the project automatically | |
| assignee_id | No | Assignee id filter (resource:tasks) | |
| group_limit | No | Maximum groups returned by group_by (default 50); the rest fold into otherCount | |
| timebox_name | No | Timebox name filter, e.g. "Sprint 5" (resource:tasks). Resolved against the project's timeboxes; errors listing the known names when it does not match | |
| last_changed_date | No | Last-changed date filter (resource:tasks). Prefix with an operator: gt:, eq: or lt:, e.g. "gt:2026-08-01" | |
| solution_process_id | No | Solution process id filter (resource:task_solution_process_assignments) | |
| last_changed_timestamp | No | Last-changed timestamp filter (resource:tasks). Prefix with gt:, eq: or lt: and use ISO 8601, e.g. "gt:2026-08-01T00:00:00Z". Use this for incremental "what changed since" queries |