List reports
Reports with status, total, submitter and approver, newest first.
GET https://cotlet.dev/api/v1/expensify/reports
read
Lists reports you can see in a workspace, newest first, with total, currency, number of expenses and whether any expense is on hold. Filter by status to find what waits for you. Statuses are the ones Expensify shows: Draft, Submitted, Outstanding, Approved, Paid and Done.
Parameters
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name or ID from list_workspaces, e.g. 'Acme Studio'. |
| status enum | enum | draft, submitted, outstanding, approved, paid or done. Default: all. |
| needs_my_approval boolean | boolean | Only reports waiting for your approval. Default: false. |
| since date | date | Only reports created on or after this date. |
| limit integer | integer | 1 to 100. Default: 25. |
| cursor string | string | Next page cursor from the previous call. |
Request
curl "https://cotlet.dev/api/v1/expensify/reports?workspace=Acme+Studio" \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("expensify", "list_reports", {"workspace":"Acme Studio"}) const result = await cotlet.call('expensify', 'list_reports', {"workspace":"Acme Studio"}); cotlet call expensify list_reports --data '{"workspace":"Acme Studio"}' Example response
{
"reports": [
{
"report_id": "R10077",
"title": "Week of 5 Oct",
"submitter": "Marcus Lee",
"status": "Submitted",
"total": 148.2,
"currency": "USD",
"expenses": 4,
"has_hold": false,
"created_at": "2026-10-09T16:02:00Z"
},
{
"report_id": "R10042",
"title": "Week of 12 Oct",
"submitter": "You",
"status": "Draft",
"total": 612.9,
"currency": "USD",
"expenses": 7,
"has_hold": true,
"created_at": "2026-10-13T09:15:00Z"
}
],
"next_cursor": null
}