0.x — pre-release, no compatibility promise yet.What this means
Pagination and filters
What this is: how every list reads — one envelope, one cursor, one filter grammar. When you need it: whenever you read more than one of anything.
curl -G "$TASKSMATE_API_URL/v1/tasks" \ -H "Authorization: Bearer $TASKSMATE_TOKEN" \ --data-urlencode "org_id=$TASKSMATE_ORG" \ --data-urlencode "filter[status]=in_progress,blocked" \ --data-urlencode "sort_by=due_date" \ --data-urlencode "limit=50"page = tm.tasks.list(org_id="…", filter={"status": ["in_progress", "blocked"]}, sort_by="due_date", limit=50)for task in page: # follows next_cursor through every page print(task.task_id, task.title)tm tasks list --status in_progress --status blocked --sort-by due_dateThe envelope
Section titled “The envelope”Every list — 30 of them — answers {"data": [...], "next_cursor": "…" | null}. Pass next_cursor back as
cursor until it is null. A page can be short, or even empty, while more follow: stop on null, not on a short
page.
| Parameter | Meaning |
|---|---|
limit | Page size, default 100; silently clamped to 1000. Default 100. |
cursor | Opaque token from the previous page's next_cursor. Only ever echo it back; offset is ignored when it is given. |
sort_by | One of: task_id, title, status, priority, due_date, start_date, created_at, assignee, project_id, priority_rank, status_rank, task_type (400 otherwise). Default title. |
sort_order | asc or desc (400 otherwise). Default asc. |
Filters
Section titled “Filters”Filters are repeated filter[<key>] parameters:
- values are OR within a key (comma-separated or repeated);
- keys are AND-ed together;
- an unknown key or value is a 400 that names it (
invalid-parameter).
The task list takes:
| Parameter | Meaning |
|---|---|
filter[status] | Task status(es), comma-separated or repeated. |
filter[priority] | Priority(ies), comma-separated or repeated. |
filter[assignee] | Usernames, or me for the caller. |
filter[project] | Project ids, or __unfiled__ for tasks without a project (mixable). |
filter[tags] | Tasks carrying any of these tags. |
filter[due_after] | YYYY-MM-DD, inclusive. |
filter[due_before] | YYYY-MM-DD, inclusive. |
filter[created_after] | YYYY-MM-DD, inclusive. |
filter[created_before] | YYYY-MM-DD, inclusive. |
filter[overdue] | true → due before today and not completed. |
filter[search] | Case-insensitive substring of the title, description, task id or any tag; %, _, *, , and ( are matched literally. |
filter[search_fields] | all (default) or title to match the title only. |
filter[team] | Team ids, or __none__ for tasks without a team (the two can be mixed). |
filter[task_type] | One or more of task, bug, agent, comma-separated or repeated; any other value (including goal) is a 400. |
Other lists take the keys their reference page lists.
Every list
Section titled “Every list”organizations.listGET /v1/organizationsprojects.listGET /v1/projects/{org_id}tasks.listGET /v1/tasksorganization-members.listGET /v1/organization-members/{org_id}organization-invites.listGET /v1/organization-invites/org/{org_id}organization-invites.mineGET /v1/organization-invites/userdesignations.listGET /v1/designationsproject-members.listGET /v1/project-membersproject-resources.listGET /v1/project-resourcestask-attachments.listGET /v1/task-attachmentstask-comments.listGET /v1/task-commentstask-history.listGET /v1/task-historyservice-accounts.listGET /v1/organizations/{org_id}/service-accountstokens.listGET /v1/tokenswebhooks.eventsGET /v1/webhooks/eventswebhooks.listGET /v1/webhookswebhooks.deliveriesGET /v1/webhooks/{subscription_id}/deliveriesoauth-clients.listGET /v1/oauth/clientsconnected-apps.listGET /v1/me/connected-appssections.listGET /v1/sectionsteams.listGET /v1/teamsteams.list_tasksGET /v1/teams/{team_id}/intakesprints.listGET /v1/teams/{team_id}/sprintsmilestones.listGET /v1/teams/{team_id}/milestonesroadmap.task_stopsGET /v1/tasks/{task_id}/roadmapgoals.listGET /v1/projects/{project_id}/goalsaudit.listGET /v1/auditviews.listGET /v1/viewsviews.rowsGET /v1/views/{view_id}/rowsview-pins.listGET /v1/view-pins