List issues
Issues filtered by project, assignee, status and tracker, sorted as you ask.
GET https://cotlet.dev/api/v1/redmine/issues
read
Returns issues with subject, tracker, status, priority, assignee and dates. By default only open issues come back; set status to all or closed to change that. Pages hold up to 100 issues, so read total_count and pass offset for the next page. The project filter takes the numeric project ID.
Parameters
| Name | Type | Description |
|---|---|---|
| project_id integer | integer | Only issues of this project (numeric ID from list_projects). |
| assigned_to_id string | string | A user ID, or 'me' for the signed-in account. |
| status string | string | 'open' (default), 'closed', 'all', or a status ID from list_issue_options. |
| tracker_id integer | integer | Only issues of this tracker. |
| sort string | string | Column to sort by, e.g. 'updated_on:desc'. Default: Redmine's own order. |
| limit integer | integer | 1 to 100. Default: 25. |
| offset integer | integer | How many items to skip. Use offset + limit while it is below total_count. |
Request
curl https://cotlet.dev/api/v1/redmine/issues \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("redmine", "list_issues") const result = await cotlet.call('redmine', 'list_issues'); cotlet call redmine list_issues Example response
{
"issues": [
{
"issue_id": 4830,
"project": "Billing portal",
"tracker": "Bug",
"status": "New",
"priority": "Normal",
"subject": "Refund email not sent",
"assigned_to": null,
"updated_on": "2026-10-16T07:12:00Z"
},
{
"issue_id": 4821,
"project": "Billing portal",
"tracker": "Bug",
"status": "In Progress",
"priority": "High",
"subject": "Login loop after password reset",
"assigned_to": "Dana Whitfield",
"updated_on": "2026-10-15T14:30:00Z"
}
],
"total_count": 2,
"offset": 0,
"limit": 25
}