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

Parameters: list_reports
NameTypeDescription
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
curl "https://cotlet.dev/api/v1/expensify/reports?workspace=Acme+Studio" \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("expensify", "list_reports", {"workspace":"Acme Studio"})
Node.js
const result = await cotlet.call('expensify', 'list_reports', {"workspace":"Acme Studio"});
CLI
cotlet call expensify list_reports --data '{"workspace":"Acme Studio"}'

Example response

JSON

{
  "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
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.