Generate a Brex API token with expenses:read scope in the Brex dashboard under Developer settings.
Call GET /v1/expenses with an Authorization: Bearer YOUR_TOKEN header to list all expenses for the authenticated account.
Filter results using optional query parameters such as expand[] (to include merchant or budget details) and cursor-based pagination (next_cursor) for large result sets.
To fetch a single expense by ID, call GET /v1/expenses/{id} with the same authorization header.
Process the returned expense objects, which include amount, merchant, category, and receipt_ids fields, for downstream export or reconciliation.
Known gotchas
Use GET /v1/expenses (not GET /v1/expenses/card) for new integrations — the /v1/expenses/card variant is deprecated in favor of the consolidated /v1/expenses endpoint, though it still functions.
The deprecated GET /v1/expenses/card endpoint is marked as such in the OpenAPI spec; Brex may remove it in a future version without additional notice.
Receipt upload uses a separate pre-signed S3 URL workflow via POST /v1/expenses/card/{expense_id}/receipt_upload, not a direct binary attachment on the expense object.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp