View as Markdown
Expensify icon

Expensify ACTION

List Reports

Search Expensify reports by state and/or date range and return a structured JSON array of report summaries (reportID, reportName, total, status, submitterEmail, etc.), NOT a file. Use this to find reports before acting on them. Under the hood this calls the Report Exporter with an embedded Freemarker JSON template and reads the result in memory (no /tmp file written). You must provide either a reportState or a startDate/endDate range. Note: OPEN reports cannot be returned when an employeeEmail filter is set (API restriction). Use List Policies to discover valid policy IDs for the optional policyId filter. Use Get Report to retrieve a single report's full expense line items. See the documentation
  • Action
  • Read only
  • API key
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Expensify account once, then configure and run List Reports from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "expensify-list-reports",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    expensify: { authProvisionId: "apn_xxxxxxx" },
    reportState: "Report State",
    startDate: "Start Date",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

List Reports inputs
Property Type Description
reportState Report State string
Filter by a single report state. Closed set: OPEN, SUBMITTED, APPROVED, REIMBURSED, ARCHIVED. Leave empty to return reports of ALL states in one call — do not call this action once per state. Provide this or a startDate/endDate range.
Optional
startDate Start Date string
Only include reports on/after this date, formatted yyyy-mm-dd (e.g. 2026-01-01). Required if reportState is omitted.
Optional
endDate End Date string
Only include reports on/before this date, formatted yyyy-mm-dd (e.g. 2026-07-24). Required by the API when the date range exceeds one year.
Optional
employeeEmail Employee Email string
Restrict results to this employee's reports. OPEN reports are not returned when this filter is set (API restriction).
Optional
policyId Policy ID string
Optional policy ID to filter by. Free-form string; run List Policies first to obtain valid IDs.
Optional
limit Limit integer
Maximum number of reports to return. Min 1, max 1000.
Optional

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
expensify-list-reports
Version
0.0.2
App
Expensify
Authentication
API key
Read-only
Yes
Destructive
No
Open world
Yes