List records
productive_listList Productive resources with server-side filters, sorting, includes, and paging. Aggregate reports with grouping and get flat records with totals and next page for complete results.
Instructions
List any Productive resource with server-side filtering, sorting, includes and paging. Also how the 26 report endpoints are read: use resource "reports/time_reports" (and the rest) with group to get aggregated rows instead of records. Results are flattened out of JSON:API — attributes hoisted, included records inlined into their relationship — with total and nextPage so a page is never mistaken for the whole answer.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Return Productive's JSON:API envelope untouched instead of flat records. | |
| page | No | ||
| sort | No | Sort keys; prefix with "-" for descending, e.g. ["-created_at"]. | |
| group | No | Report aggregation key. Only the reports/* resources accept one. | |
| filters | No | Server-side filters. A bare value means equality: {"assignee_id":"5"}. An array is comma-joined: {"id":["1","2"]}. An operator object narrows further: {"created_at":{"gt":"2026-01-01"}} — the ONLY operators Productive accepts are contains, eq, gt, lt, not_contain, not_eq. There is no gte/lte, so for an inclusive date range use the resource's own after/before filter fields instead. Logical groups nest: {"$op":"and","0":{"assignee_id":{"eq":"5"}},"1":{"company_id":{"eq":"7"}}}. Field names are validated against the resource — call productive_describe_resource for the list. | |
| include | No | Relationships to pull in the same call, e.g. ["assignee","project"]. | |
| resource | Yes | One of 132 resource keys; see productive_search_capabilities. |