---
canonical_url: "https://docs.composio.dev/toolkits/finviz"
markdown_url: "https://docs.composio.dev/toolkits/finviz.md"
product: "platform"
version: null
last_updated: null
---

# Finviz

Finviz provides market screening and research data through its official API for ELITE subscribers.

- **Category:** analytics
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 11
- **Triggers:** 0
- **Slug:** `FINVIZ`
- **Version:** 00000000_00

## Tools

### Get Options Chain

**Slug:** `FINVIZ_GET_OPTIONS_CHAIN`

Return the options chain for one ticker, optionally restricted to an expiration date or strike price. Results use the export's dynamic columns and preserve all CSV values as strings. The response includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ticker` | string | Yes | Underlying ticker symbol whose options chain to return. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `strike_price` | number | No | Optional strike price used to restrict the options chain. |
| `expiration_date` | string | No | Optional option expiration date in YYYY-MM-DD format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Portfolio

**Slug:** `FINVIZ_GET_PORTFOLIO`

Return an existing Finviz portfolio using a configured portfolio URL or portfolio ID. Explicit fields override values parsed from portfolio_url. The response preserves CSV values as strings and includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort_code` | string | No | Advanced Finviz sort value. Prefer portfolio_url; an explicit value overrides its o setting. |
| `column_ids` | string | No | Advanced comma-separated Finviz column IDs. Prefer portfolio_url; an explicit value overrides its c setting. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `portfolio_id` | string | No | Existing Finviz portfolio ID. Required unless portfolio_url supplies it; when both are provided, this value overrides the URL's pid. |
| `portfolio_url` | string | No | Optional configured Finviz /portfolio URL containing pid and optional o and c values. It is parsed locally and never fetched or forwarded. Explicit fields below override URL values. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Stock History

**Slug:** `FINVIZ_GET_STOCK_HISTORY`

Return OHLCV price history for one ticker at a selected bar timeframe and history range. Finviz does not support every timeframe and range combination. CSV values, including prices and volume, are preserved as strings. The response includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ticker` | string | Yes | Ticker symbol whose price history to return. |
| `timeframe` | string ("1m" | "2m" | "3m" | "5m" | "10m" | "15m" | "30m" | "1h" | "2h" | "4h" | "daily" | "weekly" | "monthly") | No | Time interval represented by each OHLCV bar. Available history ranges vary by timeframe, so not every timeframe and range combination is valid. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `history_range` | string ("1d" | "5d" | "1mo" | "3mo" | "6mo" | "ytd" | "1y" | "2y" | "5y" | "max") | No | Amount of price history to return. Available ranges vary by timeframe, so select a combination supported by the Finviz chart. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Calendar

**Slug:** `FINVIZ_LIST_CALENDAR`

Return economic events, company earnings, or company dividends for an inclusive date range. Select the calendar with calendar_type. Results preserve dynamic CSV columns and string values and include a bounded record prefix plus the matching row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date_to` | string | No | Optional inclusive end date in YYYY-MM-DD format. |
| `date_from` | string | Yes | Inclusive start date in YYYY-MM-DD format. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `calendar_type` | string ("economic" | "earnings" | "dividends") | Yes | Calendar to return: economic events, company earnings, or company dividends. This selects a canonical Finviz endpoint and is not sent as a query or path parameter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Market Groups

**Slug:** `FINVIZ_LIST_GROUPS`

Return aggregate Finviz market groups for a selected grouping and data view. Results use the export's dynamic columns and preserve all CSV values as strings. The response includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("overview" | "valuation" | "performance" | "custom" | "financial" | "performance_chart" | "spectrum" | "charts" | "maps") | No | Data view that determines the aggregate metrics and columns returned for each group. |
| `grouping` | string ("sector" | "industry" | "country" | "capitalization") | Yes | Dimension used to aggregate stocks: sector, industry, country for U.S.-listed stocks, or market-capitalization bucket. |
| `column_ids` | string | No | Optional comma-separated column IDs copied from the c parameter of a configured Finviz Groups URL to select specific columns. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Insider Transactions

**Slug:** `FINVIZ_LIST_INSIDER_TRANSACTIONS`

Return recent market-wide or ticker-specific insider transactions, filtered to all transactions, purchases, or sales. Results preserve numeric-looking values and SEC links exactly as strings. The response includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ticker` | string | No | Optional ticker used to restrict insider transactions. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `transaction_type` | string ("all" | "buys" | "sales") | No | Insider transaction type to return: all transactions, purchases only, or sales only. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Investor Holdings

**Slug:** `FINVIZ_LIST_INVESTOR_HOLDINGS`

Return a bounded prefix of one manager's or fund's complete unpaginated holdings export and report its full row count. Select the resource with investor_type and pass its Investor ID or combined slug. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `investor_type` | string ("manager" | "fund") | Yes | Investor kind: manager or fund. This selects a canonical Finviz holdings endpoint and is not sent as a query or path parameter. |
| `investor_identifier` | string | Yes | Investor ID or combined Finviz name-ID slug from FINVIZ_LIST_INVESTORS. Pass the value unchanged; both documented forms are supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Investors

**Slug:** `FINVIZ_LIST_INVESTORS`

Return the institutional-manager or fund directory, optionally narrowed by name. Records preserve Investor ID for FINVIZ_LIST_INVESTOR_HOLDINGS. max_records returns a bounded prefix, and Finviz may cap the export itself, so the result is not guaranteed to be an exhaustive directory. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `search` | string | No | Optional partial name. For managers, search by manager name; for funds, search by fund or series name. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `investor_type` | string ("manager" | "fund") | Yes | Investor directory to return: institutional managers or funds. This selects a canonical Finviz endpoint and is not sent as a query or path parameter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Latest Filings

**Slug:** `FINVIZ_LIST_LATEST_FILINGS`

Return the latest SEC filings for one ticker, optionally filtered by filing category and ordered by filing date, report date, or form. Results preserve all CSV cells, including filing and document links, exactly as strings. The response includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ticker` | string | Yes | Ticker symbol whose latest SEC filings to return. |
| `sort_code` | string ("filing_date_ascending" | "filing_date_descending" | "report_date_ascending" | "report_date_descending" | "form_ascending" | "form_descending") | No | Optional result order by filing date, report date, or form, in ascending or descending order. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `form_categories` | string ("annual-quarterly-current" | "insider-equity" | "beneficial-ownership" | "exempt-offerings" | "registration-statements" | "filing-review-correspondence" | "sec-orders-notices" | "proxy-materials" | "tender-offers" | "trust-indentures") | No | Optional SEC filing category. Categories group related forms, such as annual, quarterly, and current reports; beneficial ownership reports; proxy materials; or registration statements and prospectuses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List News

**Slug:** `FINVIZ_LIST_NEWS`

Return market, stock, ETF, or crypto news from Finviz. Stock and ETF feeds can optionally be restricted to one ticker; market and crypto feeds are market-wide. Results use the export's dynamic CSV header and preserve every cell as a string. The response includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ticker` | string | No | Optional ticker filter for stocks or etfs news only. Omit it to return the selected feed across all stocks or ETFs. |
| `news_type` | string ("market_by_time" | "market_by_source" | "stocks" | "etfs" | "crypto") | No | News feed to return: market news ordered by time or grouped by source, stock news, ETF news, or market-wide crypto news. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Screen Stocks

**Slug:** `FINVIZ_SCREEN_STOCKS`

Return stocks from a configured Finviz screener URL or explicit screener controls. Explicit fields override values parsed from screener_url. Unknown filter codes may be silently ignored. The response preserves CSV values as strings and includes a bounded record prefix and the full export row count. A truncated response has no continuation page. Requests are paced only within one worker; external callers and multi-worker runners must serialize Finviz requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view_id` | integer | No | Advanced Finviz screener view ID. Defaults to the live-verified Custom view, 151. |
| `sort_code` | string | No | Advanced Finviz sort code. Include the leading '-' for descending order. |
| `column_ids` | string | No | Advanced comma-separated Finviz Custom-view column IDs. |
| `max_records` | integer | No | Maximum records to include in the response (1-500). Finviz still returns the full unpaginated export; use total_row_count and truncated to detect omitted records. |
| `filter_codes` | string | No | Advanced comma-separated Finviz filter codes. Unknown codes may be silently ignored. |
| `screener_url` | string | No | Optional configured Finviz /screener URL. Its v, f, c, o, and t values are parsed locally and sent only to the fixed export endpoint; an explicitly supplied field below overrides the URL value. |
| `ticker_symbols` | string | No | Optional comma-separated ticker symbols, such as AAPL,MSFT. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
