# Authentication (/avanza-ts/docs/sdk/authentication)
## Getting a TOTP secret [#getting-a-totp-secret]
1. Sign in to Avanza and go to **Profil → Inställningar → Sajtinställningar → Inloggning och utloggning → Användarnamn → Tvåfaktorsinloggning**.
2. Choose **Aktivera** to set up two-factor login. If it is already enabled, choose **Återaktivera** instead.
3. Select **Annan app för tvåfaktorsinloggning**.
4. Select **Kan du inte scanna QR-koden?** to reveal the TOTP secret. Add that secret to your authenticator app.
5. Enter the six-digit code from the authenticator app on Avanza to complete setup.
Reactivating TOTP can invalidate an existing authenticator setup. Keep the revealed secret private; pass it as `totpSecret` or supply a current `totpCode` instead.
## TOTP login [#totp-login]
Provide credentials from your own secure configuration. The returned session is also installed on the client:
```ts
import { AvanzaClient } from 'avanza-ts';
const client = new AvanzaClient();
const session = await client.auth.loginWithTotp({
username: process.env.AVANZA_USERNAME!,
password: process.env.AVANZA_PASSWORD!,
totpSecret: process.env.AVANZA_TOTP_SECRET!,
maxInactiveMinutes: 60,
});
```
You may provide `totpCode` in place of `totpSecret` when generating the code yourself. `maxInactiveMinutes` controls the requested inactivity timeout for TOTP login (30–1,440 minutes; defaults to 1,440). Store the session in a suitable credential store; do not log or commit it.
## BankID [#bankid]
`startBankId()` returns an attempt whose `challenge.qrPayload` is text to render as a QR code. Poll and rerender the challenge while the status is `pending`:
```ts
const attempt = await client.auth.startBankId();
renderQr(attempt.challenge.qrPayload);
while (true) {
await new Promise((resolve) => setTimeout(resolve, attempt.challenge.refreshAfterMs));
const result = await attempt.poll();
if (result.status !== 'pending') break;
renderQr(result.challenge.qrPayload);
}
```
Call `attempt.cancel()` when abandoning an active login. The SDK supplies the QR payload and optional `bankid://` autostart URL; your application chooses the renderer.
# Getting started (/avanza-ts/docs/sdk/getting-started)
Install the package in a Node.js 22.12+ application:
```sh
pnpm add avanza-ts
```
Create a client and make a public request:
```ts
import { AvanzaClient } from 'avanza-ts';
const client = new AvanzaClient();
const results = await client.market.search('volvo');
console.log(results);
```
Public market and instrument requests work without logging in. For account-specific operations, see [authentication](/avanza-ts/docs/sdk/authentication).
# avanza-ts SDK (/avanza-ts/docs/sdk)
`avanza-ts` is an ESM-first TypeScript SDK for Avanza. It owns the HTTP transport and an in-memory session; your application decides how to store credentials and present results.
Start with [installation and your first request](/avanza-ts/docs/sdk/getting-started), then read [how to get a TOTP secret](/avanza-ts/docs/sdk/authentication#getting-a-totp-secret) and [session duration](/avanza-ts/docs/sdk/sessions#session-duration). Browse the [public API](/avanza-ts/docs/sdk/reference) and its [generated signatures](/avanza-ts/docs/sdk/reference/generated). See [For AI agents](#for-ai-agents) for Markdown versions of these docs.
## For AI agents [#for-ai-agents]
Use the [documentation index](https://antewall.github.io/avanza-ts/llms.txt) to find individual Markdown pages, or [read all docs as Markdown](https://antewall.github.io/avanza-ts/llms-full.txt). You can also copy or view the Markdown from any page using the controls above.
## Disclaimer [#disclaimer]
This is an unofficial TypeScript SDK for Avanza's API. It is not affiliated with Avanza Bank AB. The underlying API can be taken down or changed without warning at any point in time.
The author of this software is not responsible for any indirect damages (foreseeable or unforeseeable), such as, if necessary, loss or alteration of or fraudulent access to data, accidental transmission of viruses or of any other harmful element, loss of profits or opportunities, the cost of replacement goods and services or the attitude and behavior of a third party.
# Sessions (/avanza-ts/docs/sdk/sessions)
The SDK keeps its session in memory. Persisting it is the application's responsibility.
```ts
import { AvanzaClient } from 'avanza-ts';
const client = new AvanzaClient({ session: restoredSession });
const valid = await client.auth.validateSession();
if (valid) {
const accounts = await client.accounts.list();
}
client.clearSession();
```
You can also replace a session with `client.setSession(session)` or call `client.auth.logout()` to log out remotely and clear it locally. Authentication-required requests fail before making a network call when no session is available. TOTP sessions carry authentication headers; BankID sessions contain a serializable cookie snapshot.
## Session duration [#session-duration]
Avanza lets you choose how long you stay logged in—from 30 minutes to 24 hours—in your account's website settings. This applies to biometric, username/password, and BankID logins. See Avanza's [session-duration instructions](https://www.avanza.se/kundservice.html/5121/hur-lange-kan-jag-vara-inloggad-pa-mitt-konto-utan-att-loggas-ut).
Separately, `loginWithTotp()` sends `maxInactiveMinutes` with its login request (30–1,440 minutes; default 1,440). See [TOTP login](/avanza-ts/docs/sdk/authentication#totp-login) for an example. The SDK has no equivalent setting for BankID login. Avanza determines when any session actually expires, so validate a restored session before using it. The 120-second BankID *login attempt* timeout is unrelated to session lifetime.
# Authentication (/avanza-ts/docs/cli/authentication)
## Getting a TOTP secret [#getting-a-totp-secret]
1. Sign in to Avanza and go to **Profil → Inställningar → Sajtinställningar → Inloggning och utloggning → Användarnamn → Tvåfaktorsinloggning**.
2. Choose **Aktivera** to set up two-factor login. If it is already enabled, choose **Återaktivera** instead.
3. Select **Annan app för tvåfaktorsinloggning**.
4. Select **Kan du inte scanna QR-koden?** to reveal the TOTP secret. Add that secret to your authenticator app.
5. Enter the six-digit code from the authenticator app on Avanza to complete setup.
Reactivation may invalidate a previous authenticator setup. Do not share or commit the secret.
## TOTP login [#totp-login]
```sh
avanza auth totp
```
The CLI prompts for missing credentials and masks passwords and TOTP codes. For non-interactive use, set `AVANZA_USERNAME` and `AVANZA_PASSWORD`, plus exactly one of `AVANZA_TOTP_CODE` or `AVANZA_TOTP_SECRET`. Credentials used to authenticate are not stored; only the resulting session is saved.
## BankID [#bankid]
```sh
avanza auth bankid
```
BankID requires an interactive terminal. The CLI displays and refreshes a QR code until the attempt finishes or is cancelled.
Check or clear the session with `avanza auth session` and `avanza auth logout`. See [session storage](/avanza-ts/docs/cli/sessions) for details.
# Getting started (/avanza-ts/docs/cli/getting-started)
Install [Node.js 22.12 or newer](https://nodejs.org/en/download) first. The package is `avanza-tools` and the command is `avanza`.
## macOS, Linux, and Windows [#macos-linux-and-windows]
npm
pnpm
bun
```sh
npm install --global avanza-tools
```
```sh
pnpm add --global avanza-tools
```
```sh
bun add --global avanza-tools
```
On macOS or Linux, Homebrew is also available:
```sh
brew install AnteWall/tap/avanza-tools
```
Verify the installation with `avanza --help`.
On Linux, signing in requires a running Secret Service provider; see [session storage](/avanza-ts/docs/cli/sessions).
Get help for any command and try a public market query without signing in:
```sh
avanza market search --help
avanza market search --query volvo --limit 5
```
For private data, [authenticate](/avanza-ts/docs/cli/authentication) first. See the [command reference](/avanza-ts/docs/cli/reference) for all topics and available flags. AI agent users can also [install the Avanza CLI skill](/avanza-ts/docs/cli/skills).
# avanza-cli (/avanza-ts/docs/cli)
`avanza-tools` is an oclif-based terminal interface built on `avanza-ts` (command: `avanza`). [Install it](/avanza-ts/docs/cli/getting-started), [get a TOTP secret](/avanza-ts/docs/cli/authentication#getting-a-totp-secret), and read about [session duration](/avanza-ts/docs/cli/sessions#session-duration). Browse the [generated command reference](/avanza-ts/docs/cli/reference) for commands and flags sourced from oclif help metadata. See [For AI agents](#for-ai-agents) for the agent skill and Markdown docs.
## For AI agents [#for-ai-agents]
[Install the Avanza CLI skill](/avanza-ts/docs/cli/skills), or share the [Markdown index](https://antewall.github.io/avanza-ts/llms.txt) or [full Markdown docs](https://antewall.github.io/avanza-ts/llms-full.txt) with an agent. You can also copy or view the Markdown from any page using the controls above.
## Disclaimer [#disclaimer]
This is an unofficial CLI for Avanza's API. It is not affiliated with Avanza Bank AB. The underlying API can be taken down or changed without warning at any point in time.
The author of this software is not responsible for any indirect damages (foreseeable or unforeseeable), such as, if necessary, loss or alteration of or fraudulent access to data, accidental transmission of viruses or of any other harmful element, loss of profits or opportunities, the cost of replacement goods and services or the attitude and behavior of a third party.
# Output formats (/avanza-ts/docs/cli/output)
Commands supporting structured output accept `--json`. Add `--fields` to select comma-separated paths, including nested fields:
```sh
avanza market search --query volvo --json
avanza auth session --json --fields user.greetingName,user.loggedIn
```
Unknown fields are rejected. `--json` without `--fields` returns the complete redacted response.
`--fixture` prints the raw HTTP request and response. To write it to a **new** temporary file, pass `--fixture --output `; the CLI will not overwrite an existing file. `--json` and `--fixture` cannot be combined. Fixture output may contain personal information: keep captures private, anonymize them before tracking, and delete temporary captures after use.
# Session storage (/avanza-ts/docs/cli/sessions)
The CLI saves one `avanza-cli` credential in the operating system credential store: macOS Keychain, Windows Credential Manager, or Linux Secret Service (for example, GNOME Keyring or KWallet). Linux requires a running Secret Service provider.
```sh
avanza auth session
avanza auth logout
```
Session status validates the saved session and prints a redacted summary. Logout removes the local credential even if the remote logout request fails.
## Session duration [#session-duration]
Avanza lets you choose how long you stay logged in—from 30 minutes to 24 hours—in your account's website settings. This applies to biometric, username/password, and BankID logins. See Avanza's [session-duration instructions](https://www.avanza.se/kundservice.html/5121/hur-lange-kan-jag-vara-inloggad-pa-mitt-konto-utan-att-loggas-ut). The CLI checks the stored session with `avanza auth session`; an expired session requires signing in again.
Separately, the CLI's TOTP login sends a 1,440-minute `maxInactiveMinutes` value with its login request. The SDK supports requesting 30–1,440 minutes, but the CLI does not currently offer a flag for that setting. See the [SDK authentication guide](/avanza-ts/docs/sdk/authentication#totp-login) if you need to set it programmatically.
# Agent skill (/avanza-ts/docs/cli/skills)
The [Avanza CLI skill](https://github.com/AnteWall/avanza-ts/blob/main/skills/avanza-cli/SKILL.md) helps AI agents use `avanza` to look up market data and work with your account. It includes command examples and guidance for `--json` and `--fields`.
First [install the CLI](/avanza-ts/docs/cli/getting-started), then run this in your project:
```sh
npx skills add AnteWall/avanza-ts --skill avanza-cli
```
To use it in all your projects, add `--global` to the install command.
For example, ask your agent:
> Find the latest quote for Volvo B using Avanza.
> Show my recent dividends from Avanza.
For account data, [sign in](/avanza-ts/docs/cli/authentication) first.
# Authentication API (/avanza-ts/docs/sdk/reference/authentication)
Use `client.auth` for login and session lifecycle operations. For setup steps, credentials, and a BankID polling example, read the [authentication guide](/avanza-ts/docs/sdk/authentication).
## Auth client [#auth-client]
## TOTP options [#totp-options]
Choose either a six-digit `totpCode` or a base32 `totpSecret` (never both). Both modes accept `maxInactiveMinutes` for the requested inactivity timeout.
## BankID challenge [#bankid-challenge]
The QR payload must be rendered again after each pending poll. See the [BankID attempt API](/avanza-ts/docs/sdk/reference/generated/interfaces/BankIdAuthAttempt) for the complete signatures.
# Client and configuration (/avanza-ts/docs/sdk/reference/client)
Import `AvanzaClient` from `avanza-ts`. One instance owns its HTTP transport, active session, and domain clients.
```ts
import { AvanzaClient } from 'avanza-ts';
const client = new AvanzaClient();
const results = await client.market.search('volvo');
```
## Client [#client]
## Options [#options]
Pass an existing session or replace the transport when needed. The SDK uses the Node.js global `fetch` and `https://www.avanza.se` by default.
See [sessions](/avanza-ts/docs/sdk/sessions) for restoring and validating an authenticated client. All exported response types and error classes are listed in the [complete reference](/avanza-ts/docs/sdk/reference/generated).
# SDK reference (/avanza-ts/docs/sdk/reference)
`AvanzaClient` exposes domain clients as properties. These guides display type tables generated directly from the TypeScript source. Import public types and values from `avanza-ts`, rather than internal paths.
| Guide | What it covers |
| -------------------------------------------------------- | -------------------------------------------------- |
| [Client and configuration](/avanza-ts/docs/sdk/reference/client) | `AvanzaClient`, options, and errors |
| [Authentication](/avanza-ts/docs/sdk/reference/authentication) | TOTP, BankID, and sessions |
| [Markets and screeners](/avanza-ts/docs/sdk/reference/market) | Market data, instruments, and funds |
| [Accounts and portfolios](/avanza-ts/docs/sdk/reference/portfolio) | Accounts, positions, transactions, and performance |
For every exported interface and type alias, use the [complete generated reference](/avanza-ts/docs/sdk/reference/generated). It includes detailed signatures and links between types, such as [`AvanzaClient`](/avanza-ts/docs/sdk/reference/generated/classes/AvanzaClient) and [`StockFilter`](/avanza-ts/docs/sdk/reference/generated/interfaces/StockFilter).
# Markets and screeners (/avanza-ts/docs/sdk/reference/market)
Public market and screener requests work without signing in. Find an orderbook ID with `client.market.search()` before requesting a quote or chart.
## Market client [#market-client]
## Instruments client [#instruments-client]
## Stock screen options [#stock-screen-options]
## Funds client [#funds-client]
The [complete reference](/avanza-ts/docs/sdk/reference/generated) includes the corresponding response types and filters.
# Accounts and portfolios (/avanza-ts/docs/sdk/reference/portfolio)
Account-specific operations require a valid session. See [authentication](/avanza-ts/docs/sdk/authentication) and [sessions](/avanza-ts/docs/sdk/sessions) before calling these clients.
## Accounts client [#accounts-client]
## Positions client [#positions-client]
## Transactions client [#transactions-client]
## Performance client [#performance-client]
Browse all exported request and response types in the [complete reference](/avanza-ts/docs/sdk/reference/generated).
# avanza accounts (/avanza-ts/docs/cli/reference/accounts)
Read accounts and balances
* [`avanza accounts categories`](#avanza-accounts-categories)
* [`avanza accounts categorized-overview`](#avanza-accounts-categorized-overview)
* [`avanza accounts closed`](#avanza-accounts-closed)
* [`avanza accounts has-closed`](#avanza-accounts-has-closed)
* [`avanza accounts lightweight`](#avanza-accounts-lightweight)
* [`avanza accounts list`](#avanza-accounts-list)
* [`avanza accounts overview`](#avanza-accounts-overview)
* [`avanza accounts trading`](#avanza-accounts-trading)
* [`avanza accounts trading-with-positions`](#avanza-accounts-trading-with-positions)
## `avanza accounts categories` [#avanza-accounts-categories]
List account categories
```
USAGE
$ avanza accounts categories [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts categorized-overview` [#avanza-accounts-categorized-overview]
Read the categorized account overview
```
USAGE
$ avanza accounts categorized-overview [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts closed` [#avanza-accounts-closed]
List closed accounts
```
USAGE
$ avanza accounts closed [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts has-closed` [#avanza-accounts-has-closed]
Check whether any accounts have been closed
```
USAGE
$ avanza accounts has-closed [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts lightweight` [#avanza-accounts-lightweight]
Read lightweight account summaries
```
USAGE
$ avanza accounts lightweight [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts list` [#avanza-accounts-list]
List open accounts
```
USAGE
$ avanza accounts list [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts overview` [#avanza-accounts-overview]
Inspect one account
```
USAGE
$ avanza accounts overview --account-id [--fields --json] [--output [--fixture | ]]
FLAGS
--account-id= (required) Account URL parameter ID
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts trading` [#avanza-accounts-trading]
Read trading accounts
```
USAGE
$ avanza accounts trading [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza accounts trading-with-positions` [#avanza-accounts-trading-with-positions]
Read trading accounts with positions
```
USAGE
$ avanza accounts trading-with-positions [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
# avanza auth (/avanza-ts/docs/cli/reference/auth)
Manage authentication and the stored session
* [`avanza auth bankid`](#avanza-auth-bankid)
* [`avanza auth logout`](#avanza-auth-logout)
* [`avanza auth session`](#avanza-auth-session)
* [`avanza auth totp`](#avanza-auth-totp)
## `avanza auth bankid` [#avanza-auth-bankid]
Sign in by scanning a rotating BankID QR code
```
USAGE
$ avanza auth bankid
```
## `avanza auth logout` [#avanza-auth-logout]
Sign out and remove the stored session
```
USAGE
$ avanza auth logout
```
## `avanza auth session` [#avanza-auth-session]
Validate and show the current authentication session
```
USAGE
$ avanza auth session [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza auth totp` [#avanza-auth-totp]
Sign in with username, password, and TOTP
```
USAGE
$ avanza auth totp
```
# avanza collections (/avanza-ts/docs/cli/reference/collections)
Read watchlists, alerts, and instrument notes
* [`avanza collections alerts`](#avanza-collections-alerts)
* [`avanza collections note-orderbooks`](#avanza-collections-note-orderbooks)
* [`avanza collections notes`](#avanza-collections-notes)
* [`avanza collections triggered-alerts`](#avanza-collections-triggered-alerts)
* [`avanza collections watchlist-data`](#avanza-collections-watchlist-data)
* [`avanza collections watchlist-news`](#avanza-collections-watchlist-news)
* [`avanza collections watchlists`](#avanza-collections-watchlists)
## `avanza collections alerts` [#avanza-collections-alerts]
List price, percent, and news alerts
```
USAGE
$ avanza collections alerts [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza collections note-orderbooks` [#avanza-collections-note-orderbooks]
List instruments that have notes
```
USAGE
$ avanza collections note-orderbooks [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza collections notes` [#avanza-collections-notes]
List instrument notes
```
USAGE
$ avanza collections notes [--fields --json] [--output [--fixture | ]] [--orderbook-id ]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--orderbook-id= Only notes for this orderbook
--output= Write the raw fixture to a new temporary file
```
## `avanza collections triggered-alerts` [#avanza-collections-triggered-alerts]
List triggered alerts
```
USAGE
$ avanza collections triggered-alerts [--fields --json] [--output [--fixture | ]]
FLAGS
--fields= Select comma-separated JSON fields (dotted paths for nested fields)
--fixture Print the HTTP request and response as a fixture
--json Print the command response as JSON
--output= Write the raw fixture to a new temporary file
```
## `avanza collections watchlist-data` [#avanza-collections-watchlist-data]
Read quotes and selected data points for a watchlist
```
USAGE
$ avanza collections watchlist-data --watchlist-id [--fields --json] [--output [--fixture | ]]
[--orderbook-ids ] [--data-points ABSOLUTE_PERFORMANCE_SINCE_ADDED|BETA|BUY_OR_SELL|BUY_PRICE|CATEGORY|CHANGE
|CHANGE_PERCENTAGE|COLLATERAL_FACTOR|CURRENCY|DATE_WHEN_ADDED|DIRECTION|DIVIDENDS_AMOUNT_12_MONTHS|DIVIDENDS_PER_YEA
R|EARNINGS_PER_SHARE|END_DATE|ETF_ORDINARY_DIRECT_YIELD|ETF_RISK|EV_EBIT_RATIO|FIVE_YEARS_PERFORMANCE|FLAG_CODE|FUND
_RATING|FUND_RISK|FUND_TOTAL_MARKET_VALUE|HIGHEST_PRICE|INSTRUMENT_TYPE|LAST_PRICE|LEVERAGE|LOWEST_PRICE|MANAGEMENT_
FEE|MARGIN_REQUIREMENT|MARKET_CAP|MAX_PERFORMANCE|NAME|NAV|NET_DEBT_TO_EBITDA_RATIO|NEXT_DIVIDEND_AMOUNT|NEXT_DIVIDE
ND_DATE|NEXT_REPORT_DATE|NUMBER_OF_OWNERS|ONE_MONTH_PERFORMANCE|ONE_WEEK_PERFORMANCE|ONE_YEAR_PERFORMANCE|OPTION_TYP
E|ORDINARY_DIRECT_YIELD|PRICE_BOOK_RATIO|PRICE_EARNINGS_RATIO|PRICE_LAST_UPDATED_DATE|PRICE_LAST_UPDATED_TIME|PRICE_
SALES_RATIO|PRICE_WHEN_ADDED|PRODUCT_FEE|RELATIVE_PERFORMANCE_SINCE_ADDED|RETURN_ON_EQUITY|SELL_PRICE|SHARPE_RATIO|S
HORT_SELLING_ALLOWED|SIX_MONTHS_PERFORMANCE|SPREAD|STANDARD_DEVIATION_PERCENT|STRIKE_PRICE|SUPER_INTEREST_APPROVED|T
EN_YEARS_PERFORMANCE|THIS_YEAR_PERFORMANCE|THREE_MONTHS_PERFORMANCE|THREE_YEARS_PERFORMANCE|TOTAL_FEE|UNDERLYING_INS
TRUMENT_NAME|VALUE_TRADED|VOLATILITY|VOLUME_TRADED|WARRANT_LEVERAGE|WARRANT_TYPE...]
FLAGS
--data-points=