---
title: "POST /v1/portfolios/{portfolioSlug}/reports/export"
method: POST
path: "/v1/portfolios/{portfolioSlug}/reports/export"
tags: ["Portfolios"]
---

# POST /v1/portfolios/{portfolioSlug}/reports/export

`POST /v1/portfolios/{portfolioSlug}/reports/export`

## Request

- Base URL: `https://api.tokenbooks.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tokenbooks.io/v1/portfolios/{portfolioSlug}/reports/export`
- Auth: API key in header `x-api-key`

## Path parameters

- `portfolioSlug` string, required

## Request body

- PortfolioReportExportRequestDto
  - `payload` union, required
    - object
      - `locale` string, required
      - `type` 'transactions', required
      - `format` 'xlsx', required
      - `filters` object, required
        - `assetIds` string[]
        - `chains` string[]
        - `wallets` object[]
          - `chainId` string, required
          - `walletAddress` string, required
        - `dates` string[]
        - `txHashes` string[]
        - `interactedWith` string[]
        - `addressBookLabels` string[]
        - `includeSpamTokens` boolean
    - object
      - `locale` string, required
      - `type` 'journal-entries', required
      - `format` 'xlsx', required
      - `filters` object, required
      - `sorting` object[], required
        - `id` string, required
        - `desc` boolean, required
    - object
      - `locale` string, required
      - `type` 'gains-losses', required
      - `format` union, required
        - 'xlsx'
        - 'pdf'
      - `filters` object, required
        - `startDate` string
        - `endDate` string
        - `assetIds` string[], required
    - object
      - `locale` string, required
      - `type` 'cost-basis-ledger', required
      - `format` 'xlsx', required
      - `filters` object, required
      - `sorting` object[], required
        - `id` string, required
        - `desc` boolean, required
    - object
      - `locale` string, required
      - `type` 'income-expense', required
      - `format` union, required
        - 'xlsx'
        - 'pdf'
      - `filters` object, required
        - `startDate` string
        - `endDate` string
        - `accountTypes` string[]
        - `accountSubTypes` string[]
        - `assetIds` string[]
        - `costCenterIds` string[]
        - `counterpartyIds` string[]
        - `responsibilityCenterFilters` object[]
          - `typeKey` string, required
          - `centerIds` string[], required
    - object
      - `locale` string, required
      - `type` 'profit-and-loss', required
      - `format` union, required
        - 'xlsx'
        - 'pdf'
      - `filters` object, required
        - `startDate` string
        - `endDate` string
        - `assetIds` string[]
        - `costCenterIds` string[]
        - `counterpartyIds` string[]
        - `responsibilityCenterFilters` object[]
          - `typeKey` string, required
          - `centerIds` string[], required
    - object
      - `locale` string, required
      - `type` 'statement', required
      - `format` 'pdf', required
      - `filters` object, required
        - `startDate` string
        - `endDate` string
        - `assetIds` string[]
        - `assetShowSpam` boolean
      - `wallet` object
        - `chainId` string, required
        - `walletAddress` string, required
    - object
      - `locale` string, required
      - `type` 'balance-sheet', required
      - `format` union, required
        - 'xlsx'
        - 'pdf'
      - `filters` object, required
        - `asOfDate` string, required
        - `valuationMethod` 'cost' | 'market' | 'both', required
        - `grouping` 'summary' | 'grouped' | 'detailed', required
        - `locationFilter` 'all' | 'blockchain' | 'exchange'
        - `assetIds` string[]
        - `showZeroBalances` boolean
    - object
      - `locale` string, required
      - `type` 'trial-balance', required
      - `format` union, required
        - 'xlsx'
        - 'pdf'
      - `filters` object, required
        - `asOfDate` string, required
        - `includeZeroBalances` boolean
        - `reportType` 'unadjusted' | 'adjusted', required
    - object
      - `type` 'payment-requests', required
      - `locale` string, required
      - `format` 'xlsx', required
      - `filters` object, required
    - object
      - `locale` string, required
      - `type` 'portfolio-conversion-workbook-template', required
      - `format` 'xlsx', required
      - `filters` object, required
        - `cutoffExclusiveTimestamp` string, required
        - `assetScope` 'all' | 'selected', required
        - `assetIds` string[]
        - `includeReferenceLists` boolean
    - object
      - `locale` string, required
      - `type` 'daily-summary', required
      - `format` union, required
        - 'json'
        - 'xlsx'
      - `filters` object, required
        - `assetIds` string[]
        - `chains` string[]
        - `wallets` object[]
          - `chainId` string, required
          - `walletAddress` string, required
        - `dates` string[]
  - `format` 'xlsx' | 'pdf' | 'json', required: Export format
  - `totalsOnly` boolean: When true, only calculate totals without generating binary export

## Response `201`

- ReportJobResponseDto
  - `jobId` string, required: Job ID for tracking progress

## Other responses

- `403`: The caller lacks permission to view portfolio reports.

---

[API](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api.md) · [All operations](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api/revisions/180622e6255e?raw)
