---
title: "Get performance information for a specific timeframe"
method: GET
path: "/performance/custom"
tags: ["Transactions And Reporting"]
deprecated: true
---

# Get performance information for a specific timeframe

`GET /performance/custom`

> **Deprecated.**

Returns performance information (contributions, dividends, rate of return, etc) for a specific timeframe. Please note that Total Equity Timeframe and Rate of Returns are experimental features. Please contact support@snaptrade.com if you notice any inconsistencies.

## Query parameters

- `startDate` string, date, required — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
- `endDate` string, date, required — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
- `accounts` string — Comma separated list of account IDs
- `detailed` boolean
- `frequency` string — Optional frequency for the rate of return chart (defaults to monthly). Possible values are weekly, monthly, quarterly, yearly.
- `userId` string, required — SnapTrade User ID. This is chosen by the API partner and can be any string that is a) unique to the user, and b) immutable for the user. It is recommended to NOT use email addresses for this property because they are usually not immutable.
- `userSecret` string, required — SnapTrade User Secret. This is a randomly generated string and should be stored securely. If compromised, please rotate it via the [rotate user secret endpoint](/reference/Authentication/Authentication_resetSnapTradeUserSecret).

## Response `200`

Successfully retrieved performance data

- PerformanceCustom — Performance Custom Response Object
  - `totalEquityTimeframe` PastValue[]
    - `date` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `value` number
    - `currency` string
  - `contributions` NetContributions
    - `date` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `contributions` number, nullable
    - `currency` string
  - `contributionTimeframe` PastValue[]
    - `date` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `value` number
    - `currency` string
  - `contributionTimeframeCumulative` PastValue[]
    - `date` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `value` number
    - `currency` string
  - `withdrawalTimeframe` PastValue[]
    - `date` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `value` number
    - `currency` string
  - `contributionStreak` number, nullable — Current streak of consecutive months where contributions were made
  - `contributionMonthsContributed` number, nullable — Number of months in the timeframe with contributions
  - `contributionTotalMonths` number, nullable — Total months in timeframe
  - `dividends` NetDividend[]
    - `symbol` UniversalSymbol — Uniquely describes a single security + exchange combination across all brokerages.
      - `id` string, uuid, required — Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
      - `symbol` string, required — The security's trading ticker symbol. For example "AAPL" for Apple Inc. We largely follow the [Yahoo Finance ticker format](https://help.yahoo.com/kb/SLN2310.html)(click on "Yahoo Finance Market Coverage and Data Delays"). For example, for securities traded on the Toronto Stock Exchange, the symbol has a '.TO' suffix. For securities traded on NASDAQ or NYSE, the symbol does not have a suffix.
      - `raw_symbol` string, required — The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is "VAB.TO", then `raw_symbol` is "VAB".
      - `description` string, nullable — A human-readable description of the security. This is usually the company name or ETF name.
      - `currency` Currency, required — Describes a currency object.
        - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
        - `code` string — The ISO-4217 currency code for the currency.
        - `name` string — A human-friendly name of the currency.
      - `exchange` Exchange — Describes a single stock or crypto exchange.
        - `id` string, uuid — Unique ID for the exchange in SnapTrade.
        - `code` string — A short name for the exchange. For standardized exchange code, please use the `mic_code` field.
        - `mic_code` string — The [Market Identifier Code](https://en.wikipedia.org/wiki/Market_Identifier_Code) (MIC) for the exchange.
        - `name` string — The full name of the exchange.
        - `timezone` string — The timezone for the trading hours (`start_time` and `close_time`) of the exchange.
        - `start_time` string — The time when the exchange opens for trading.
        - `close_time` string — The time when the exchange closes for trading.
        - `suffix` string, nullable — The suffix to be appended to the symbol when trading on this exchange. For example, the suffix for the Toronto Stock Exchange is `.TO`. See `UniversalSymbol->symbol` and `UniversalSymbol->raw_symbol` for more detail.
      - `type` SecurityType, required — The type of security. For example, "Common Stock" or "ETF".
        - `id` string, uuid — Unique identifier for the security type within SnapTrade. This is the ID used to reference the security type in SnapTrade API calls.
        - `code` string — A short code representing the security type. For example, "cs" for Common Stock. Here are some common values: - `ad` - ADR - `bnd` - Bond - `cs` - Common Stock - `cef` - Closed End Fund - `crypto` - Cryptocurrency - `et` - ETF - `oef` - Open Ended Fund - `pm` - Precious Metals - `ps` - Preferred Stock - `rt` - Right - `struct` - Structured Product - `ut` - Unit - `wi` - When Issued - `wt` - Warrant
        - `description` string — A human-readable description of the security type. For example, "Common Stock" or "ETF".
        - `is_supported` boolean — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
      - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information. This value should be the same as the `figi_code` in the `figi_instrument` child property.
      - `figi_instrument` FigiInstrument — Financial Instrument Global Identifier (FIGI) information for the security. See [OpenFIGI](https://www.openfigi.com/) for more information.
        - `figi_code` string, nullable — This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
        - `figi_share_class` string, nullable — This enables users to link multiple FIGIs for the same security in order to obtain an aggregated view across all countries and all exchanges. For example, `AAPL` has a different FIGI for each exchange/trading venue it is traded on. The `figi_share_class` is the same for all of these FIGIs. See section 1.4.3 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.
      - `currencies` Currency[], required — This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
        - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
        - `code` string — The ISO-4217 currency code for the currency.
        - `name` string — A human-friendly name of the currency.
    - `amount` number, nullable
    - `currency` string
  - `dividendIncome` number, nullable — Total dividends received over the timeframe
  - `monthlyDividends` number, nullable — Average dividends received per month over the timeframe
  - `badTickers` string[] — list of tickers which may not be supported or may not have accurate price data
  - `dividendTimeline` MonthlyDividends[]
    - `date` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `dividends` DividendAtDate[]
      - `symbol` string, nullable — The ticker of the symbol that the dividend came from
      - `amount` number, nullable — The amount received from the dividend
      - `currency` string — The currency of the amount
  - `commissions` number, nullable — commissions incurred during the timeframe
  - `forexFees` number, nullable — forex fees incurred during the timeframe
  - `fees` number, nullable — other fees incurred during the timeframe
  - `rateOfReturn` number, nullable — The return rate over the timeframe. Annualized if timeframe is longer than 1 year
  - `returnRateTimeframe` SubPeriodReturnRate[]
    - `periodStart` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `periodEnd` string, date — Date used to specify timeframe for a reporting call (in YYYY-MM-DD format). These dates are inclusive.
    - `rateOfReturn` number, nullable — The return rate for the given period
  - `detailedMode` boolean — Whether the user has detailed mode enabled (more frequent data points for totalEquity and contribution timeframes)

## Other responses

- `default` — Unexpected error

---

[API](https://skmtc.dev/passiv/apis/snaptrade.md) · [All operations](https://skmtc.dev/passiv/apis/snaptrade/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/passiv/snaptrade/revisions/144fc036df27/schema)
