> For the full documentation index, see: https://massive.com/docs/llms.txt # REST API ## Alternative # REST ## Alternative ### Merchant Aggregates **Endpoint:** `GET /consumer-spending/eu/v1/merchant-aggregates` **Description:** Aggregated European consumer spending data powered by [Fable Data](https://www.fabledata.com/). Track daily credit card, debit card, and open banking transaction totals for ~250 US public companies across 6 European countries (UK, Germany, France, Italy, Spain, Austria). Data available from 2016; Spain from 2019. Raw spend totals must be normalized to accurately measure spending trends. See [Normalizing Merchant Aggregates](/docs/rest/alternative/overview#normalizing-merchant-aggregates) for methodology. Use Cases: Consumer spending trend analysis, merchant revenue estimation, cross-border spending comparisons, sector and industry benchmarking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `transaction_date` | string | No | The calendar date when the consumer transactions occurred. Value must be formatted 'yyyy-mm-dd'. | | `transaction_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `transaction_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `transaction_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `transaction_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `name` | string | No | The merchant or entity name for this aggregate (lowercase). When type is 'merchant', this value can be used as the lookup_name in the merchant-hierarchy endpoint to retrieve full corporate hierarchy details. | | `name.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `name.gt` | string | No | Filter greater than the value. | | `name.gte` | string | No | Filter greater than or equal to the value. | | `name.lt` | string | No | Filter less than the value. | | `name.lte` | string | No | Filter less than or equal to the value. | | `user_country` | string | No | Country of consumer's residence (ISO codes). Available countries: UK, DE, FR, ES, IT, AT. Values outside these are mapped to 'unknown'. | | `user_country.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `channel` | string | No | Transaction channel. Possible values: online, offline, bnpl (buy now pay later platforms such as Scala, Klarna, Zilch). | | `channel.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `consumer_type` | string | No | The panel the account is sourced from. Possible values: consumer_credit, consumer_debit, open_banking. | | `consumer_type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `parent_name` | string | No | Merchant's parent business name (Title Case). Useful for aggregating transactions across subsidiary brands. Also available in the merchant-hierarchy endpoint for full corporate structure. | | `parent_name.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `parent_name.gt` | string | No | Filter greater than the value. | | `parent_name.gte` | string | No | Filter greater than or equal to the value. | | `parent_name.lt` | string | No | Filter less than the value. | | `parent_name.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'transaction_date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].channel` | string | Transaction channel. Possible values: online, offline, bnpl (buy now pay later platforms such as Scala, Klarna, Zilch). | | `results[].consumer_type` | string | The panel the account is sourced from. Possible values: consumer_credit, consumer_debit, open_banking. | | `results[].eight_day_rolling_category_accounts` | integer | The count of unique consumer accounts active for a given country, consumer type, and that transacted in this merchant category (MCC Group) over the prior 8 days. Used for short-term normalization calculations (e.g., spend per 1000 panelists = (total_spend / eight_day_rolling_category_accounts) * 1000). | | `results[].eight_day_rolling_total_accounts` | integer | The count of unique consumer accounts active for a given country and consumer type that had any transaction activity (across all categories) over the prior 8 days. Provides a baseline for total panel size. | | `results[].mcc_group` | string | Merchant category code group associated with the merchant or payment processor. | | `results[].merchant_industry` | string | Industry name based on GICS/BICS/ICB data classification for the merchant. | | `results[].merchant_ticker` | string | Stock ticker associated with the merchant (~250 US public companies mapped). Uses Bloomberg tickers and they are point in time. | | `results[].name` | string | The merchant or entity name for this aggregate (lowercase). When type is 'merchant', this value can be used as the lookup_name in the merchant-hierarchy endpoint to retrieve full corporate hierarchy details. | | `results[].parent_name` | string | Merchant's parent business name (Title Case). Useful for aggregating transactions across subsidiary brands. Also available in the merchant-hierarchy endpoint for full corporate structure. | | `results[].published_date` | string | The date when this data version was published. For original data, this is approximately 7 days after transaction_date. | | `results[].spend_in_distinct_account_key_count` | integer | The count of distinct account keys (unique consumer accounts) with inbound transactions. | | `results[].spend_in_spend` | number | The total inbound transaction amount (refunds, returns, credits) in the specified currency for this aggregation. Values are positive, representing money flowing back into consumer accounts. | | `results[].spend_in_transaction_count` | integer | The count of inbound transactions (refunds, returns). | | `results[].spend_out_distinct_account_key_count` | integer | The count of distinct account keys (unique consumer accounts) with outbound transactions. | | `results[].spend_out_spend` | number | The total outbound transaction amount (money spent by consumers) in the specified currency for this aggregation. Values are negative, representing money flowing out of consumer accounts. | | `results[].spend_out_transaction_count` | integer | The count of outbound transactions (purchases, payments). | | `results[].total_accounts` | integer | The total count of distinct consumer accounts with any transaction activity for this aggregation. | | `results[].total_spend` | number | Sum of spend_out_spend and spend_in_spend. Typically negative (net outflow). A positive value indicates refunds exceeded new spending for this aggregation. | | `results[].total_transactions` | integer | The total count of all transactions (outbound + inbound). | | `results[].transaction_currency` | string | ISO currency code for the transaction (base card/account currency). Always EUR or GBP in this dataset. All spend amounts are denominated in this currency. | | `results[].transaction_date` | string | The calendar date when the consumer transactions occurred. | | `results[].twenty_eight_day_rolling_category_accounts` | integer | The count of unique consumer accounts active for a given country, consumer type, and that transacted in this merchant category (MCC Group) over the prior 28 days. Used for longer-term normalization calculations. | | `results[].twenty_eight_day_rolling_total_accounts` | integer | The count of unique consumer accounts active for a given country and consumer type that had any transaction activity (across all categories) over the prior 28 days. Provides a longer-term baseline for total panel size. | | `results[].type` | string | The type of aggregation. Can be 'merchant' or 'payment_processor'. | | `results[].user_country` | string | Country of consumer's residence (ISO codes). Available countries: UK, DE, FR, ES, IT, AT. Values outside these are mapped to 'unknown'. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": "c38af84c88ba484cb8430ba1511b1f24", "results": [ { "channel": "offline", "consumer_type": "open_banking", "eight_day_rolling_category_accounts": 40346, "eight_day_rolling_total_accounts": 463648, "mcc_group": "memberships & organizations", "merchant_industry": "Leisure Clubs & Facilities", "merchant_ticker": "0206472D US", "name": "zumba fitness", "parent_name": "Zumba Fitness Llc", "published_date": "2026-01-25", "spend_in_distinct_account_key_count": 0, "spend_in_spend": 0, "spend_in_transaction_count": 0, "spend_out_distinct_account_key_count": 1, "spend_out_spend": -3, "spend_out_transaction_count": 1, "total_accounts": 1, "total_spend": -3, "total_transactions": 1, "transaction_currency": "GBP", "transaction_date": "2026-01-18", "twenty_eight_day_rolling_category_accounts": 91642, "twenty_eight_day_rolling_total_accounts": 524917, "type": "merchant", "user_country": "UK" } ], "status": "OK" } ``` --- # REST ## Alternative ### Merchant Hierarchy **Endpoint:** `GET /consumer-spending/eu/v1/merchant-hierarchy` **Description:** Reference data mapping merchants to parent companies, tickers, sectors, and industries across Fable's European consumer transaction panel. Each row represents a single merchant with its corporate hierarchy and classification metadata. The latest weekly snapshot contains ~3,500 merchants covering ~250 US public companies. Use `lookup_name` to join with the `name` field from the [Merchant Aggregates](/docs/rest/alternative/consumer-spending/merchant-aggregates) endpoint. Filter by `active_from` and `active_to` to perform point-in-time joins against a specific `transaction_date` (e.g., `active_from.lte=2025-06-15&active_to.gte=2025-06-15`). An `active_from` of `0001-01-01` indicates no known start date, and an `active_to` of `9999-12-31` indicates the mapping is currently active. Use Cases: Merchant-to-ticker mapping, corporate hierarchy lookups, sector and industry classification, point-in-time historical hierarchy analysis. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `lookup_name` | string | No | Lowercase merchant tag used for joining with the merchant-aggregates endpoint name field (e.g., 'asda', 'amazon'). | | `lookup_name.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `lookup_name.gt` | string | No | Filter greater than the value. | | `lookup_name.gte` | string | No | Filter greater than or equal to the value. | | `lookup_name.lt` | string | No | Filter less than the value. | | `lookup_name.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | Stock ticker associated with the merchant (~250 US public companies mapped). Uses Bloomberg standard. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `listing_status` | string | No | Whether the merchant is a publicly listed company or private. Possible values: public, private. | | `listing_status.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `active_from` | string | No | Date this merchant hierarchy mapping became applicable. A value of 0001-01-01 indicates no known start date. Use with active_to to match against transaction_date from the merchant-aggregates endpoint to perform point-in-time queries. Value must be formatted 'yyyy-mm-dd'. | | `active_from.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `active_from.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `active_from.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `active_from.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `active_to` | string | No | Date after which this merchant hierarchy mapping is no longer applicable due to a corporate action. A value of 9999-12-31 indicates the mapping is currently active. Value must be formatted 'yyyy-mm-dd'. | | `active_to.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `active_to.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `active_to.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `active_to.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'lookup_name' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].active_from` | string | Date this merchant hierarchy mapping became applicable. A value of 0001-01-01 indicates no known start date. Use with active_to to match against transaction_date from the merchant-aggregates endpoint to perform point-in-time queries. | | `results[].active_to` | string | Date after which this merchant hierarchy mapping is no longer applicable due to a corporate action. A value of 9999-12-31 indicates the mapping is currently active. | | `results[].category` | string | Merchant category assigned by the data provider (Title Case, e.g., 'Groceries', 'General Merchandise', 'Travel'). Values are managed by the data provider and may expand over time. | | `results[].grandparent_name` | string | Merchant's grandparent business name (Title Case). | | `results[].grandparent_ticker` | string | Stock ticker of the merchant's grandparent company. Uses Bloomberg standard. | | `results[].great_grandparent_name` | string | Merchant's great-grandparent business name (Title Case, top-level corporate entity). | | `results[].great_grandparent_ticker` | string | Stock ticker of the merchant's great-grandparent company (top-level corporate entity). Uses Bloomberg standard. | | `results[].industry` | string | Industry classification based on GICS/BICS/ICB standards. | | `results[].industry_group` | string | Industry group classification based on GICS/BICS/ICB standards. | | `results[].listing_status` | string | Whether the merchant is a publicly listed company or private. Possible values: public, private. | | `results[].lookup_name` | string | Lowercase merchant tag used for joining with the merchant-aggregates endpoint name field (e.g., 'asda', 'amazon'). | | `results[].normalized_name` | string | Cleaned, standardized merchant display name (Title Case, e.g., 'Asda', 'Amazon'). | | `results[].parent_name` | string | Merchant's parent business name (Title Case). Useful for aggregating transactions across subsidiary brands. | | `results[].parent_ticker` | string | Stock ticker of the merchant's parent company. Uses Bloomberg standard. | | `results[].sector` | string | Sector classification based on GICS/BICS/ICB standards. | | `results[].sub_industry` | string | Sub-industry classification based on GICS/BICS/ICB standards. | | `results[].ticker` | string | Stock ticker associated with the merchant (~250 US public companies mapped). Uses Bloomberg standard. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": "a1b2c3d4e5f6", "results": [ { "active_from": "0001-01-01", "active_to": "9999-12-31", "category": "General Merchandise", "grandparent_name": "Amazon Inc", "grandparent_ticker": "AMZN US", "great_grandparent_name": "Amazon Inc", "great_grandparent_ticker": "AMZN US", "industry": "E-Commerce Discretionary", "industry_group": "Retail - Discretionary", "listing_status": "public", "lookup_name": "amazon", "normalized_name": "Amazon Inc", "parent_name": "Amazon Inc", "parent_ticker": "AMZN US", "sector": "Consumer Discretionary", "sub_industry": "E-Commerce Discretionary", "ticker": "AMZN US" } ], "status": "OK" } ``` --- ## Crypto # REST ## Crypto ### Custom Bars (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{cryptoTicker}/range/{multiplier}/{timespan}/{from}/{to}` **Description:** Retrieve aggregated historical OHLC (Open, High, Low, Close) and volume data for a specified cryptocurrency pair over a custom date range and time interval in Coordinated Universal Time (UTC). These aggregates are derived from qualifying crypto trades that meet specific conditions. If no eligible trades occur within a given timeframe, no aggregate bar is generated, resulting in an empty interval that transparently indicates a period without trading activity. Users can adjust the multiplier and timespan parameters (e.g., a 5-minute bar) to tailor their analysis. This flexibility supports a wide range of analytical and visualization needs within the crypto markets. Use Cases: Data visualization, technical analysis, backtesting strategies, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cryptoTicker` | string | Yes | The ticker symbol of the currency pair. | | `multiplier` | integer | Yes | The size of the timespan multiplier. | | `timespan` | string | Yes | The size of the time window. | | `from` | string | Yes | The start of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `to` | string | Yes | The end of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `sort` | N/A | No | Sort the results by timestamp. `asc` will return results in ascending order (oldest at the top), `desc` will return results in descending order (newest at the top). | | `limit` | integer | No | Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000. Read more about how limit is used to calculate aggregate results in our article on Aggregate Data API Improvements. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 2, "request_id": "0cf72b6da685bcd386548ffe2895904a", "results": [ { "c": 10094.75, "h": 10429.26, "l": 9490, "n": 1, "o": 9557.9, "t": 1590984000000, "v": 303067.6562332156, "vw": 9874.5529 }, { "c": 9492.62, "h": 10222.72, "l": 9135.68, "n": 1, "o": 10096.87, "t": 1591070400000, "v": 323339.6922892879, "vw": 9729.5701 } ], "resultsCount": 2, "status": "OK", "ticker": "X:BTCUSD" } ``` --- # REST ## Crypto ### Daily Market Summary (OHLC) **Endpoint:** `GET /v2/aggs/grouped/locale/global/market/crypto/{date}` **Description:** Retrieve daily OHLC (open, high, low, close), volume, and volume-weighted average price (VWAP) data for all crypto tickers on a specified trading date. This endpoint returns comprehensive market coverage in a single request, enabling wide-scale analysis, bulk data processing, and research into broad market performance. Use Cases: Market overview, bulk data processing, historical research, and portfolio comparison. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | Yes | The beginning date for the aggregate window. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].T` | string | The exchange symbol that this item is traded under. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the end of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 3, "request_id": { "description": "A request id assigned by the server.", "type": "string" }, "results": [ { "T": "X:ARDRUSD", "c": 0.0550762, "h": 0.0550762, "l": 0.0550762, "n": 18388, "o": 0.0550762, "t": 1580676480000, "v": 2, "vw": 0.0551 }, { "T": "X:NGCUSD", "c": 0.0272983, "h": 0.0273733, "l": 0.0272983, "n": 18, "o": 0.0273733, "t": 1580674080000, "v": 4734, "vw": 0.0273 }, { "T": "X:ZSCUSD", "c": 0.00028531, "h": 0.00028531, "l": 0.00028531, "n": 151, "o": 0.00028531, "t": 1580671080000, "v": 390, "vw": 0.0003 } ], "resultsCount": 3, "status": "OK" } ``` --- # REST ## Crypto ### Daily Ticker Summary (OHLC) **Endpoint:** `GET /v1/open-close/crypto/{from}/{to}/{date}` **Description:** Retrieve the opening and closing trades for a specific crypto pair on a given date. This endpoint provides essential daily pricing details, enabling users to evaluate performance, conduct historical analysis, and gain insights into trading activity. Use Cases: Daily performance analysis, historical data collection, portfolio tracking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `from` | string | Yes | The "from" symbol of the pair. | | `to` | string | Yes | The "to" symbol of the pair. | | `date` | string | Yes | The date of the requested open/close in the format YYYY-MM-DD. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `close` | number | The close price for the symbol in the given time period. | | `closingTrades` | array[object] | An array of results containing the requested data. | | `closingTrades[].c` | array[integer] | A list of condition codes. | | `closingTrades[].i` | string | The Trade ID which uniquely identifies a trade. These are unique per combination of ticker, exchange, and TRF. For example: A trade for AAPL executed on NYSE and a trade for AAPL executed on NASDAQ could potentially have the same Trade ID. | | `closingTrades[].p` | number | The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00. | | `closingTrades[].s` | number | The size of a trade (also known as volume). | | `closingTrades[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `closingTrades[].x` | integer | The exchange that this crypto trade happened on. See Exchanges for a mapping of exchanges to IDs. | | `day` | string | The date requested. | | `isUTC` | boolean | Whether or not the timestamps are in UTC timezone. | | `open` | number | The open price for the symbol in the given time period. | | `openTrades` | array[object] | An array of results containing the requested data. | | `openTrades[].c` | array[integer] | A list of condition codes. | | `openTrades[].i` | string | The Trade ID which uniquely identifies a trade. These are unique per combination of ticker, exchange, and TRF. For example: A trade for AAPL executed on NYSE and a trade for AAPL executed on NASDAQ could potentially have the same Trade ID. | | `openTrades[].p` | number | The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00. | | `openTrades[].s` | number | The size of a trade (also known as volume). | | `openTrades[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `openTrades[].x` | integer | The exchange that this crypto trade happened on. See Exchanges for a mapping of exchanges to IDs. | | `symbol` | string | The symbol pair that was evaluated from the request. | ## Sample Response ```json { "close": 11050.64, "closingTrades": [ { "c": [ 2 ], "i": "973323250", "p": 11050.64, "s": 0.006128, "t": 1602287999795, "x": 4 }, { "c": [ 1 ], "i": "105717893", "p": 11049.4, "s": 0.014, "t": 1602287999659, "x": 17 } ], "day": "2020-10-09T00:00:00.000Z", "isUTC": true, "open": 10932.44, "openTrades": [ { "c": [ 2 ], "i": "511235746", "p": 10932.44, "s": 0.002, "t": 1602201600056, "x": 1 }, { "c": [ 2 ], "i": "511235751", "p": 10923.76, "s": 0.02, "t": 1602201600141, "x": 4 } ], "symbol": "BTC-USD" } ``` --- # REST ## Crypto ### Previous Day Bar (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{cryptoTicker}/prev` **Description:** Retrieve the previous trading day's open, high, low, and close (OHLC) data for a specified cryptocurrency pair. This endpoint provides key pricing metrics, including volume, to help users assess recent performance and inform trading strategies. Use Cases: Baseline comparison, technical analysis, market research, and daily reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cryptoTicker` | string | Yes | The ticker symbol of the currency pair. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].T` | string | The exchange symbol that this item is traded under. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the end of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 1, "request_id": "b2170df985474b6d21a6eeccfb6bee67", "results": [ { "T": "X:BTCUSD", "c": 16035.9, "h": 16180, "l": 15639.2, "o": 15937.1, "t": 1605416400000, "v": 95045.16897951, "vw": 15954.2111 } ], "resultsCount": 1, "status": "OK", "ticker": "X:BTCUSD" } ``` --- # REST ## Crypto ### Condition Codes **Endpoint:** `GET /v3/reference/conditions` **Description:** Retrieve a unified and comprehensive list of trade and quote conditions from various upstream market data providers (e.g., CTA, UTP, OPRA, FINRA). Each condition identifies special circumstances associated with market data, such as trades occurring outside regular sessions or at averaged prices, and outlines how these conditions affect metrics like high, low, open, close, and volume. By examining these mapped conditions, users can accurately interpret the context of trades and quotes, apply appropriate filtering, and ensure that aggregated data correctly reflects eligible trading activity. Use Cases: Data interpretation, unified condition mapping, filtering and analysis, algorithmic adjustments, compliance and reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter for conditions within a given asset class. | | `data_type` | string | No | Filter by data type. | | `id` | integer | No | Filter for conditions with a given ID. | | `sip` | string | No | Filter by SIP. If the condition contains a mapping for that SIP, the condition will be returned. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of conditions that match your query. | | `results[].abbreviation` | string | A commonly-used abbreviation for this condition. | | `results[].asset_class` | enum: stocks, options, crypto, fx | An identifier for a group of similar financial instruments. | | `results[].data_types` | array[string] | Data types that this condition applies to. | | `results[].description` | string | A short description of the semantics of this condition. | | `results[].exchange` | integer | If present, mapping this condition from a Massive code to a SIP symbol depends on this attribute. In other words, data with this condition attached comes exclusively from the given exchange. | | `results[].id` | integer | An identifier used by Massive for this condition. Unique per data type. | | `results[].legacy` | boolean | If true, this condition is from an old version of the SIPs' specs and no longer is used. Other conditions may or may not reuse the same symbol as this one. | | `results[].name` | string | The name of this condition. | | `results[].sip_mapping` | object | A comprehensive mapping that translates condition codes from individual SIPs (CTA, OPRA, UTP) to a unified code used by Massive. This facilitates consistent interpretation and application of market data conditions across different data streams, ensuring that users can accurately apply these conditions to their data analysis and reporting. | | `results[].type` | enum: sale_condition, quote_condition, sip_generated_flag, financial_status_indicator, short_sale_restriction_indicator, settlement_condition, market_condition, trade_thru_exempt | An identifier for a collection of related conditions. | | `results[].update_rules` | object | A list of aggregation rules. | | `status` | string | The status of this request's response. | --- # REST ## Crypto ### Exchanges **Endpoint:** `GET /v3/reference/exchanges` **Description:** Retrieve a list of known exchanges, including their identifiers, names, market types, and other relevant attributes. This information helps map exchange codes, understand market coverage, and integrate exchange details into applications. Use Cases: Data mapping, market coverage analysis, application development (e.g., display exchange options), and ensuring regulatory compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter by asset class. | | `locale` | string | No | Filter by locale. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].acronym` | string | A commonly used abbreviation for this exchange. | | `results[].asset_class` | enum: stocks, options, crypto, fx, futures | An identifier for a group of similar financial instruments. | | `results[].id` | integer | A unique identifier used by Massive for this exchange. | | `results[].locale` | enum: us, global | An identifier for a geographical location. | | `results[].mic` | string | The Market Identifier Code of this exchange (see ISO 10383). | | `results[].name` | string | Name of this exchange. | | `results[].operating_mic` | string | The MIC of the entity that operates this exchange. | | `results[].participant_id` | string | The ID used by SIP's to represent this exchange. | | `results[].type` | enum: exchange, TRF, SIP | Represents the type of exchange. | | `results[].url` | string | A link to this exchange's website, if one exists. | | `status` | string | The status of this request's response. | --- # REST ## Crypto ### Market Holidays **Endpoint:** `GET /v1/marketstatus/upcoming` **Description:** Retrieve upcoming market holidays and their corresponding open/close times. This endpoint is forward-looking only, listing future holidays that affect market hours. Use this data to plan ahead for trading activities and system operations. Use Cases: Trading schedule adjustments, integrated holiday calendars, operational planning (e.g., system maintenance), and notifying users about upcoming market closures. ## Response Attributes | Field | Type | Description | | --- | --- | --- | ## Sample Response ```json [ { "date": "2020-11-26", "exchange": "NYSE", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "NASDAQ", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "OTC", "name": "Thanksgiving", "status": "closed" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NASDAQ", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NYSE", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" } ] ``` --- # REST ## Crypto ### Market Status **Endpoint:** `GET /v1/marketstatus/now` **Description:** Retrieve the current trading status for various exchanges and overall financial markets. This endpoint provides real-time indicators of whether markets are open, closed, or operating in pre-market/after-hours sessions, along with timing details for the current or upcoming trading periods. Use Cases: Real-time monitoring, algorithm scheduling, UI updates, and operational planning. ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | boolean | Whether or not the market is in post-market hours. | | `currencies` | object | Contains the status of various currency markets. | | `currencies.crypto` | string | The status of the crypto market. | | `currencies.fx` | string | The status of the forex market. | | `earlyHours` | boolean | Whether or not the market is in pre-market hours. | | `exchanges` | object | Contains the status of different US stock exchanges (e.g., Nasdaq, NYSE). | | `exchanges.nasdaq` | string | The status of the Nasdaq market. | | `exchanges.nyse` | string | The status of the NYSE market. | | `exchanges.otc` | string | The status of the OTC market. | | `indicesGroups` | object | Contains the status of various index groups (e.g., MSCI, FTSE Russell). | | `indicesGroups.cccy` | string | The status of Cboe Streaming Market Indices Cryptocurrency ("CCCY") indices trading hours. | | `indicesGroups.cgi` | string | The status of Cboe Global Indices ("CGI") trading hours. | | `indicesGroups.dow_jones` | string | The status of Dow Jones indices trading hours | | `indicesGroups.ftse_russell` | string | The status of Financial Times Stock Exchange Group ("FTSE") Russell indices trading hours. | | `indicesGroups.msci` | string | The status of Morgan Stanley Capital International ("MSCI") indices trading hours. | | `indicesGroups.mstar` | string | The status of Morningstar ("MSTAR") indices trading hours. | | `indicesGroups.mstarc` | string | The status of Morningstar Customer ("MSTARC") indices trading hours. | | `indicesGroups.nasdaq` | string | The status of National Association of Securities Dealers Automated Quotations ("Nasdaq") indices trading hours. | | `indicesGroups.s_and_p` | string | The status of Standard & Poor's ("S&P") indices trading hours. | | `indicesGroups.societe_generale` | string | The status of Societe Generale indices trading hours. | | `market` | string | The status of the market as a whole. | | `serverTime` | string | The current time of the server, returned as a date-time in RFC3339 format. | ## Sample Response ```json { "afterHours": true, "currencies": { "crypto": "open", "fx": "open" }, "earlyHours": false, "exchanges": { "nasdaq": "extended-hours", "nyse": "extended-hours", "otc": "closed" }, "market": "extended-hours", "serverTime": "2020-11-10T17:37:37-05:00" } ``` --- # REST ## Crypto ### Full Market Snapshot **Endpoint:** `GET /v2/snapshot/locale/global/markets/crypto/tickers` **Description:** Retrieve a comprehensive snapshot of the crypto market in a single response. This endpoint consolidates key information like pricing, volume, and trade activity to provide a full-market-snapshot view, eliminating the need for multiple queries. Snapshot data is cleared daily at 12:00 AM EST and begins to repopulate as exchanges report new data, which can start as early as 4:00 AM EST. By accessing all tickers at once, users can efficiently monitor broad market conditions, perform bulk analyses, and power applications that require complete, current market information. Use Cases: Market overview, bulk data processing, heat maps/dashboards, automated monitoring. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `tickers` | array | No | A case-sensitive comma separated list of tickers to get snapshots for. For example, X:BTCUSD, X:ETHBTC, and X:BOBAUSD. Empty string defaults to querying all tickers. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `status` | string | The status of this request's response. | | `tickers` | array[object] | An array of snapshot data for the specified tickers. | | `tickers[].day` | object | The most recent daily bar for this ticker. | | `tickers[].fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `tickers[].lastTrade` | object | The most recent trade for this ticker. | | `tickers[].min` | object | The most recent minute bar for this ticker. | | `tickers[].prevDay` | object | The previous day's bar for this ticker. | | `tickers[].ticker` | string | The exchange symbol that this item is traded under. | | `tickers[].todaysChange` | number | The value of the change from the previous day. | | `tickers[].todaysChangePerc` | number | The percentage change since the previous day. | | `tickers[].updated` | integer | The last updated timestamp. | ## Sample Response ```json { "status": "OK", "tickers": [ { "day": { "c": 0.296, "h": 0.59714, "l": 0.23706, "o": 0.28, "v": 4097699.5691991993, "vw": 0 }, "lastTrade": { "c": [ 1 ], "i": 413131, "p": 0.293, "s": 13.6191, "t": 1605292686010, "x": 17 }, "min": { "c": 0.296, "h": 0.296, "l": 0.294, "n": 2, "o": 0.296, "t": 1684427880000, "v": 123.4866, "vw": 0 }, "prevDay": { "c": 0.281, "h": 0.59714, "l": 0.23706, "o": 0.27, "v": 6070178.786154971, "vw": 0.4076 }, "ticker": "X:FSNUSD", "todaysChange": 0.012, "todaysChangePerc": 4.270463, "updated": 1605330008999 } ] } ``` --- # REST ## Crypto ### Single Ticker Snapshot **Endpoint:** `GET /v2/snapshot/locale/global/markets/crypto/tickers/{ticker}` **Description:** Retrieve the most recent market data snapshot for a single ticker. This endpoint consolidates the latest trade and aggregated data (minute, day, and previous day) for the specified ticker. Snapshot data is cleared at 12:00 AM EST and begins updating as exchanges report new information. By focusing on a single ticker, users can closely monitor real-time developments and incorporate up-to-date information into trading strategies, alerts, or crypto-level reporting. Use Cases: Focused monitoring, real-time analysis, price alerts, investor relations. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | Ticker of the snapshot | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `status` | string | The status of this request's response. | | `request_id` | string | A request id assigned by the server. | | `ticker` | object | Contains the requested snapshot data for the specified ticker. | | `ticker.day` | object | The most recent daily bar for this ticker. | | `ticker.fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `ticker.lastTrade` | object | The most recent trade for this ticker. | | `ticker.min` | object | The most recent minute bar for this ticker. | | `ticker.prevDay` | object | The previous day's bar for this ticker. | | `ticker.ticker` | string | The exchange symbol that this item is traded under. | | `ticker.todaysChange` | number | The value of the change from the previous day. | | `ticker.todaysChangePerc` | number | The percentage change since the previous day. | | `ticker.updated` | integer | The last updated timestamp. | ## Sample Response ```json { "request_id": "ad92e92ce183112c593717f00dfebd2c", "status": "OK", "ticker": { "day": { "c": 16260.85, "h": 16428.4, "l": 15830.4, "o": 16418.07, "v": 105008.84231068, "vw": 0 }, "lastTrade": { "c": [ 2 ], "i": "464569520", "p": 16242.31, "s": 0.001933, "t": 1605294230780, "x": 4 }, "min": { "c": 16235.1, "h": 16264.29, "l": 16129.3, "n": 558, "o": 16257.51, "t": 1684428960000, "v": 19.30791925, "vw": 0 }, "prevDay": { "c": 16399.24, "h": 16418.07, "l": 16399.24, "o": 16418.07, "v": 0.99167108, "vw": 16402.6893 }, "ticker": "X:BTCUSD", "todaysChange": -156.93, "todaysChangePerc": -0.956935, "updated": 1605330008999 } } ``` --- # REST ## Crypto ### Top Market Movers **Endpoint:** `GET /v2/snapshot/locale/global/markets/crypto/{direction}` **Description:** Retrieve snapshot data highlighting the top 20 gainers or losers in the crypto market. Gainers are stocks with the largest percentage increase since the previous day’s close, and losers are those with the largest percentage decrease. Snapshot data is cleared daily at 12:00 AM EST and begins repopulating as exchanges report new information. By focusing on these market movers, users can quickly identify significant price shifts and monitor evolving market dynamics. Use Cases: Market movers identification, trading strategies, market sentiment analysis, portfolio adjustments. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `direction` | string | Yes | The direction of the snapshot results to return. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `tickers` | array[object] | An array of snapshot data for the specified tickers. | | `tickers[].day` | object | The most recent daily bar for this ticker. | | `tickers[].fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `tickers[].lastTrade` | object | The most recent trade for this ticker. | | `tickers[].min` | object | The most recent minute bar for this ticker. | | `tickers[].prevDay` | object | The previous day's bar for this ticker. | | `tickers[].ticker` | string | The exchange symbol that this item is traded under. | | `tickers[].todaysChange` | number | The value of the change from the previous day. | | `tickers[].todaysChangePerc` | number | The percentage change since the previous day. | | `tickers[].updated` | integer | The last updated timestamp. | ## Sample Response ```json { "status": "OK", "tickers": [ { "day": { "c": 0.0374, "h": 0.062377, "l": 0.01162, "o": 0.044834, "v": 27313165.159427017, "vw": 0 }, "lastTrade": { "c": [ 2 ], "i": "517478762", "p": 0.0374, "s": 499, "t": 1604409649544, "x": 2 }, "min": { "c": 0.062377, "h": 0.062377, "l": 0.062377, "n": 2, "o": 0.062377, "t": 1684426740000, "v": 35420, "vw": 0 }, "prevDay": { "c": 0.01162, "h": 0.044834, "l": 0.01162, "o": 0.044834, "v": 53616273.36827199, "vw": 0.0296 }, "ticker": "X:DRNUSD", "todaysChange": 0.02578, "todaysChangePerc": 221.858864, "updated": 1605330008999 } ] } ``` --- # REST ## Crypto ### Unified Snapshot **Endpoint:** `GET /v3/snapshot` **Description:** Retrieve unified snapshots of market data for multiple asset classes including stocks, options, forex, and cryptocurrencies in a single request. This endpoint consolidates key metrics such as last trade, last quote, open, high, low, close, and volume for a comprehensive view of current market conditions. By aggregating data from various sources into one response, users can efficiently monitor, compare, and act on information spanning multiple markets and asset types. Use Cases: Cross-market analysis, diversified portfolio monitoring, global market insights, multi-asset trading strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Search a range of tickers lexicographically. | | `type` | string | No | Query by the type of asset. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `ticker.any_of` | string | No | Comma separated list of tickers, up to a maximum of 250. If no tickers are passed then all results will be returned in a paginated manner. Warning: The maximum number of characters allowed in a URL are subject to your technology stack. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 250. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].error` | string | The error while looking for this ticker. | | `results[].fmv` | number | Fair Market Value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `results[].fmv_last_updated` | integer | If Fair Market Value (FMV) is available, this field is the nanosecond timestamp of the last FMV calculation. | | `results[].last_minute` | object | The most recent minute aggregate for this stock. | | `results[].last_trade` | object | The most recent quote for this contract. This is only returned if your current plan includes trades. | | `results[].market_status` | string | The market status for the market that trades this ticker. Possible values for stocks, options, crypto, and forex snapshots are open, closed, early_trading, or late_trading. Possible values for indices snapshots are regular_trading, closed, early_trading, and late_trading. | | `results[].message` | string | The error message while looking for this ticker. | | `results[].name` | string | The name of this contract. | | `results[].session` | object | Comprehensive trading session metrics, detailing price changes, trading volume, and key price points (open, close, high, low) for the asset within the current trading day. Includes specific changes during early, regular, and late trading periods to enable detailed performance analysis and trend tracking. | | `results[].ticker` | string | The ticker symbol for the asset. | | `results[].type` | enum: stocks, options, fx, crypto, indices | The asset class for this ticker. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "abc123", "results": [ { "break_even_price": 171.075, "details": { "contract_type": "call", "exercise_style": "american", "expiration_date": "2022-10-14", "shares_per_contract": 100, "strike_price": 5, "underlying_ticker": "NCLH" }, "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "greeks": { "delta": 0.5520187372272933, "gamma": 0.00706756515659829, "theta": -0.018532772783847958, "vega": 0.7274811132998142 }, "implied_volatility": 0.3048997097864957, "last_quote": { "ask": 21.25, "ask_exchange": 12, "ask_size": 110, "bid": 20.9, "bid_exchange": 10, "bid_size": 172, "last_updated": 1636573458756383500, "midpoint": 21.075, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "exchange": 316, "price": 0.05, "sip_timestamp": 1675280958783136800, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "NCLH $5 Call", "open_interest": 8921, "session": { "change": -0.05, "change_percent": -1.07, "close": 6.65, "decimal_volume": "67.0", "early_trading_change": -0.01, "early_trading_change_percent": -0.03, "high": 7.01, "late_trading_change": -0.4, "late_trading_change_percent": -0.02, "low": 5.42, "open": 6.7, "previous_close": 6.71, "regular_trading_change": -0.6, "regular_trading_change_percent": -0.5, "volume": 67 }, "ticker": "O:NCLH221014C00005000", "type": "options", "underlying_asset": { "change_to_break_even": 23.123999999999995, "last_updated": 1636573459862384600, "price": 147.951, "ticker": "AAPL", "timeframe": "REAL-TIME" } }, { "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "last_minute": { "close": 412.05, "decimal_volume": "610.0", "high": 412.1, "low": 412.05, "open": 412.1, "transactions": 26, "volume": 610, "vwap": 412.0881 }, "last_quote": { "ask": 21.25, "ask_exchange": 300, "ask_size": 110, "bid": 20.9, "bid_exchange": 323, "bid_size": 172, "last_updated": 1636573458756383500, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "decimal_size": "2.0", "exchange": 316, "id": "4064", "last_updated": 1675280958783136800, "price": 0.05, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "Apple Inc.", "session": { "change": -1.05, "change_percent": -4.67, "close": 21.4, "decimal_volume": "37.0", "early_trading_change": -0.39, "early_trading_change_percent": -0.07, "high": 22.49, "late_trading_change": 1.2, "late_trading_change_percent": 3.92, "low": 21.35, "open": 22.49, "previous_close": 22.45, "volume": 37 }, "ticker": "AAPL", "type": "stocks" }, { "error": "NOT_FOUND", "message": "Ticker not found.", "ticker": "TSLAAPL" } ], "status": "OK" } ``` --- # REST ## Crypto ### Exponential Moving Average (EMA) **Endpoint:** `GET /v1/indicators/ema/{cryptoTicker}` **Description:** Retrieve the Exponential Moving Average (EMA) for a specified ticker over a defined time range. The EMA places greater weight on recent prices, enabling quicker trend detection and more responsive signals. Use Cases: Trend identification, EMA crossover signals, dynamic support/resistance levels, and adjusting strategies based on recent market volatility. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cryptoTicker` | string | Yes | The ticker symbol for which to get exponential moving average (EMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `window` | integer | No | The window size used to calculate the exponential moving average (EMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the exponential moving average. i.e. 'close' will result in using close prices to calculate the exponential moving average (EMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the EMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/ema/X:BTCUSD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/X:BTCUSD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Crypto ### Moving Average Convergence/Divergence (MACD) **Endpoint:** `GET /v1/indicators/macd/{cryptoTicker}` **Description:** Retrieve the Moving Average Convergence/Divergence (MACD) for a specified ticker over a defined time range. MACD is a momentum indicator derived from two moving averages, helping to identify trend strength, direction, and potential trading signals. Use Cases: Momentum analysis, signal generation (crossover events), spotting overbought/oversold conditions, and confirming trend directions. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cryptoTicker` | string | Yes | The ticker symbol for which to get MACD data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `short_window` | integer | No | The short window size used to calculate MACD data. | | `long_window` | integer | No | The long window size used to calculate MACD data. | | `signal_window` | integer | No | The window size used to calculate the MACD signal line. | | `series_type` | string | No | The price in the aggregate which will be used to calculate MACD data. i.e. 'close' will result in using close prices to calculate the MACD. | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the MACD indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Each entry in the values array represents MACD indicator data for a specific timestamp and includes: | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/macd/X:BTCUSD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/X:BTCUSD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "histogram": 38.3801666667, "signal": 106.9811666667, "timestamp": 1517562000016, "value": 145.3613333333 }, { "histogram": 41.098859136, "signal": 102.7386283473, "timestamp": 1517562001016, "value": 143.8374874833 } ] }, "status": "OK" } ``` --- # REST ## Crypto ### Relative Strength Index (RSI) **Endpoint:** `GET /v1/indicators/rsi/{cryptoTicker}` **Description:** Retrieve the Relative Strength Index (RSI) for a specified ticker over a defined time range. The RSI measures the speed and magnitude of price changes, oscillating between 0 and 100 to help identify overbought or oversold conditions. Use Cases: Overbought/oversold detection, divergence analysis, trend confirmation, and refining market entry/exit strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cryptoTicker` | string | Yes | The ticker symbol for which to get relative strength index (RSI) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `window` | integer | No | The window size used to calculate the relative strength index (RSI). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the relative strength index. i.e. 'close' will result in using close prices to calculate the relative strength index (RSI). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the RSI indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/rsi/X:BTCUSD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/X:BTCUSD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 82.19 } ] }, "status": "OK" } ``` --- # REST ## Crypto ### Simple Moving Average (SMA) **Endpoint:** `GET /v1/indicators/sma/{cryptoTicker}` **Description:** Retrieve the Simple Moving Average (SMA) for a specified ticker over a defined time range. The SMA calculates the average price across a set number of periods, smoothing price fluctuations to reveal underlying trends and potential signals. Use Cases: Trend analysis, trading signal generation (e.g., SMA crossovers), identifying support/resistance, and refining entry/exit timing. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cryptoTicker` | string | Yes | The ticker symbol for which to get simple moving average (SMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `window` | integer | No | The window size used to calculate the simple moving average (SMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the simple moving average. i.e. 'close' will result in using close prices to calculate the simple moving average (SMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the SMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/sma/X:BTCUSD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "aggregates": [ { "c": 75.0875, "h": 75.15, "l": 73.7975, "n": 1, "o": 74.06, "t": 1577941200000, "v": 135647456, "vw": 74.6099 }, { "c": 74.3575, "h": 75.145, "l": 74.125, "n": 1, "o": 74.2875, "t": 1578027600000, "v": 146535512, "vw": 74.7026 } ], "url": "https://api.massive.com/v2/aggs/ticker/X:BTCUSD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Crypto ### All Tickers **Endpoint:** `GET /v3/reference/tickers` **Description:** Retrieve a comprehensive list of ticker symbols supported by Massive across various asset classes (e.g., stocks, indices, forex, crypto). Each ticker entry provides essential details such as symbol, name, market, currency, and active status. Use Cases: Asset discovery, data integration, filtering/selection, and application development. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a ticker symbol. Defaults to empty string which queries all tickers. | | `type` | string | No | Specify the type of the tickers. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). Defaults to empty string which queries all types. | | `market` | string | No | Filter by market type. By default all markets are included. | | `exchange` | string | No | Specify the asset's primary exchange Market Identifier Code (MIC) according to [ISO 10383](https://www.iso20022.org/market-identifier-codes). Defaults to empty string which queries all exchanges. | | `cusip` | string | No | Specify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes [at their website](https://www.cusip.com/identifiers.html#/CUSIP). Defaults to empty string which queries all CUSIPs. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `cik` | string | No | Specify the CIK of the asset you want to search for. Find more information about CIK codes [at their website](https://www.sec.gov/edgar/searchedgar/cik.htm). Defaults to empty string which queries all CIKs. | | `date` | string | No | Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date. | | `search` | string | No | Search for terms within the ticker and/or company name. | | `active` | boolean | No | Specify if the tickers returned should be actively traded on the queried date. Default is true. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 100 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of tickers that match your query. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `results[].active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results[].base_currency_name` | string | The name of the currency that this asset is priced against. | | `results[].base_currency_symbol` | string | The ISO 4217 code of the currency that this asset is priced against. | | `results[].cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results[].composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].currency_name` | string | The name of the currency that this asset is traded with. | | `results[].currency_symbol` | string | The ISO 4217 code of the currency that this asset is traded with. | | `results[].delisted_utc` | string | The last date that the asset was traded. | | `results[].last_updated_utc` | string | The information is accurate up to this time. | | `results[].locale` | enum: us, global | The locale of the asset. | | `results[].market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results[].name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results[].primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results[].share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].ticker` | string | The exchange symbol that this item is traded under. | | `results[].type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `status` | string | The status of this request's response. | ## Sample Response ```json { "count": 1, "next_url": "https://api.massive.com/v3/reference/tickers?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "e70013d92930de90e089dc8fa098888e", "results": [ { "active": true, "cik": "0001090872", "composite_figi": "BBG000BWQYZ5", "currency_name": "usd", "last_updated_utc": "2021-04-25T00:00:00Z", "locale": "us", "market": "stocks", "name": "Agilent Technologies Inc.", "primary_exchange": "XNYS", "share_class_figi": "BBG001SCTQY4", "ticker": "A", "type": "CS" } ], "status": "OK" } ``` --- # REST ## Crypto ### Ticker Overview **Endpoint:** `GET /v3/reference/tickers/{ticker}` **Description:** Retrieve comprehensive details for a single ticker supported by Massive that is active as-of a given date. This endpoint offers a deep look into a company’s fundamental attributes, including its primary exchange, standardized identifiers (CIK, composite FIGI, share class FIGI), market capitalization, industry classification, and key dates. Users also gain access to branding assets (e.g., logos, icons), enabling them to enrich applications and analyses with visually consistent, contextually relevant information. For information on delisted tickers, use the [All Tickers](/docs/rest/crypto/tickers/all-tickers) endpoint with `active=false`. Use Cases: Company research, data integration, application enhancement, due diligence & compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `date` | string | No | Specify a point in time to get information about the ticker available on that date. When retrieving information from SEC filings, we compare this date with the period of report date on the SEC filing. For example, consider an SEC filing submitted by AAPL on 2019-07-31, with a period of report date ending on 2019-06-29. That means that the filing was submitted on 2019-07-31, but the filing was created based on information from 2019-06-29. If you were to query for AAPL details on 2019-06-29, the ticker details would include information from the SEC filing. Defaults to the most recent available date. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request id assigned by the server. | | `results` | object | Ticker with details. | | `results.active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results.address` | object | Company headquarters address details. | | `results.branding` | object | Provides URLs aiding in visual identification. | | `results.cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results.composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.currency_name` | string | The name of the currency that this asset is traded with. | | `results.delisted_utc` | string | The last date that the asset was traded. | | `results.description` | string | A description of the company and what they do/offer. | | `results.homepage_url` | string | The URL of the company's website homepage. | | `results.list_date` | string | The date that the symbol was first publicly listed in the format YYYY-MM-DD. | | `results.locale` | enum: us, global | The locale of the asset. | | `results.market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results.market_cap` | number | The most recent close price of the ticker multiplied by weighted outstanding shares. | | `results.name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results.phone_number` | string | The phone number for the company behind this ticker. | | `results.primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results.round_lot` | number | Round lot size of this security. | | `results.share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.share_class_shares_outstanding` | number | The recorded number of outstanding shares for this particular share class. | | `results.sic_code` | string | The standard industrial classification code for this ticker. For a list of SIC Codes, see the SEC's SIC Code List. | | `results.sic_description` | string | A description of this ticker's SIC code. | | `results.ticker` | string | The exchange symbol that this item is traded under. | | `results.ticker_root` | string | The root of a specified ticker. For example, the root of BRK.A is BRK. | | `results.ticker_suffix` | string | The suffix of a specified ticker. For example, the suffix of BRK.A is A. | | `results.total_employees` | number | The approximate number of employees for the company. | | `results.type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `results.weighted_shares_outstanding` | number | The shares outstanding calculated assuming all shares of other share classes are converted to this share class. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "31d59dda-80e5-4721-8496-d0d32a654afe", "results": { "active": true, "address": { "address1": "One Apple Park Way", "city": "Cupertino", "postal_code": "95014", "state": "CA" }, "branding": { "icon_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_icon.png", "logo_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_logo.svg" }, "cik": "0000320193", "composite_figi": "BBG000B9XRY4", "currency_name": "usd", "description": "Apple designs a wide variety of consumer electronic devices, including smartphones (iPhone), tablets (iPad), PCs (Mac), smartwatches (Apple Watch), AirPods, and TV boxes (Apple TV), among others. The iPhone makes up the majority of Apple's total revenue. In addition, Apple offers its customers a variety of services such as Apple Music, iCloud, Apple Care, Apple TV+, Apple Arcade, Apple Card, and Apple Pay, among others. Apple's products run internally developed software and semiconductors, and the firm is well known for its integration of hardware, software and services. Apple's products are distributed online as well as through company-owned stores and third-party retailers. The company generates roughly 40% of its revenue from the Americas, with the remainder earned internationally.", "homepage_url": "https://www.apple.com", "list_date": "1980-12-12", "locale": "us", "market": "stocks", "market_cap": 2771126040150, "name": "Apple Inc.", "phone_number": "(408) 996-1010", "primary_exchange": "XNAS", "round_lot": 100, "share_class_figi": "BBG001S5N8V8", "share_class_shares_outstanding": 16406400000, "sic_code": "3571", "sic_description": "ELECTRONIC COMPUTERS", "ticker": "AAPL", "ticker_root": "AAPL", "total_employees": 154000, "type": "CS", "weighted_shares_outstanding": 16334371000 }, "status": "OK" } ``` --- # REST ## Crypto ### Last Trade **Endpoint:** `GET /v1/last/crypto/{from}/{to}` **Description:** Retrieve the most recent trade details for a specified cryptocurrency pair, including price, size, timestamp, exchange, and conditions. This endpoint delivers up-to-date market information, enabling real-time monitoring, rapid decision-making, and integration into crypto trading or analytics tools. Use Cases: Real-time market monitoring, algorithmic trading, analytical insights, application development. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `from` | string | Yes | The "from" symbol of the pair. | | `to` | string | Yes | The "to" symbol of the pair. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `last` | object | Contains the requested trade data for the specified cryptocurrency pair. | | `last.conditions` | array[integer] | A list of condition codes. | | `last.exchange` | integer | The exchange that this crypto trade happened on. See Exchanges for a mapping of exchanges to IDs. | | `last.price` | number | The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00. | | `last.size` | number | The size of a trade (also known as volume). | | `last.timestamp` | integer | The Unix millisecond timestamp. | | `request_id` | string | A request id assigned by the server. | | `status` | string | The status of this request's response. | | `symbol` | string | The symbol pair that was evaluated from the request. | ## Sample Response ```json { "last": { "conditions": [ 1 ], "exchange": 4, "price": 16835.42, "size": 0.006909, "timestamp": 1605560885027 }, "request_id": "d2d779df015fe2b7fbb8e58366610ef7", "status": "success", "symbol": "BTC-USD" } ``` --- # REST ## Crypto ### Trades **Endpoint:** `GET /v3/trades/{cryptoTicker}` **Description:** Retrieve comprehensive, tick-level trade data for a specified crypto ticker within a defined time range. Each record includes price, size, exchange, trade conditions, and precise timestamp information. This granular data is foundational for constructing aggregated bars and performing in-depth analyses, as it captures every trade that contributes to calculations of open, high, low, and close (OHLC) values. By leveraging these trades, users can refine their understanding of intraday price movements, test and optimize algorithmic strategies, and ensure compliance by maintaining an auditable record of market activity. Use Cases: Intraday analysis, algorithmic trading, market microstructure research, data integrity and compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cryptoTicker` | string | Yes | The ticker symbol to get trades for. | | `timestamp` | string | No | Query by trade timestamp. Either a date with the format YYYY-MM-DD or a nanosecond timestamp. | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 1000 and max is 50000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].conditions` | array[integer] | A list of condition codes. | | `results[].exchange` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `results[].id` | string | The Trade ID which uniquely identifies a trade on the exchange that the trade happened on. | | `results[].participant_timestamp` | integer | The nanosecond Exchange Unix Timestamp. This is the timestamp of when the trade was generated at the exchange. | | `results[].price` | number | The price of the trade in the base currency of the crypto pair. | | `results[].size` | number | The size of a trade (also known as volume). | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v3/trades/X:BTC-USD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "conditions": [ 1 ], "exchange": 1, "id": "191450340", "participant_timestamp": 1625097600103000000, "price": 35060, "size": 1.0434526 }, { "conditions": [ 2 ], "exchange": 1, "id": "191450341", "participant_timestamp": 1625097600368000000, "price": 35059.99, "size": 0.0058883 } ], "status": "OK" } ``` --- ## Economy # REST ## Economy ### Inflation **Endpoint:** `GET /fed/v1/inflation` **Description:** Retrieve key indicators of realized inflation, reflecting actual changes in consumer prices and spending behavior in the U.S. economy. This endpoint provides both headline and core inflation measures from the CPI and PCE indexes, offering a well-rounded view of historical price trends. Use Cases: Tracking inflation trends, evaluating purchasing power, supporting monetary policy and economic research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | Calendar date of the observation (YYYY‑MM‑DD). | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'date' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].cpi` | number | Consumer Price Index (CPI) for All Urban Consumers — a standard measure of headline inflation based on a fixed basket of goods and services, not seasonally adjusted. | | `results[].cpi_core` | number | Core Consumer Price Index — the CPI excluding food and energy, used to understand underlying inflation trends without short-term volatility. | | `results[].cpi_year_over_year` | number | Year-over-year percentage change in the headline CPI — the most commonly cited inflation rate in public discourse and economic policy. | | `results[].date` | string | Calendar date of the observation (YYYY‑MM‑DD). | | `results[].pce` | number | Personal Consumption Expenditures (PCE) Price Index — a broader measure of inflation used by the Federal Reserve, reflecting actual consumer spending patterns and updated basket weights. | | `results[].pce_core` | number | Core PCE Price Index — excludes food and energy prices from the PCE index, and is the Fed's preferred measure of underlying inflation. | | `results[].pce_spending` | number | Nominal Personal Consumption Expenditures — total dollar value of consumer spending in the U.S. economy, reported in billions of dollars and not adjusted for inflation. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "cpi": 310.45, "cpi_core": 320.1, "cpi_year_over_year": 3.18, "date": "2025-06-01", "pce": 132.73, "pce_core": 131.9, "pce_spending": 20345.6 } ], "status": "OK" } ``` --- # REST ## Economy ### Inflation Expectations **Endpoint:** `GET /fed/v1/inflation-expectations` **Description:** Retrieve a broad view of how inflation is expected to evolve over time in the U.S. economy. This endpoint combines signals from financial markets and economic models to capture both near-term and long-term inflation outlooks. Each data point helps contextualize how inflation risk is perceived by investors and forecasters across different time horizons. Use Cases: Analyzing inflation sentiment, comparing near-term vs. long-term expectations, supporting macroeconomic research and fixed-income strategy. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | Calendar date of the observation (YYYY‑MM‑DD). | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'date' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].date` | string | Calendar date of the observation (YYYY‑MM‑DD). | | `results[].forward_years_5_to_10` | number | 5-Year, 5-Year Forward Inflation Expectation Rate — the market's expectation of average annual inflation for the 5-year period beginning 5 years from now, based on the spread between forward nominal and real yields. | | `results[].market_10_year` | number | 10-Year Breakeven Inflation Rate — the market's expectation of average annual inflation over the next 10 years, based on the spread between 10-year nominal Treasury yields and 10-year TIPS yields. | | `results[].market_5_year` | number | 5-Year Breakeven Inflation Rate — the market's expectation of average annual inflation over the next 5 years, based on the spread between 5-year nominal Treasury yields and 5-year TIPS yields. | | `results[].model_10_year` | number | The Cleveland Fed’s 10-year inflation expectations data estimated expected inflation, risk premiums, and the real interest rate using a model based on Treasury yields, inflation data, swaps, and surveys. | | `results[].model_1_year` | number | The Cleveland Fed’s 1-year inflation expectations data estimated expected inflation, risk premiums, and the real interest rate using a model based on Treasury yields, inflation data, swaps, and surveys. | | `results[].model_30_year` | number | The Cleveland Fed’s 30-year inflation expectations data estimated expected inflation, risk premiums, and the real interest rate using a model based on Treasury yields, inflation data, swaps, and surveys. | | `results[].model_5_year` | number | The Cleveland Fed’s 5-year inflation expectations data estimated expected inflation, risk premiums, and the real interest rate using a model based on Treasury yields, inflation data, swaps, and surveys. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "date": "2025-06-17", "forward_years_5_to_10": 2.6, "market_10_year": 2.36, "market_5_year": 2.12, "model_10_year": 2.95, "model_1_year": 2.85, "model_30_year": 3, "model_5_year": 2.91 } ], "status": "OK" } ``` --- # REST ## Economy ### Labor Market **Endpoint:** `GET /fed/v1/labor-market` **Description:** Retrieve key labor market indicators from the Federal Reserve, including unemployment rate, labor force participation, average hourly earnings, and job openings data. Use Cases: Analyzing employment trends, monitoring workforce dynamics, supporting macroeconomic research and labor market analysis. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | Calendar date of the observation (YYYY-MM-DD). | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'date' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].avg_hourly_earnings` | number | Average hourly earnings of all employees on private nonfarm payrolls in USD (CES0500000003 series from FRED). | | `results[].date` | string | Calendar date of the observation (YYYY-MM-DD). | | `results[].job_openings` | number | Total nonfarm job openings in thousands (JTSJOL series from FRED). | | `results[].labor_force_participation_rate` | number | Civilian labor force participation rate as a percentage of the civilian noninstitutional population (CIVPART series from FRED). | | `results[].unemployment_rate` | number | Civilian unemployment rate as a percentage of the labor force (UNRATE series from FRED). | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "avg_hourly_earnings": 35.06, "date": "2024-12-01", "job_openings": 8098, "labor_force_participation_rate": 62.5, "unemployment_rate": 4.2 } ], "status": "OK" } ``` --- # REST ## Economy ### Treasury Yields **Endpoint:** `GET /fed/v1/treasury-yields` **Description:** Retrieve historical U.S. Treasury yield data for standard timeframes ranging from 1-month to 30-years, with daily historical records back to 1962. This endpoint lets you query by date or date range to see how interest rates have changed over time. Each data point reflects the market yield for Treasury securities of a specific maturity, helping users understand short- and long-term rate movements. Use Cases: Charting rate trends, comparing short vs. long-term yields, economic research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | Calendar date of the yield observation (YYYY-MM-DD). | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'date' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].date` | string | Calendar date of the yield observation (YYYY-MM-DD). | | `results[].yield_10_year` | number | Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity, Quoted on an Investment Basis | | `results[].yield_1_month` | number | Market Yield on U.S. Treasury Securities at 1-Month Constant Maturity, Quoted on an Investment Basis | | `results[].yield_1_year` | number | Market Yield on U.S. Treasury Securities at 1-Year Constant Maturity, Quoted on an Investment Basis | | `results[].yield_20_year` | number | Market Yield on U.S. Treasury Securities at 20-Year Constant Maturity, Quoted on an Investment Basis | | `results[].yield_2_year` | number | Market Yield on U.S. Treasury Securities at 2-Year Constant Maturity, Quoted on an Investment Basis | | `results[].yield_30_year` | number | Market Yield on U.S. Treasury Securities at 30-Year Constant Maturity, Quoted on an Investment Basis | | `results[].yield_3_month` | number | Market Yield on U.S. Treasury Securities at 3-Month Constant Maturity, Quoted on an Investment Basis | | `results[].yield_3_year` | number | Market Yield on U.S. Treasury Securities at 3-Year Constant Maturity, Quoted on an Investment Basis | | `results[].yield_5_year` | number | Market Yield on U.S. Treasury Securities at 5-Year Constant Maturity, Quoted on an Investment Basis | | `results[].yield_6_month` | number | Market Yield on U.S. Treasury Securities at 6-Month Constant Maturity, Quoted on an Investment Basis | | `results[].yield_7_year` | number | Market Yield on U.S. Treasury Securities at 7-Year Constant Maturity, Quoted on an Investment Basis | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "date": "1962-01-02", "yield_10_year": 4.06, "yield_1_year": 3.22, "yield_5_year": 3.88 } ], "status": "OK" } ``` --- ## Forex # REST ## Forex ### Custom Bars (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{forexTicker}/range/{multiplier}/{timespan}/{from}/{to}` **Description:** Retrieve aggregated historical OHLC (Open, High, Low, Close) and volume data for a specified Forex currency pair over a custom date range and time interval in Eastern Time (ET). Unlike stocks or options, these aggregates are generated from quoted bid/ask prices rather than executed trades. If no new quotes occur during a given timeframe, no aggregate bar is produced, resulting in an empty interval that transparently indicates a period without quote updates. Users can customize their data by adjusting the multiplier and timespan parameters (e.g., a 5-minute bar), covering various trading sessions. This approach supports a range of analytical and visualization needs in the Forex market. Use Cases: Data visualization, technical analysis, backtesting strategies, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `forexTicker` | string | Yes | The ticker symbol of the currency pair. | | `multiplier` | integer | Yes | The size of the timespan multiplier. | | `timespan` | string | Yes | The size of the time window. | | `from` | string | Yes | The start of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `to` | string | Yes | The end of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `sort` | N/A | No | Sort the results by timestamp. `asc` will return results in ascending order (oldest at the top), `desc` will return results in descending order (newest at the top). | | `limit` | integer | No | Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000. Read more about how limit is used to calculate aggregate results in our article on Aggregate Data API Improvements. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 1, "request_id": "79c061995d8b627b736170bc9653f15d", "results": [ { "c": 1.17721, "h": 1.18305, "l": 1.1756, "n": 125329, "o": 1.17921, "t": 1626912000000, "v": 125329, "vw": 1.1789 } ], "resultsCount": 1, "status": "OK", "ticker": "C:EURUSD" } ``` --- # REST ## Forex ### Daily Market Summary (OHLC) **Endpoint:** `GET /v2/aggs/grouped/locale/global/market/fx/{date}` **Description:** Retrieve daily OHLC (open, high, low, close), volume, and volume-weighted average price (VWAP) data for all forex tickers on a specified trading date. This endpoint returns comprehensive market coverage in a single request, enabling wide-scale analysis, bulk data processing, and research into broad market performance. Use Cases: Market overview, bulk data processing, historical research, and portfolio comparison. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | Yes | The beginning date for the aggregate window. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].T` | string | The exchange symbol that this item is traded under. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the end of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 3, "request_id": { "description": "A request id assigned by the server.", "type": "string" }, "results": [ { "T": "C:ILSCHF", "c": 0.2704, "h": 0.2706, "l": 0.2693, "n": 689, "o": 0.2698, "t": 1602719999999, "v": 689, "vw": 0.2702 }, { "T": "C:GBPCAD", "c": 1.71103, "h": 1.71642, "l": 1.69064, "n": 407324, "o": 1.69955, "t": 1602719999999, "v": 407324, "vw": 1.7062 }, { "T": "C:DKKAUD", "c": 0.2214, "h": 0.2214, "l": 0.2195, "n": 10639, "o": 0.22, "t": 1602719999999, "v": 10639, "vw": 0.2202 } ], "resultsCount": 3, "status": "OK" } ``` --- # REST ## Forex ### Previous Day Bar (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{forexTicker}/prev` **Description:** Retrieve the previous trading day's open, high, low, and close (OHLC) data for a specified forex pair. This endpoint provides key pricing metrics, including volume, to help users assess recent performance and inform trading strategies. Use Cases: Baseline comparison, technical analysis, market research, and daily reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `forexTicker` | string | Yes | The ticker symbol of the currency pair. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].T` | string | The exchange symbol that this item is traded under. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 1, "request_id": "08ec061fb85115678d68452c0a609cb7", "results": [ { "T": "C:EURUSD", "c": 1.06206, "h": 1.0631, "l": 1.0505, "n": 180300, "o": 1.05252, "t": 1651708799999, "v": 180300, "vw": 1.055 } ], "resultsCount": 1, "status": "OK", "ticker": "C:EURUSD" } ``` --- # REST ## Forex ### Currency Conversion **Endpoint:** `GET /v1/conversion/{from}/{to}` **Description:** Retrieve real-time currency conversion rates between any two supported currencies. This endpoint provides the most recent bid/ask quotes and calculates the converted amount based on the current market rate, enabling users to quickly and accurately convert values in both directions (e.g., USD to CAD or CAD to USD). Use Cases: Cross-border transactions, currency hedging, travel expense planning, dynamic pricing. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `from` | string | Yes | The "from" symbol of the pair. | | `to` | string | Yes | The "to" symbol of the pair. | | `amount` | number | No | The amount to convert, with a decimal. | | `precision` | integer | No | The decimal precision of the conversion. Defaults to 2 which is 2 decimal places accuracy. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `converted` | number | The result of the conversion. | | `from` | string | The "from" currency symbol. | | `initialAmount` | number | The amount to convert. | | `last` | object | Contains the requested quote data for the specified forex currency pair. | | `last.ask` | number | The ask price. | | `last.bid` | number | The bid price. | | `last.exchange` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `last.timestamp` | integer | The Unix millisecond timestamp. | | `request_id` | string | A request id assigned by the server. | | `status` | string | The status of this request's response. | | `symbol` | string | The symbol pair that was evaluated from the request. | | `to` | string | The "to" currency symbol. | ## Sample Response ```json { "converted": 73.14, "from": "AUD", "initialAmount": 100, "last": { "ask": 1.3673344, "bid": 1.3672596, "exchange": 48, "timestamp": 1605555313000 }, "request_id": "a73a29dbcab4613eeaf48583d3baacf0", "status": "success", "symbol": "AUD/USD", "to": "USD" } ``` --- # REST ## Forex ### Exchanges **Endpoint:** `GET /v3/reference/exchanges` **Description:** Retrieve a list of known exchanges, including their identifiers, names, market types, and other relevant attributes. This information helps map exchange codes, understand market coverage, and integrate exchange details into applications. Use Cases: Data mapping, market coverage analysis, application development (e.g., display exchange options), and ensuring regulatory compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter by asset class. | | `locale` | string | No | Filter by locale. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].acronym` | string | A commonly used abbreviation for this exchange. | | `results[].asset_class` | enum: stocks, options, crypto, fx, futures | An identifier for a group of similar financial instruments. | | `results[].id` | integer | A unique identifier used by Massive for this exchange. | | `results[].locale` | enum: us, global | An identifier for a geographical location. | | `results[].mic` | string | The Market Identifier Code of this exchange (see ISO 10383). | | `results[].name` | string | Name of this exchange. | | `results[].operating_mic` | string | The MIC of the entity that operates this exchange. | | `results[].participant_id` | string | The ID used by SIP's to represent this exchange. | | `results[].type` | enum: exchange, TRF, SIP | Represents the type of exchange. | | `results[].url` | string | A link to this exchange's website, if one exists. | | `status` | string | The status of this request's response. | --- # REST ## Forex ### Market Holidays **Endpoint:** `GET /v1/marketstatus/upcoming` **Description:** Retrieve upcoming market holidays and their corresponding open/close times. This endpoint is forward-looking only, listing future holidays that affect market hours. Use this data to plan ahead for trading activities and system operations. Use Cases: Trading schedule adjustments, integrated holiday calendars, operational planning (e.g., system maintenance), and notifying users about upcoming market closures. ## Response Attributes | Field | Type | Description | | --- | --- | --- | ## Sample Response ```json [ { "date": "2020-11-26", "exchange": "NYSE", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "NASDAQ", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "OTC", "name": "Thanksgiving", "status": "closed" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NASDAQ", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NYSE", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" } ] ``` --- # REST ## Forex ### Market Status **Endpoint:** `GET /v1/marketstatus/now` **Description:** Retrieve the current trading status for various exchanges and overall financial markets. This endpoint provides real-time indicators of whether markets are open, closed, or operating in pre-market/after-hours sessions, along with timing details for the current or upcoming trading periods. Use Cases: Real-time monitoring, algorithm scheduling, UI updates, and operational planning. ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | boolean | Whether or not the market is in post-market hours. | | `currencies` | object | Contains the status of various currency markets. | | `currencies.crypto` | string | The status of the crypto market. | | `currencies.fx` | string | The status of the forex market. | | `earlyHours` | boolean | Whether or not the market is in pre-market hours. | | `exchanges` | object | Contains the status of different US stock exchanges (e.g., Nasdaq, NYSE). | | `exchanges.nasdaq` | string | The status of the Nasdaq market. | | `exchanges.nyse` | string | The status of the NYSE market. | | `exchanges.otc` | string | The status of the OTC market. | | `indicesGroups` | object | Contains the status of various index groups (e.g., MSCI, FTSE Russell). | | `indicesGroups.cccy` | string | The status of Cboe Streaming Market Indices Cryptocurrency ("CCCY") indices trading hours. | | `indicesGroups.cgi` | string | The status of Cboe Global Indices ("CGI") trading hours. | | `indicesGroups.dow_jones` | string | The status of Dow Jones indices trading hours | | `indicesGroups.ftse_russell` | string | The status of Financial Times Stock Exchange Group ("FTSE") Russell indices trading hours. | | `indicesGroups.msci` | string | The status of Morgan Stanley Capital International ("MSCI") indices trading hours. | | `indicesGroups.mstar` | string | The status of Morningstar ("MSTAR") indices trading hours. | | `indicesGroups.mstarc` | string | The status of Morningstar Customer ("MSTARC") indices trading hours. | | `indicesGroups.nasdaq` | string | The status of National Association of Securities Dealers Automated Quotations ("Nasdaq") indices trading hours. | | `indicesGroups.s_and_p` | string | The status of Standard & Poor's ("S&P") indices trading hours. | | `indicesGroups.societe_generale` | string | The status of Societe Generale indices trading hours. | | `market` | string | The status of the market as a whole. | | `serverTime` | string | The current time of the server, returned as a date-time in RFC3339 format. | ## Sample Response ```json { "afterHours": true, "currencies": { "crypto": "open", "fx": "open" }, "earlyHours": false, "exchanges": { "nasdaq": "extended-hours", "nyse": "extended-hours", "otc": "closed" }, "market": "extended-hours", "serverTime": "2020-11-10T17:37:37-05:00" } ``` --- # REST ## Forex ### Last Quote **Endpoint:** `GET /v1/last_quote/currencies/{from}/{to}` **Description:** Retrieve the most recent quote for a specified forex currency pair, including bid, ask, exchange, and timestamp. This endpoint provides up-to-date pricing data to inform currency trading strategies, market analysis, and application development. Use Cases: Real-time forex monitoring, algorithmic trading, analytical insights, application development. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `from` | string | Yes | The "from" symbol of the pair. | | `to` | string | Yes | The "to" symbol of the pair. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `last` | object | Contains the requested quote data for the specified forex currency pair. | | `last.ask` | number | The ask price. | | `last.bid` | number | The bid price. | | `last.exchange` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `last.timestamp` | integer | The Unix millisecond timestamp. | | `request_id` | string | A request id assigned by the server. | | `status` | string | The status of this request's response. | | `symbol` | string | The symbol pair that was evaluated from the request. | ## Sample Response ```json { "last": { "ask": 0.73124, "bid": 0.73122, "exchange": 48, "timestamp": 1605557756000 }, "request_id": "a73a29dbcab4613eeaf48583d3baacf0", "status": "success", "symbol": "AUD/USD" } ``` --- # REST ## Forex ### Quotes **Endpoint:** `GET /v3/quotes/{fxTicker}` **Description:** Retrieve historical Best Bid and Offer (BBO) quotes for a specified forex currency pair over a defined time range. Each record includes bid/ask prices, exchange identifiers, and timestamps, capturing the prevailing top-of-book prices at each moment. By examining this data, users can analyze currency price movements, assess market liquidity, and refine forex trading or research strategies. Use Cases: Historical quote analysis, liquidity assessment, algorithmic backtesting, strategy refinement. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `fxTicker` | string | Yes | The ticker symbol to get quotes for. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a nanosecond timestamp. | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 1000 and max is 50000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].ask_exchange` | integer | The ask exchange ID | | `results[].ask_price` | number | The ask price. | | `results[].bid_exchange` | integer | The bid exchange ID | | `results[].bid_price` | number | The bid price. | | `results[].participant_timestamp` | integer | The nanosecond Exchange Unix Timestamp. This is the timestamp of when the quote was generated at the exchange. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v3/quotes/C:EUR-USD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "ask_exchange": 48, "ask_price": 1.18565, "bid_exchange": 48, "bid_price": 1.18558, "participant_timestamp": 1625097600000000000 }, { "ask_exchange": 48, "ask_price": 1.18565, "bid_exchange": 48, "bid_price": 1.18559, "participant_timestamp": 1625097600000000000 } ], "status": "OK" } ``` --- # REST ## Forex ### Full Market Snapshot **Endpoint:** `GET /v2/snapshot/locale/global/markets/forex/tickers` **Description:** Retrieve a comprehensive snapshot of the forex market in a single response. This endpoint consolidates key information like pricing, volume, and quote activity to provide a full-market-snapshot view, eliminating the need for multiple queries. Snapshot data is cleared daily at 12:00 AM EST and begins to repopulate as exchanges report new data, which can start as early as 4:00 AM EST. By accessing all tickers at once, users can efficiently monitor broad market conditions, perform bulk analyses, and power applications that require complete, current market information. Use Cases: Market overview, bulk data processing, heat maps/dashboards, automated monitoring. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `tickers` | array | No | A case-sensitive comma separated list of tickers to get snapshots for. For example, C:EURUSD, C:GBPCAD, and C:AUDINR. Empty string defaults to querying all tickers. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `status` | string | The status of this request's response. | | `tickers` | array[object] | An array of snapshot data for the specified tickers. | | `tickers[].day` | object | The most recent daily bar for this ticker. | | `tickers[].fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `tickers[].lastQuote` | object | The most recent quote for this ticker. | | `tickers[].min` | object | The most recent minute bar for this ticker. | | `tickers[].prevDay` | object | The previous day's bar for this ticker. | | `tickers[].ticker` | string | The exchange symbol that this item is traded under. | | `tickers[].todaysChange` | number | The value of the change from the previous day. | | `tickers[].todaysChangePerc` | number | The percentage change since the previous day. | | `tickers[].updated` | integer | The last updated timestamp. | ## Sample Response ```json { "status": "OK", "tickers": [ { "day": { "c": 0.11778221, "h": 0.11812263, "l": 0.11766631, "o": 0.11797149, "v": 77794 }, "lastQuote": { "a": 0.11780678, "b": 0.11777952, "t": 1605280919000, "x": 48 }, "min": { "c": 0.117769, "h": 0.11779633, "l": 0.11773698, "n": 1, "o": 0.11778, "t": 1684422000000, "v": 202 }, "prevDay": { "c": 0.11797258, "h": 0.11797258, "l": 0.11797149, "o": 0.11797149, "v": 2, "vw": 0 }, "ticker": "C:HKDCHF", "todaysChange": -0.00019306, "todaysChangePerc": -0.1636482, "updated": 1605280919000 } ] } ``` --- # REST ## Forex ### Single Ticker Snapshot **Endpoint:** `GET /v2/snapshot/locale/global/markets/forex/tickers/{ticker}` **Description:** Retrieve the most recent market data snapshot for a single ticker. This endpoint consolidates the latest quote and aggregated data (minute, day, and previous day) for the specified ticker. Snapshot data is cleared at 12:00 AM EST and begins updating as exchanges report new information. By focusing on a single ticker, users can closely monitor real-time developments and incorporate up-to-date information into trading strategies, alerts, or currency-level reporting. Use Cases: Focused monitoring, real-time analysis, price alerts, investor relations. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | The forex ticker. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `status` | string | The status of this request's response. | | `request_id` | string | A request id assigned by the server. | | `ticker` | object | Contains the requested snapshot data for the specified ticker. | | `ticker.day` | object | The most recent daily bar for this ticker. | | `ticker.fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `ticker.lastQuote` | object | The most recent quote for this ticker. | | `ticker.min` | object | The most recent minute bar for this ticker. | | `ticker.prevDay` | object | The previous day's bar for this ticker. | | `ticker.ticker` | string | The exchange symbol that this item is traded under. | | `ticker.todaysChange` | number | The value of the change from the previous day. | | `ticker.todaysChangePerc` | number | The percentage change since the previous day. | | `ticker.updated` | integer | The last updated timestamp. | ## Sample Response ```json { "request_id": "ad76e76ce183002c5937a7f02dfebde4", "status": "OK", "ticker": { "day": { "c": 1.18403, "h": 1.1906, "l": 1.18001, "o": 1.18725, "v": 83578 }, "lastQuote": { "a": 1.18403, "b": 1.18398, "i": 0, "t": 1606163759000, "x": 48 }, "min": { "c": 1.18396, "h": 1.18423, "l": 1.1838, "n": 85, "o": 1.18404, "t": 1684422000000, "v": 41 }, "prevDay": { "c": 1.18724, "h": 1.18727, "l": 1.18725, "o": 1.18725, "v": 5, "vw": 0 }, "ticker": "C:EURUSD", "todaysChange": -0.00316, "todaysChangePerc": -0.27458312, "updated": 1606163759000 } } ``` --- # REST ## Forex ### Top Market Movers **Endpoint:** `GET /v2/snapshot/locale/global/markets/forex/{direction}` **Description:** Retrieve snapshot data highlighting the top 20 gainers or losers in the forex market. Gainers are stocks with the largest percentage increase since the previous day’s close, and losers are those with the largest percentage decrease. Snapshot data is cleared daily at 12:00 AM EST and begins repopulating as exchanges report new information. By focusing on these market movers, users can quickly identify significant price shifts and monitor evolving market dynamics. Use Cases: Market movers identification, trading strategies, market sentiment analysis, portfolio adjustments. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `direction` | string | Yes | The direction of the snapshot results to return. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `status` | string | The status of this request's response. | | `tickers` | array[object] | An array of snapshot data for the specified tickers. | | `tickers[].day` | object | The most recent daily bar for this ticker. | | `tickers[].fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `tickers[].lastQuote` | object | The most recent quote for this ticker. | | `tickers[].min` | object | The most recent minute bar for this ticker. | | `tickers[].prevDay` | object | The previous day's bar for this ticker. | | `tickers[].ticker` | string | The exchange symbol that this item is traded under. | | `tickers[].todaysChange` | number | The value of the change from the previous day. | | `tickers[].todaysChangePerc` | number | The percentage change since the previous day. | | `tickers[].updated` | integer | The last updated timestamp. | ## Sample Response ```json { "status": "OK", "tickers": [ { "day": { "c": 0.886156, "h": 0.887111, "l": 0.8825327, "o": 0.8844732, "v": 1041 }, "lastQuote": { "a": 0.8879606, "b": 0.886156, "t": 1605283204000, "x": 48 }, "min": { "c": 0.886156, "h": 0.886156, "l": 0.886156, "n": 1, "o": 0.886156, "t": 1684422000000, "v": 1 }, "prevDay": { "c": 0.8428527, "h": 0.889773, "l": 0.8428527, "o": 0.8848539, "v": 1078, "vw": 0 }, "ticker": "C:PLNILS", "todaysChange": 0.0433033, "todaysChangePerc": 5.13770674, "updated": 1605330008999 } ] } ``` --- # REST ## Forex ### Unified Snapshot **Endpoint:** `GET /v3/snapshot` **Description:** Retrieve unified snapshots of market data for multiple asset classes including stocks, options, forex, and cryptocurrencies in a single request. This endpoint consolidates key metrics such as last trade, last quote, open, high, low, close, and volume for a comprehensive view of current market conditions. By aggregating data from various sources into one response, users can efficiently monitor, compare, and act on information spanning multiple markets and asset types. Use Cases: Cross-market analysis, diversified portfolio monitoring, global market insights, multi-asset trading strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Search a range of tickers lexicographically. | | `type` | string | No | Query by the type of asset. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `ticker.any_of` | string | No | Comma separated list of tickers, up to a maximum of 250. If no tickers are passed then all results will be returned in a paginated manner. Warning: The maximum number of characters allowed in a URL are subject to your technology stack. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 250. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].error` | string | The error while looking for this ticker. | | `results[].fmv` | number | Fair Market Value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `results[].fmv_last_updated` | integer | If Fair Market Value (FMV) is available, this field is the nanosecond timestamp of the last FMV calculation. | | `results[].last_minute` | object | The most recent minute aggregate for this stock. | | `results[].last_quote` | object | The most recent quote for this contract. This is only returned if your current plan includes quotes. | | `results[].market_status` | string | The market status for the market that trades this ticker. Possible values for stocks, options, crypto, and forex snapshots are open, closed, early_trading, or late_trading. Possible values for indices snapshots are regular_trading, closed, early_trading, and late_trading. | | `results[].message` | string | The error message while looking for this ticker. | | `results[].name` | string | The name of this contract. | | `results[].session` | object | Comprehensive trading session metrics, detailing price changes, trading volume, and key price points (open, close, high, low) for the asset within the current trading day. Includes specific changes during early, regular, and late trading periods to enable detailed performance analysis and trend tracking. | | `results[].ticker` | string | The ticker symbol for the asset. | | `results[].type` | enum: stocks, options, fx, crypto, indices | The asset class for this ticker. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "abc123", "results": [ { "break_even_price": 171.075, "details": { "contract_type": "call", "exercise_style": "american", "expiration_date": "2022-10-14", "shares_per_contract": 100, "strike_price": 5, "underlying_ticker": "NCLH" }, "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "greeks": { "delta": 0.5520187372272933, "gamma": 0.00706756515659829, "theta": -0.018532772783847958, "vega": 0.7274811132998142 }, "implied_volatility": 0.3048997097864957, "last_quote": { "ask": 21.25, "ask_exchange": 12, "ask_size": 110, "bid": 20.9, "bid_exchange": 10, "bid_size": 172, "last_updated": 1636573458756383500, "midpoint": 21.075, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "exchange": 316, "price": 0.05, "sip_timestamp": 1675280958783136800, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "NCLH $5 Call", "open_interest": 8921, "session": { "change": -0.05, "change_percent": -1.07, "close": 6.65, "decimal_volume": "67.0", "early_trading_change": -0.01, "early_trading_change_percent": -0.03, "high": 7.01, "late_trading_change": -0.4, "late_trading_change_percent": -0.02, "low": 5.42, "open": 6.7, "previous_close": 6.71, "regular_trading_change": -0.6, "regular_trading_change_percent": -0.5, "volume": 67 }, "ticker": "O:NCLH221014C00005000", "type": "options", "underlying_asset": { "change_to_break_even": 23.123999999999995, "last_updated": 1636573459862384600, "price": 147.951, "ticker": "AAPL", "timeframe": "REAL-TIME" } }, { "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "last_minute": { "close": 412.05, "decimal_volume": "610.0", "high": 412.1, "low": 412.05, "open": 412.1, "transactions": 26, "volume": 610, "vwap": 412.0881 }, "last_quote": { "ask": 21.25, "ask_exchange": 300, "ask_size": 110, "bid": 20.9, "bid_exchange": 323, "bid_size": 172, "last_updated": 1636573458756383500, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "decimal_size": "2.0", "exchange": 316, "id": "4064", "last_updated": 1675280958783136800, "price": 0.05, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "Apple Inc.", "session": { "change": -1.05, "change_percent": -4.67, "close": 21.4, "decimal_volume": "37.0", "early_trading_change": -0.39, "early_trading_change_percent": -0.07, "high": 22.49, "late_trading_change": 1.2, "late_trading_change_percent": 3.92, "low": 21.35, "open": 22.49, "previous_close": 22.45, "volume": 37 }, "ticker": "AAPL", "type": "stocks" }, { "error": "NOT_FOUND", "message": "Ticker not found.", "ticker": "TSLAAPL" } ], "status": "OK" } ``` --- # REST ## Forex ### Exponential Moving Average (EMA) **Endpoint:** `GET /v1/indicators/ema/{fxTicker}` **Description:** Retrieve the Exponential Moving Average (EMA) for a specified ticker over a defined time range. The EMA places greater weight on recent prices, enabling quicker trend detection and more responsive signals. Use Cases: Trend identification, EMA crossover signals, dynamic support/resistance levels, and adjusting strategies based on recent market volatility. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `fxTicker` | string | Yes | The ticker symbol for which to get exponential moving average (EMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the exponential moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the exponential moving average (EMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the exponential moving average. i.e. 'close' will result in using close prices to calculate the exponential moving average (EMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the EMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/ema/C:USDAUD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/C:USDAUD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Forex ### Moving Average Convergence/Divergence (MACD) **Endpoint:** `GET /v1/indicators/macd/{fxTicker}` **Description:** Retrieve the Moving Average Convergence/Divergence (MACD) for a specified ticker over a defined time range. MACD is a momentum indicator derived from two moving averages, helping to identify trend strength, direction, and potential trading signals. Use Cases: Momentum analysis, signal generation (crossover events), spotting overbought/oversold conditions, and confirming trend directions. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `fxTicker` | string | Yes | The ticker symbol for which to get MACD data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the MACD are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `short_window` | integer | No | The short window size used to calculate MACD data. | | `long_window` | integer | No | The long window size used to calculate MACD data. | | `signal_window` | integer | No | The window size used to calculate the MACD signal line. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the MACD. i.e. 'close' will result in using close prices to calculate the MACD. | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the MACD indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Each entry in the values array represents MACD indicator data for a specific timestamp and includes: | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/macd/C:USDAUD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/C:USDAUD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "histogram": 38.3801666667, "signal": 106.9811666667, "timestamp": 1517562000016, "value": 145.3613333333 }, { "histogram": 41.098859136, "signal": 102.7386283473, "timestamp": 1517562001016, "value": 143.8374874833 } ] }, "status": "OK" } ``` --- # REST ## Forex ### Relative Strength Index (RSI) **Endpoint:** `GET /v1/indicators/rsi/{fxTicker}` **Description:** Retrieve the Relative Strength Index (RSI) for a specified ticker over a defined time range. The RSI measures the speed and magnitude of price changes, oscillating between 0 and 100 to help identify overbought or oversold conditions. Use Cases: Overbought/oversold detection, divergence analysis, trend confirmation, and refining market entry/exit strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `fxTicker` | string | Yes | The ticker symbol for which to get relative strength index (RSI) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the relative strength index are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the relative strength index (RSI). | | `series_type` | string | No | The price in the aggregate which will be used to calculate the relative strength index. i.e. 'close' will result in using close prices to calculate the relative strength index (RSI). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the RSI indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/rsi/C:USDAUD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/C:USDAUD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 82.19 } ] }, "status": "OK" } ``` --- # REST ## Forex ### Simple Moving Average (SMA) **Endpoint:** `GET /v1/indicators/sma/{fxTicker}` **Description:** Retrieve the Simple Moving Average (SMA) for a specified ticker over a defined time range. The SMA calculates the average price across a set number of periods, smoothing price fluctuations to reveal underlying trends and potential signals. Use Cases: Trend analysis, trading signal generation (e.g., SMA crossovers), identifying support/resistance, and refining entry/exit timing. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `fxTicker` | string | Yes | The ticker symbol for which to get simple moving average (SMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the simple moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the simple moving average (SMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the simple moving average. i.e. 'close' will result in using close prices to calculate the simple moving average (SMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the SMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/sma/C:USDAUD?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "aggregates": [ { "c": 75.0875, "h": 75.15, "l": 73.7975, "n": 1, "o": 74.06, "t": 1577941200000, "v": 135647456, "vw": 74.6099 }, { "c": 74.3575, "h": 75.145, "l": 74.125, "n": 1, "o": 74.2875, "t": 1578027600000, "v": 146535512, "vw": 74.7026 } ], "url": "https://api.massive.com/v2/aggs/ticker/C:USDAUD/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Forex ### All Tickers **Endpoint:** `GET /v3/reference/tickers` **Description:** Retrieve a comprehensive list of ticker symbols supported by Massive across various asset classes (e.g., stocks, indices, forex, crypto). Each ticker entry provides essential details such as symbol, name, market, currency, and active status. Use Cases: Asset discovery, data integration, filtering/selection, and application development. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a ticker symbol. Defaults to empty string which queries all tickers. | | `type` | string | No | Specify the type of the tickers. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). Defaults to empty string which queries all types. | | `market` | string | No | Filter by market type. By default all markets are included. | | `exchange` | string | No | Specify the asset's primary exchange Market Identifier Code (MIC) according to [ISO 10383](https://www.iso20022.org/market-identifier-codes). Defaults to empty string which queries all exchanges. | | `cusip` | string | No | Specify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes [at their website](https://www.cusip.com/identifiers.html#/CUSIP). Defaults to empty string which queries all CUSIPs. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `cik` | string | No | Specify the CIK of the asset you want to search for. Find more information about CIK codes [at their website](https://www.sec.gov/edgar/searchedgar/cik.htm). Defaults to empty string which queries all CIKs. | | `date` | string | No | Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date. | | `search` | string | No | Search for terms within the ticker and/or company name. | | `active` | boolean | No | Specify if the tickers returned should be actively traded on the queried date. Default is true. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 100 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of tickers that match your query. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `results[].active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results[].base_currency_name` | string | The name of the currency that this asset is priced against. | | `results[].base_currency_symbol` | string | The ISO 4217 code of the currency that this asset is priced against. | | `results[].cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results[].composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].currency_name` | string | The name of the currency that this asset is traded with. | | `results[].currency_symbol` | string | The ISO 4217 code of the currency that this asset is traded with. | | `results[].delisted_utc` | string | The last date that the asset was traded. | | `results[].last_updated_utc` | string | The information is accurate up to this time. | | `results[].locale` | enum: us, global | The locale of the asset. | | `results[].market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results[].name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results[].primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results[].share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].ticker` | string | The exchange symbol that this item is traded under. | | `results[].type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `status` | string | The status of this request's response. | ## Sample Response ```json { "count": 1, "next_url": "https://api.massive.com/v3/reference/tickers?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "e70013d92930de90e089dc8fa098888e", "results": [ { "active": true, "cik": "0001090872", "composite_figi": "BBG000BWQYZ5", "currency_name": "usd", "last_updated_utc": "2021-04-25T00:00:00Z", "locale": "us", "market": "stocks", "name": "Agilent Technologies Inc.", "primary_exchange": "XNYS", "share_class_figi": "BBG001SCTQY4", "ticker": "A", "type": "CS" } ], "status": "OK" } ``` --- # REST ## Forex ### Ticker Overview **Endpoint:** `GET /v3/reference/tickers/{ticker}` **Description:** Retrieve comprehensive details for a single ticker supported by Massive that is active as-of a given date. This endpoint offers a deep look into a company’s fundamental attributes, including its primary exchange, standardized identifiers (CIK, composite FIGI, share class FIGI), market capitalization, industry classification, and key dates. Users also gain access to branding assets (e.g., logos, icons), enabling them to enrich applications and analyses with visually consistent, contextually relevant information. For information on delisted tickers, use the [All Tickers](/docs/rest/forex/tickers/all-tickers) endpoint with `active=false`. Use Cases: Company research, data integration, application enhancement, due diligence & compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `date` | string | No | Specify a point in time to get information about the ticker available on that date. When retrieving information from SEC filings, we compare this date with the period of report date on the SEC filing. For example, consider an SEC filing submitted by AAPL on 2019-07-31, with a period of report date ending on 2019-06-29. That means that the filing was submitted on 2019-07-31, but the filing was created based on information from 2019-06-29. If you were to query for AAPL details on 2019-06-29, the ticker details would include information from the SEC filing. Defaults to the most recent available date. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request id assigned by the server. | | `results` | object | Ticker with details. | | `results.active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results.address` | object | Company headquarters address details. | | `results.branding` | object | Provides URLs aiding in visual identification. | | `results.cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results.composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.currency_name` | string | The name of the currency that this asset is traded with. | | `results.delisted_utc` | string | The last date that the asset was traded. | | `results.description` | string | A description of the company and what they do/offer. | | `results.homepage_url` | string | The URL of the company's website homepage. | | `results.list_date` | string | The date that the symbol was first publicly listed in the format YYYY-MM-DD. | | `results.locale` | enum: us, global | The locale of the asset. | | `results.market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results.market_cap` | number | The most recent close price of the ticker multiplied by weighted outstanding shares. | | `results.name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results.phone_number` | string | The phone number for the company behind this ticker. | | `results.primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results.round_lot` | number | Round lot size of this security. | | `results.share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.share_class_shares_outstanding` | number | The recorded number of outstanding shares for this particular share class. | | `results.sic_code` | string | The standard industrial classification code for this ticker. For a list of SIC Codes, see the SEC's SIC Code List. | | `results.sic_description` | string | A description of this ticker's SIC code. | | `results.ticker` | string | The exchange symbol that this item is traded under. | | `results.ticker_root` | string | The root of a specified ticker. For example, the root of BRK.A is BRK. | | `results.ticker_suffix` | string | The suffix of a specified ticker. For example, the suffix of BRK.A is A. | | `results.total_employees` | number | The approximate number of employees for the company. | | `results.type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `results.weighted_shares_outstanding` | number | The shares outstanding calculated assuming all shares of other share classes are converted to this share class. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "31d59dda-80e5-4721-8496-d0d32a654afe", "results": { "active": true, "address": { "address1": "One Apple Park Way", "city": "Cupertino", "postal_code": "95014", "state": "CA" }, "branding": { "icon_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_icon.png", "logo_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_logo.svg" }, "cik": "0000320193", "composite_figi": "BBG000B9XRY4", "currency_name": "usd", "description": "Apple designs a wide variety of consumer electronic devices, including smartphones (iPhone), tablets (iPad), PCs (Mac), smartwatches (Apple Watch), AirPods, and TV boxes (Apple TV), among others. The iPhone makes up the majority of Apple's total revenue. In addition, Apple offers its customers a variety of services such as Apple Music, iCloud, Apple Care, Apple TV+, Apple Arcade, Apple Card, and Apple Pay, among others. Apple's products run internally developed software and semiconductors, and the firm is well known for its integration of hardware, software and services. Apple's products are distributed online as well as through company-owned stores and third-party retailers. The company generates roughly 40% of its revenue from the Americas, with the remainder earned internationally.", "homepage_url": "https://www.apple.com", "list_date": "1980-12-12", "locale": "us", "market": "stocks", "market_cap": 2771126040150, "name": "Apple Inc.", "phone_number": "(408) 996-1010", "primary_exchange": "XNAS", "round_lot": 100, "share_class_figi": "BBG001S5N8V8", "share_class_shares_outstanding": 16406400000, "sic_code": "3571", "sic_description": "ELECTRONIC COMPUTERS", "ticker": "AAPL", "ticker_root": "AAPL", "total_employees": 154000, "type": "CS", "weighted_shares_outstanding": 16334371000 }, "status": "OK" } ``` --- ## Futures # REST ## Futures ### Aggregate Bars (OHLC) **Endpoint:** `GET /futures/vX/aggs/{ticker}` **Description:** Retrieve aggregated historical OHLC (Open, High, Low, Close) and volume data for a specified futures contract ticker over a custom date range and time interval in Central Time (CT). Aggregates are constructed from all trades during the period. If no trades occur within a given timeframe, no aggregate bar is produced, indicating a period of inactivity. Users can tailor their data by adjusting the multiplier and timespan parameters (e.g., a 5-minute bar), supporting a wide range of analytical and visualization needs. Use Cases: Market monitoring, technical analysis, backtesting, trading strategy development. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | The futures contract identifier, including the base symbol and contract expiration (e.g., GCJ5 for the April 2025 gold contract). | | `resolution` | string | No | The size of each aggregate candle, specified as a number followed by a unit: `sec`, `min`, `hour`, `session`, `week`, `month`, `quarter`, or `year`. Each unit has a maximum multiplier. For instance, minute candles go up to `59min` — after that, use `1hour`. Requesting an unsupported size returns a `400 Bad Request`. | | `window_start` | string | No | Filter by the start time of each candle. Accepts a `YYYY-MM-DD` date or a nanosecond Unix timestamp. The value is snapped to the start of the matching candle interval. When omitted, the API returns the most recent candles up to `limit`. Use comparison suffixes to query a range: - `window_start.gte` — greater than or equal to - `window_start.gt` — greater than - `window_start.lte` — less than or equal to - `window_start.lt` — less than **Examples** - Most recent minute candles: `/vX/aggs/ESU5?resolution=1min&limit=5` - Single daily candle: `/vX/aggs/ESU5?resolution=1session&window_start=2025-08-05` - Date range: `/vX/aggs/ESU5?resolution=1session&window_start.gte=2025-07-01&window_start.lte=2025-07-31` - After a timestamp: `/vX/aggs/ESU5?resolution=1sec&window_start.gt=1751409877000000000&limit=1000` | | `limit` | integer | No | The number of results to return per page (default=1000, maximum=50000, minimum=1). | | `window_start.gte` | string | No | Range by window_start. | | `window_start.gt` | string | No | Range by window_start. | | `window_start.lte` | string | No | Range by window_start. | | `window_start.lt` | string | No | Range by window_start. | | `sort` | string | No | Sort results by field and direction using dotted notation (e.g., 'ticker.asc', 'name.desc'). | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, the URL to the next page of results. | | `results` | array[object] | N/A | | `results[].close` | number | The last price within the timeframe. | | `results[].dollar_volume` | number | The total dollar volume of the transactions that occurred within the timeframe. | | `results[].high` | number | The highest price within the timeframe. | | `results[].low` | number | The lowest price within the timeframe. | | `results[].open` | number | The opening price within the timeframe. | | `results[].session_end_date` | string | Also known as the trading date, the date of the end of the trading session, in YYYY-MM-DD format. | | `results[].settlement_price` | number | The price the contract would have cost to settle for this session. | | `results[].ticker` | string | The ticker for the contract. | | `results[].transactions` | integer | The number of transactions that occurred within the timeframe. | | `results[].volume` | integer | The number of contracts that traded within the timeframe. | | `results[].window_start` | integer | The timestamp of the beginning of the candlestick’s aggregation window. | | `status` | string | The status of the response. | ## Sample Response ```json { "request_id": "b452e45b7eaad14151c3e1ce5129b558", "results": [ { "close": 2874.2, "dollar_volume": 380560636.01, "high": 2877.1, "low": 2837.4, "open": 2849.8, "session_end_date": "2025-02-04", "settlement_price": 2875.8, "ticker": "GCJ5", "transactions": 74223, "volume": 133072, "window_start": 1738627200000000000 }, { "close": 2884.8, "dollar_volume": 448429944.1, "high": 2906, "low": 2870.1, "open": 2873.7, "session_end_date": "2025-02-05", "settlement_price": 2893, "ticker": "GCJ5", "transactions": 83673, "volume": 155170, "window_start": 1738713600000000000 } ], "status": "OK" } ``` --- # REST ## Futures ### Contracts **Endpoint:** `GET /futures/vX/contracts` **Description:** The Contracts API provides a single source for discovering all listed futures contracts and retrieving complete contract specifications. You can query the full contract index with filters for product code, trade dates, active status, and date, returning key attributes such as ticker, first and last trade dates, days to maturity, exchange code, and order quantity limits in paginated form. The same API also returns the full specification for a single contract, including settlement dates, tick sizes, and other trading and risk related fields. Point-in-time lookups allow you to reconstruct the exact contract definition that applied on any given day. Use Cases: Historical research, trading system integration, portfolio workflows, risk management. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | A date string in the format YYYY-MM-DD. This parameter will return point-in-time information about contracts for the specified day. Value must be formatted 'yyyy-mm-dd'. | | `date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `product_code` | string | No | The identifier for the contract's product. | | `product_code.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `product_code.gt` | string | No | Filter greater than the value. | | `product_code.gte` | string | No | Filter greater than or equal to the value. | | `product_code.lt` | string | No | Filter less than the value. | | `product_code.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | The ticker for the contract. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `active` | boolean | No | Whether or not a given contract was tradeable at the given point in time. Active is true when (first_trade_date <= date >= last_trade_date) and false otherwise. | | `type` | string | No | The type of contract, one of 'single' or 'combo'. Leaving this filter blank will query for contracts where type is 'single', 'combo' or empty. This field only exists on contracts as of 2025-03-12 and later. It will be null when date < 2025-03-12. | | `type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `first_trade_date` | string | No | The first day on which the contract was tradeable. Value must be formatted 'yyyy-mm-dd'. | | `first_trade_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `first_trade_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `first_trade_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `first_trade_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `last_trade_date` | string | No | The last day on which the contract was tradeable. Value must be formatted 'yyyy-mm-dd'. | | `last_trade_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `last_trade_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `last_trade_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `last_trade_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'product_code' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].active` | boolean | Whether or not a given contract was tradeable at the given point in time. Active is true when (first_trade_date <= date >= last_trade_date) and false otherwise. | | `results[].date` | string | A date string in the format YYYY-MM-DD. This parameter will return point-in-time information about contracts for the specified day. | | `results[].days_to_maturity` | integer | The number of calendar days between the 'date' and the contract's final settlement date. | | `results[].first_trade_date` | string | The first day on which the contract was tradeable. | | `results[].group_code` | string | An identifier used to identify logical groups of products. The group_code is only populated for contracts listed for trading on CME Globex. | | `results[].last_trade_date` | string | The last day on which the contract was tradeable. | | `results[].max_order_quantity` | integer | The maximum order quantity. | | `results[].min_order_quantity` | integer | The minimum order quantity. | | `results[].name` | string | The name of this contract. | | `results[].product_code` | string | The identifier for the contract's product. | | `results[].settlement_date` | string | The date on which this contract settles. | | `results[].settlement_tick_size` | number | The tick size for settlement. | | `results[].spread_tick_size` | number | The tick size for spreads. | | `results[].ticker` | string | The ticker for the contract. | | `results[].trade_tick_size` | number | The tick size for trades. | | `results[].trading_venue` | string | The trading venue (MIC) for the exchange on which this contract trades. | | `results[].type` | string | The type of contract, one of 'single' or 'combo'. Leaving this filter blank will query for contracts where type is 'single', 'combo' or empty. This field only exists on contracts as of 2025-03-12 and later. It will be null when date < 2025-03-12. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/futures/vX/contracts?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "000a000a0a0a000a0a0aa00a0a0000a0", "results": [ { "active": true, "date": "2025-02-26", "days_to_maturity": 138, "first_trade_date": "2025-01-15", "group_code": "CN", "last_trade_date": "2025-07-14", "max_order_quantity": 1999, "min_order_quantity": 1, "name": "00CN5 Future", "product_code": "00C", "settlement_date": "2025-07-14", "settlement_tick_size": 0.0025, "spread_tick_size": 0.0025, "ticker": "00CN5", "trade_tick_size": 0.0025, "trading_venue": "XCBT", "type": "single" } ], "status": "OK" } ``` --- # REST ## Futures ### Exchanges **Endpoint:** `GET /futures/vX/exchanges` **Description:** Retrieve a list of supported futures exchanges, including their unique exchange codes, names, and other important details. Use Cases: Exchange reference, market analysis, and compliance checks. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '999'. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].acronym` | string | Well-known acronym for the exchange (e.g., 'CME', 'NYMEX', 'CBOT', 'COMEX'). | | `results[].id` | string | Numeric identifier for the futures exchange or trading venue. | | `results[].locale` | string | Geographic location code where the exchange operates. | | `results[].mic` | string | Market Identifier Code (MIC) - ISO 10383 standard four-character code for the futures market. | | `results[].name` | string | Full official name of the futures exchange (e.g., 'Chicago Mercantile Exchange', 'New York Mercantile Exchange'). | | `results[].operating_mic` | string | Operating Market Identifier Code for the futures exchange. | | `results[].type` | string | Type of venue - 'exchange' for futures exchanges and derivatives trading platforms. | | `results[].url` | string | Official website URL of the futures exchange organization. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "acronym": "CME", "id": "4", "locale": "US", "mic": "XCME", "name": "Chicago Mercantile Exchange", "operating_mic": "XCME", "type": "exchange", "url": "https://cmegroup.com" } ], "status": "OK" } ``` --- # REST ## Futures ### Market Status **Endpoint:** `GET /futures/vX/market-status` **Description:** Retrieve the current market status for a specific product or products. This endpoint returns real-time indicators, such as open, pause, close, for futures products, along with the corresponding exchange and product codes and an evaluation timestamp. This information enables users to monitor operational conditions and adjust their trading strategies accordingly. Use Cases: Real-time monitoring, algorithm scheduling, UI updates, operational planning. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `product_code` | string | No | The product code of the futures contracts for which you want statuses. | | `product_code.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `product_code.gt` | string | No | Filter greater than the value. | | `product_code.gte` | string | No | Filter greater than or equal to the value. | | `product_code.lt` | string | No | Filter less than the value. | | `product_code.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '99'. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].market_event` | string | The current status of the market for the product. | | `results[].name` | string | The name of the futures product. | | `results[].product_code` | string | The product code of the futures contracts for which you want statuses. | | `results[].session_end_date` | string | The trading date for the current session. | | `results[].timestamp` | string | The timestamp for the given market event. | | `results[].trading_venue` | string | The trading venue (MIC) for the exchange on which the corresponding product trades. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": "445ebfcfe5bb4b688b7971e1600c952d", "results": [ { "market_event": "open", "name": "ERCOT North 345 kV Hub Day-Ahead 5 MW Off-Peak Futures", "product_code": "ERL", "session_end_date": "2025-12-05", "timestamp": "2025-12-04T23:00:00+00:00", "trading_venue": "XNYM" } ], "status": "OK" } ``` --- # REST ## Futures ### Products **Endpoint:** `GET /futures/vX/products` **Description:** The Products API is a unified source for discovering all supported futures products and retrieving full product specifications. It returns the complete product universe with product codes, names, exchange identifiers, sector and asset class classifications, product type, settlement method, and pricing and quotation details. You can filter by name, exchange, sector, asset class, product type, or date to capture the product set or product definition that existed at a specific point in time. It also retrieves the full specification for a single product, supporting accurate system configuration, analytics, trading workflows, and historical reconciliation. Use Cases: Product specification, historical product checks, risk management, trading system integration. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | No | The full name of the product. | | `name.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `name.gt` | string | No | Filter greater than the value. | | `name.gte` | string | No | Filter greater than or equal to the value. | | `name.lt` | string | No | Filter less than the value. | | `name.lte` | string | No | Filter less than or equal to the value. | | `product_code` | string | No | The identifier for the product. | | `product_code.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `product_code.gt` | string | No | Filter greater than the value. | | `product_code.gte` | string | No | Filter greater than or equal to the value. | | `product_code.lt` | string | No | Filter less than the value. | | `product_code.lte` | string | No | Filter less than or equal to the value. | | `date` | string | No | A date string in the format YYYY-MM-DD. This parameter will return point-in-time information about products for the specified day. Value must be formatted 'yyyy-mm-dd'. | | `date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `trading_venue` | string | No | The trading venue (MIC) for the exchange on which this product's contracts trade. | | `trading_venue.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `trading_venue.gt` | string | No | Filter greater than the value. | | `trading_venue.gte` | string | No | Filter greater than or equal to the value. | | `trading_venue.lt` | string | No | Filter less than the value. | | `trading_venue.lte` | string | No | Filter less than or equal to the value. | | `sector` | string | No | The sector to which the product belongs. | | `sector.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `sub_sector` | string | No | The sub-sector to which the product belongs. | | `sub_sector.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `asset_class` | string | No | The asset class to which the product belongs. | | `asset_class.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `asset_sub_class` | string | No | The asset sub-class to which the product belongs. | | `asset_sub_class.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `type` | string | No | The type of product, one of 'single' or 'combo'. Leaving this filter blank will query for both 'single' and 'combo' types. | | `type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'date' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].asset_class` | string | The asset class to which the product belongs. | | `results[].asset_sub_class` | string | The asset sub-class to which the product belongs. | | `results[].date` | string | A date string in the format YYYY-MM-DD. This parameter will return point-in-time information about products for the specified day. | | `results[].last_updated` | string | The date and time at which this product was last updated. | | `results[].name` | string | The full name of the product. | | `results[].price_quotation` | string | The quoted price for this product. | | `results[].product_code` | string | The identifier for the product. | | `results[].sector` | string | The sector to which the product belongs. | | `results[].settlement_currency_code` | string | The currency in which this product settles. | | `results[].settlement_method` | string | The method of settlement for this product (Financially Settled or Deliverable). | | `results[].settlement_type` | string | The type of settlement for this product. | | `results[].sub_sector` | string | The sub-sector to which the product belongs. | | `results[].trade_currency_code` | string | The currency in which this product's contracts trade. | | `results[].trading_venue` | string | The trading venue (MIC) for the exchange on which this product's contracts trade. | | `results[].type` | string | The type of product, one of 'single' or 'combo'. Leaving this filter blank will query for both 'single' and 'combo' types. | | `results[].unit_of_measure` | string | The unit of measure for this product. | | `results[].unit_of_measure_qty` | number | The quantity of the unit of measure for this product. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/futures/vX/products?cursor=YXA9MTAwJmFzPSZhc19vZj0yMDI1LTA3LTA3JmxpbWl0PTEwMCZzb3J0PW5hbWUuYXNj", "request_id": "000a000a0a0a000a0a0aa00a0a0000a0", "results": [ { "asset_class": "commodity", "asset_sub_class": "energy", "date": "2025-07-07", "last_updated": "2025-02-22", "name": "1% Fuel Oil Barges FOB Rdam (Platts) vs. 1% Fuel Oil Cargoes FOB NWE (Platts) BALMO Futures", "price_quotation": "U.S. dollars and cents per metric ton", "product_code": "EBE", "sector": "refined_products", "settlement_currency_code": "USD", "settlement_method": "financially_settled", "settlement_type": "cash", "sub_sector": "european", "trade_currency_code": "USD", "trading_venue": "XNYM", "type": "single", "unit_of_measure": "MTONS", "unit_of_measure_qty": 1000 } ], "status": "OK" } ``` --- # REST ## Futures ### Schedules **Endpoint:** `GET /futures/vX/schedules` **Description:** The Schedules API provides a unified way to retrieve trading schedules for futures markets, returning precise session open and close times, intraday breaks, and any adjustments for holidays or special events. You can filter schedules by session_end_date or retrieve the schedule for a single product using its product code. All times are returned in Coordinated Universal Time (UTC), making it straightforward to align trading, execution, and operational workflows across systems. Use Cases: Schedule planning, market analysis, strategy alignment, risk and operations management. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `product_code` | string | No | The product code of the futures contract. | | `product_code.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `product_code.gt` | string | No | Filter greater than the value. | | `product_code.gte` | string | No | Filter greater than or equal to the value. | | `product_code.lt` | string | No | Filter less than the value. | | `product_code.lte` | string | No | Filter less than or equal to the value. | | `session_end_date` | string | No | The session end date for the schedules (also known as the trading date). This field is optional and can be used to filter results by a specific session end date. If left blank, schedules for all dates will be returned. Note that trading sessions end at 5 PM Central Time, so a session ending at 5 PM CT on January 1st would have a session_end_date of 2025-01-01. Value must be formatted 'yyyy-mm-dd'. | | `session_end_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `session_end_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `session_end_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `session_end_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `trading_venue` | string | No | The trading venue (MIC) for the exchange on which this schedule's product trades. | | `trading_venue.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `trading_venue.gt` | string | No | Filter greater than the value. | | `trading_venue.gte` | string | No | Filter greater than or equal to the value. | | `trading_venue.lt` | string | No | Filter less than the value. | | `trading_venue.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '1000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'product_code' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].event` | string | The type of session on the given trading date. | | `results[].product_code` | string | The product code of the futures contract. | | `results[].product_name` | string | The name of the futures product to which this schedule applies. | | `results[].session_end_date` | string | The session end date for the schedules (also known as the trading date). This field is optional and can be used to filter results by a specific session end date. If left blank, schedules for all dates will be returned. Note that trading sessions end at 5 PM Central Time, so a session ending at 5 PM CT on January 1st would have a session_end_date of 2025-01-01. | | `results[].timestamp` | string | The timestamp for the given market event. | | `results[].trading_venue` | string | The trading venue (MIC) for the exchange on which this schedule's product trades. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.staging.massive.com/futures/vX/schedules?cursor=AQANA0VSTAIAAAEFAAEBAwACAQ0DRVJMAQ0ZMjAyNC0wNi0xMFQyMTowMDowMCswMDowMA==", "request_id": "a83620d1ec6a4cd5b84ea669e377fd47", "results": [ { "event": "pre_open", "product_code": "ERL", "product_name": "ERCOT North 345 kV Hub Day-Ahead 5 MW Off-Peak Futures", "session_end_date": "2024-06-10", "timestamp": "2024-06-09T21:00:00+00:00", "trading_venue": "XNYM" }, { "event": "open", "product_code": "ERL", "product_name": "ERCOT North 345 kV Hub Day-Ahead 5 MW Off-Peak Futures", "session_end_date": "2024-06-10", "timestamp": "2024-06-09T22:00:00+00:00", "trading_venue": "XNYM" }, { "event": "close", "product_code": "ERL", "product_name": "ERCOT North 345 kV Hub Day-Ahead 5 MW Off-Peak Futures", "session_end_date": "2024-06-10", "timestamp": "2024-06-10T21:00:00+00:00", "trading_venue": "XNYM" } ], "status": "OK" } ``` --- # REST ## Futures ### Futures Contracts Snapshot **Endpoint:** `GET /futures/vX/snapshot` **Description:** Retrieve real-time snapshots for a set of futures contracts, including key market data such as the latest trade, quote, session metrics (open, high, low, close, volume), and settlement prices. This endpoint returns the most up-to-date view of contract activity, filtered by ticker or product code, and supports custom sorting and pagination for efficient data access. Use Cases: Real-time trading systems, intraday market analysis, performance monitoring, and portfolio valuation. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `product_code` | string | No | The code for the contracts' underlying product. | | `product_code.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `product_code.gt` | string | No | Filter greater than the value. | | `product_code.gte` | string | No | Filter greater than or equal to the value. | | `product_code.lt` | string | No | Filter less than the value. | | `product_code.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | The futures contract identifier, including the base symbol and contract expiration (e.g., ESZ24 for the December 2024 S&P 500 E-mini contract). | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].details` | object | N/A | | `results[].last_minute` | object | N/A | | `results[].last_quote` | object | N/A | | `results[].last_trade` | object | N/A | | `results[].session` | object | N/A | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "next_url": "https://api.massive.com/v1/futures/vX/snapshot?cursor=AQANAkNCBVNQ", "request_id": "c4d50f4801874e30b63e674b844cf51f", "results": [ { "details": { "open_interest": 112, "settlement_date": 1753851600000000000 }, "last_minute": { "close": 240.00000000000003, "high": 240.00000000000003, "last_updated": 1746045300000, "low": 240.00000000000003, "open": 240.00000000000003, "volume": 5 }, "last_quote": { "ask": 240.50000000000003, "ask_size": 3, "ask_timestamp": 1746036204386194000, "bid": 239.50000000000003, "bid_size": 2, "bid_timestamp": 1746035747932118000, "last_updated": 1746046798024234200 }, "last_trade": { "last_updated": 1746045242858242600, "price": 240.00000000000003, "size": 5 }, "product_code": "CB", "session": { "change": 21.11, "change_percent": 0.09622134, "close": 240.00000000000003, "high": 241.00000000000003, "low": 240.00000000000003, "open": 240.00000000000003, "previous_settlement": 219.39, "settlement_price": 240.50000000000003, "volume": 55 }, "ticker": "CBN5" } ], "status": "OK" } ``` --- # REST ## Futures ### Quotes **Endpoint:** `GET /futures/vX/quotes/{ticker}` **Description:** Retrieve quote data for a specified futures contract ticker. Each record includes the best bid and offer prices, sizes, and timestamps, reflecting the prevailing quote environment at each moment. This endpoint supports detailed analysis of price dynamics and liquidity conditions to inform trading decisions and market research. Use Cases: Liquidity analysis, price discovery, trading strategy refinement, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | string | No | The time when the quote was generated at the exchange to nanosecond precision. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.gt` | string | No | Filter greater than the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.gte` | string | No | Filter greater than or equal to the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.lt` | string | No | Filter less than the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.lte` | string | No | Filter less than or equal to the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `session_end_date` | string | No | Also known as the trading date, the date of the end of the trading session, in YYYY-MM-DD format. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '49999'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'timestamp' if not specified. The sort order defaults to 'desc' if not specified. | | `ticker` | string | Yes | The futures contract identifier, including the base symbol and contract expiration (e.g., GCJ5 for the April 2025 gold contract). | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].ask_price` | number | The ask price is expressed per unit of the underlying asset, and you apply the contract multiplier to get the full contract value. | | `results[].ask_size` | integer | The quote size represents the number of futures contracts available at the given ask price. | | `results[].ask_timestamp` | integer | The time when the ask price was submitted to the exchange. | | `results[].bid_price` | number | The bid price is expressed per unit of the underlying asset, and you apply the contract multiplier to get the full contract value. | | `results[].bid_size` | integer | The quote size represents the number of futures contracts available at the given bid price. | | `results[].bid_timestamp` | integer | The time when the bid price was submitted to the exchange. | | `results[].channel` | integer | The CME multicast channel this event was sourced from. | | `results[].report_sequence` | integer | The reporting sequence number. | | `results[].sequence_number` | integer | The unique sequence number assigned to this quote by the exchange. | | `results[].session_end_date` | string | Also known as the trading date, the date of the end of the trading session, in YYYY-MM-DD format. | | `results[].ticker` | string | The futures contract identifier, including the base symbol and contract expiration (e.g., GCJ5 for the April 2025 gold contract). | | `results[].timestamp` | integer | The time when the quote was generated at the exchange to nanosecond precision. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/futures/vX/quotes/GCJ5?cursor=YXA9MTczNDQ2MDIzMDcwODEyNjI4MSZhcz0mbGltaXQ9MTAwMCZzZXNzaW9uX2VuZF9kYXRlPTIwMjQtMTItMTcmc29ydD10aW1lc3RhbXAuZGVzYw", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "ask_timestamp": "1734472800076125400,", "bid_price": "2660,", "bid_size": "1,", "bid_timestamp": "1734472800076125400,", "report_sequence": "2250337,", "sequence_number": 15357766, "session_end_date": "2024-12-17,", "ticker": "GCJ5,", "timestamp": "1734472800076125400," }, { "ask_price": "2685.9,", "ask_size": "1,", "ask_timestamp": "1734472755134391800,", "bid_price": "2684.7,", "bid_size": "1,", "bid_timestamp": "1734472736352455200,", "report_sequence": "2249723,", "sequence_number": 15354716, "session_end_date": "2024-12-17,", "ticker": "GCJ5,", "timestamp": "1734472755134391800," } ], "status": "OK" } ``` --- # REST ## Futures ### Trades **Endpoint:** `GET /futures/vX/trades/{ticker}` **Description:** Retrieve comprehensive, tick-level trade data for a specified futures contract ticker over a defined time range. Each record includes the trade price, size, session start date, and precise timestamps, capturing individual trade events throughout the period. This granular data is essential for constructing aggregated bars and performing detailed analyses of intraday price movements, making it a valuable tool for backtesting, algorithmic strategy development, and market research. Use Cases: Intraday analysis, algorithmic trading, backtesting, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | string | No | The time when the trade was generated at the exchange to nanosecond precision. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.gt` | string | No | Filter greater than the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.gte` | string | No | Filter greater than or equal to the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.lt` | string | No | Filter less than the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `timestamp.lte` | string | No | Filter less than or equal to the value. Value must be an integer timestamp in nanoseconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `session_end_date` | string | No | Also known as the trading date, the date of the end of the trading session, in YYYY-MM-DD format. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '49999'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'timestamp' if not specified. The sort order defaults to 'desc' if not specified. | | `ticker` | string | Yes | The futures contract identifier, including the base symbol and contract expiration (e.g., GCJ5 for the April 2025 gold contract). | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].channel` | integer | The CME multicast channel this event was sourced from. | | `results[].price` | number | The price of the trade. This is the actual dollar value per whole contract of this trade. A trade of 100 contracts with a price of $2.00 would be worth a total dollar value of $200.00. | | `results[].report_sequence` | integer | The reporting sequence number. | | `results[].sequence_number` | integer | The unique sequence number assigned to this trade. | | `results[].session_end_date` | string | Also known as the trading date, the date of the end of the trading session, in YYYY-MM-DD format. | | `results[].size` | integer | The total number of contracts exchanged between buyers and sellers on a given trade. | | `results[].ticker` | string | The futures contract identifier, including the base symbol and contract expiration (e.g., GCJ5 for the April 2025 gold contract). | | `results[].timestamp` | integer | The time when the trade was generated at the exchange to nanosecond precision. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/futures/vX/trades/ESZ4?cursor=YXA9MTczNDQ3MDk3MDAwODU5OTI2MSZhcz0yNzIzNTI4MyZsaW1pdD0xMDAwJnNlc3Npb25fZW5kX2RhdGU9MjAyNC0xMi0xNyZzb3J0PXRpbWVzdGFtcC5kZXNj", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "price": 6052, "report_sequence": 12033289, "sequence_number": 27317882, "session_end_date": "2024-12-17", "size": 3, "ticker": "ESZ4", "timestamp": 1734472799000509200 }, { "price": 6051.75, "report_sequence": 12033276, "sequence_number": 27317863, "session_end_date": "2024-12-17", "size": 1, "ticker": "ESZ4", "timestamp": 1734472798789679900 }, { "price": 6052, "report_sequence": 12033255, "sequence_number": 27317826, "session_end_date": "2024-12-17", "size": 2, "ticker": "ESZ4", "timestamp": 1734472797000893000 } ], "status": "OK" } ``` --- ## Indices # REST ## Indices ### Custom Bars (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{indicesTicker}/range/{multiplier}/{timespan}/{from}/{to}` **Description:** Retrieve aggregated historical OHLC (Open, High, Low, Close) and value data for a specified index over a custom date range and time interval in Eastern Time (ET). Unlike stocks or options, these aggregates are derived from index values rather than individual trades, reflecting the performance of a market segment, sector, or benchmark. If no index updates occur within a given timeframe, no aggregate bar is produced, resulting in an empty interval that indicates a period without new index data. Users can customize their view by adjusting the multiplier and timespan parameters (e.g., a 5-minute interval). This approach supports various analytical and visualization needs related to broad market or sector performance. Use Cases: Data visualization, market trend analysis, benchmark comparisons, research and modeling. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `indicesTicker` | string | Yes | The ticker symbol of Index. | | `multiplier` | integer | Yes | The size of the timespan multiplier. | | `timespan` | string | Yes | The size of the time window. | | `from` | string | Yes | The start of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `to` | string | Yes | The end of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `sort` | N/A | No | Sort the results by timestamp. `asc` will return results in ascending order (oldest at the top), `desc` will return results in descending order (newest at the top). | | `limit` | integer | No | Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000. Read more about how limit is used to calculate aggregate results in our article on Aggregate Data API Improvements. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close value for the symbol in the given time period. | | `results[].h` | number | The highest value for the symbol in the given time period. | | `results[].l` | number | The lowest value for the symbol in the given time period. | | `results[].o` | number | The open value for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | ## Sample Response ```json { "count": 2, "queryCount": 2, "request_id": "0cf72b6da685bcd386548ffe2895904a", "results": [ { "c": 11995.88235998666, "h": 12340.44936267155, "l": 11970.34221717375, "o": 12230.83658266843, "t": 1678341600000 }, { "c": 11830.28178808306, "h": 12069.62262033557, "l": 11789.85923449393, "o": 12001.69552583921, "t": 1678428000000 } ], "status": "OK", "ticker": "I:NDX" } ``` --- # REST ## Indices ### Daily Ticker Summary (OHLC) **Endpoint:** `GET /v1/open-close/{indicesTicker}/{date}` **Description:** Retrieve the opening and closing prices for a specific index on a given date, along with any pre-market and after-hours trade prices. This endpoint provides essential daily pricing details, enabling users to evaluate performance, conduct historical analysis, and gain insights into trading activity outside regular market sessions. Use Cases: Daily performance analysis, historical data collection, after-hours insights, portfolio tracking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `indicesTicker` | string | Yes | The ticker symbol of Index. | | `date` | string | Yes | The date of the requested open/close in the format YYYY-MM-DD. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | number | The close value of the ticker symbol in after hours trading. | | `close` | number | The close value for the symbol in the given time period. | | `from` | string | The requested date. | | `high` | number | The highest value for the symbol in the given time period. | | `low` | number | The lowest value for the symbol in the given time period. | | `open` | number | The open value for the symbol in the given time period. | | `preMarket` | integer | The open value of the ticker symbol in pre-market trading. | | `status` | string | The status of this request's response. | | `symbol` | string | The exchange symbol that this item is traded under. | ## Sample Response ```json { "afterHours": 11830.43006295237, "close": 11830.28178808306, "from": "2023-03-10T00:00:00.000Z", "high": 12069.62262033557, "low": 11789.85923449393, "open": 12001.69552583921, "preMarket": 12001.69552583921, "status": "OK", "symbol": "I:NDX" } ``` --- # REST ## Indices ### Previous Day Bar (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{indicesTicker}/prev` **Description:** Retrieve the previous trading day's open, high, low, and close (OHLC) data for a specified index ticker. This endpoint provides key pricing metrics, including volume, to help users assess recent performance and inform trading strategies. Use Cases: Baseline comparison, technical analysis, market research, and daily reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `indicesTicker` | string | Yes | The ticker symbol of Index. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close value for the symbol in the given time period. | | `results[].h` | number | The highest value for the symbol in the given time period. | | `results[].l` | number | The lowest value for the symbol in the given time period. | | `results[].o` | number | The open value for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | ## Sample Response ```json { "queryCount": 1, "request_id": "b2170df985474b6d21a6eeccfb6bee67", "results": [ { "T": "I:NDX", "c": 15070.14948566977, "h": 15127.4195807999, "l": 14946.7243781848, "o": 15036.48391066877, "t": 1687291200000 } ], "resultsCount": 1, "status": "OK", "ticker": "I:NDX" } ``` --- # REST ## Indices ### Market Holidays **Endpoint:** `GET /v1/marketstatus/upcoming` **Description:** Retrieve upcoming market holidays and their corresponding open/close times. This endpoint is forward-looking only, listing future holidays that affect market hours. Use this data to plan ahead for trading activities and system operations. Use Cases: Trading schedule adjustments, integrated holiday calendars, operational planning (e.g., system maintenance), and notifying users about upcoming market closures. ## Response Attributes | Field | Type | Description | | --- | --- | --- | ## Sample Response ```json [ { "date": "2020-11-26", "exchange": "NYSE", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "NASDAQ", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "OTC", "name": "Thanksgiving", "status": "closed" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NASDAQ", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NYSE", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" } ] ``` --- # REST ## Indices ### Market Status **Endpoint:** `GET /v1/marketstatus/now` **Description:** Retrieve the current trading status for various exchanges and overall financial markets. This endpoint provides real-time indicators of whether markets are open, closed, or operating in pre-market/after-hours sessions, along with timing details for the current or upcoming trading periods. Use Cases: Real-time monitoring, algorithm scheduling, UI updates, and operational planning. ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | boolean | Whether or not the market is in post-market hours. | | `currencies` | object | Contains the status of various currency markets. | | `currencies.crypto` | string | The status of the crypto market. | | `currencies.fx` | string | The status of the forex market. | | `earlyHours` | boolean | Whether or not the market is in pre-market hours. | | `exchanges` | object | Contains the status of different US stock exchanges (e.g., Nasdaq, NYSE). | | `exchanges.nasdaq` | string | The status of the Nasdaq market. | | `exchanges.nyse` | string | The status of the NYSE market. | | `exchanges.otc` | string | The status of the OTC market. | | `indicesGroups` | object | Contains the status of various index groups (e.g., MSCI, FTSE Russell). | | `indicesGroups.cccy` | string | The status of Cboe Streaming Market Indices Cryptocurrency ("CCCY") indices trading hours. | | `indicesGroups.cgi` | string | The status of Cboe Global Indices ("CGI") trading hours. | | `indicesGroups.dow_jones` | string | The status of Dow Jones indices trading hours | | `indicesGroups.ftse_russell` | string | The status of Financial Times Stock Exchange Group ("FTSE") Russell indices trading hours. | | `indicesGroups.msci` | string | The status of Morgan Stanley Capital International ("MSCI") indices trading hours. | | `indicesGroups.mstar` | string | The status of Morningstar ("MSTAR") indices trading hours. | | `indicesGroups.mstarc` | string | The status of Morningstar Customer ("MSTARC") indices trading hours. | | `indicesGroups.nasdaq` | string | The status of National Association of Securities Dealers Automated Quotations ("Nasdaq") indices trading hours. | | `indicesGroups.s_and_p` | string | The status of Standard & Poor's ("S&P") indices trading hours. | | `indicesGroups.societe_generale` | string | The status of Societe Generale indices trading hours. | | `market` | string | The status of the market as a whole. | | `serverTime` | string | The current time of the server, returned as a date-time in RFC3339 format. | ## Sample Response ```json { "afterHours": true, "currencies": { "crypto": "open", "fx": "open" }, "earlyHours": false, "exchanges": { "nasdaq": "extended-hours", "nyse": "extended-hours", "otc": "closed" }, "market": "extended-hours", "serverTime": "2020-11-10T17:37:37-05:00" } ``` --- # REST ## Indices ### Indices Snapshot **Endpoint:** `GET /v3/snapshot/indices` **Description:** Retrieve snapshot data for one or more indices, including their current value, recent performance metrics, and trading session details. By consolidating key information for each specified index, this endpoint helps users assess market conditions, track broad economic sentiment, and integrate index-level data into trading or analysis workflows. Use Cases: Market condition assessment, economic sentiment tracking, portfolio context, and integrated index data analysis. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker.any_of` | string | No | Comma separated list of tickers, up to a maximum of 250. If no tickers are passed then all results will be returned in a paginated manner. Warning: The maximum number of characters allowed in a URL are subject to your technology stack. | | `ticker` | string | No | Search a range of tickers lexicographically. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 250. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].error` | string | The error while looking for this ticker. | | `results[].last_updated` | integer | The nanosecond timestamp of when this information was updated. | | `results[].market_status` | string | The market status for the market that trades this ticker. | | `results[].message` | string | The error message while looking for this ticker. | | `results[].name` | string | Name of Index. | | `results[].session` | object | Trading session metrics, detailing change percentages and key price points (open, close, high, low) for the asset within the current trading day. | | `results[].ticker` | string | Ticker of asset queried. | | `results[].timeframe` | enum: DELAYED, REAL-TIME | The time relevance of the data. | | `results[].type` | enum: indices | The indices market. | | `results[].value` | number | Value of Index. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "6a7e466379af0a71039d60cc78e72282", "results": [ { "last_updated": 1679597116344223500, "market_status": "closed", "name": "Dow Jones Industrial Average", "session": { "change": -50.01, "change_percent": -1.45, "close": 3822.39, "high": 3834.41, "low": 38217.11, "open": 3827.38, "previous_close": 3812.19 }, "ticker": "I:DJI", "timeframe": "REAL-TIME", "type": "indices", "value": 3822.39 }, { "error": "NOT_FOUND", "message": "Ticker not found.", "ticker": "APx" }, { "error": "NOT_ENTITLED", "message": "Not entitled to this ticker.", "ticker": "APy" } ], "status": "OK" } ``` --- # REST ## Indices ### Unified Snapshot **Endpoint:** `GET /v3/snapshot` **Description:** Retrieve unified snapshots of market data for multiple asset classes including stocks, options, forex, and cryptocurrencies in a single request. This endpoint consolidates key metrics such as last trade, last quote, open, high, low, close, and volume for a comprehensive view of current market conditions. By aggregating data from various sources into one response, users can efficiently monitor, compare, and act on information spanning multiple markets and asset types. Use Cases: Cross-market analysis, diversified portfolio monitoring, global market insights, multi-asset trading strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Search a range of tickers lexicographically. | | `type` | string | No | Query by the type of asset. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `ticker.any_of` | string | No | Comma separated list of tickers, up to a maximum of 250. If no tickers are passed then all results will be returned in a paginated manner. Warning: The maximum number of characters allowed in a URL are subject to your technology stack. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 250. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].error` | string | The error while looking for this ticker. | | `results[].fmv_last_updated` | integer | If Fair Market Value (FMV) is available, this field is the nanosecond timestamp of the last FMV calculation. | | `results[].last_updated` | integer | The nanosecond timestamp of when this information was updated. | | `results[].market_status` | string | The market status for the market that trades this ticker. Possible values for stocks, options, crypto, and forex snapshots are open, closed, early_trading, or late_trading. Possible values for indices snapshots are regular_trading, closed, early_trading, and late_trading. | | `results[].message` | string | The error message while looking for this ticker. | | `results[].name` | string | The name of this contract. | | `results[].session` | object | Comprehensive trading session metrics, detailing price changes, trading volume, and key price points (open, close, high, low) for the asset within the current trading day. Includes specific changes during early, regular, and late trading periods to enable detailed performance analysis and trend tracking. | | `results[].ticker` | string | The ticker symbol for the asset. | | `results[].timeframe` | enum: DELAYED, REAL-TIME | The time relevance of the data. | | `results[].type` | enum: stocks, options, fx, crypto, indices | The asset class for this ticker. | | `results[].value` | number | Value of Index. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "abc123", "results": [ { "break_even_price": 171.075, "details": { "contract_type": "call", "exercise_style": "american", "expiration_date": "2022-10-14", "shares_per_contract": 100, "strike_price": 5, "underlying_ticker": "NCLH" }, "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "greeks": { "delta": 0.5520187372272933, "gamma": 0.00706756515659829, "theta": -0.018532772783847958, "vega": 0.7274811132998142 }, "implied_volatility": 0.3048997097864957, "last_quote": { "ask": 21.25, "ask_exchange": 12, "ask_size": 110, "bid": 20.9, "bid_exchange": 10, "bid_size": 172, "last_updated": 1636573458756383500, "midpoint": 21.075, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "exchange": 316, "price": 0.05, "sip_timestamp": 1675280958783136800, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "NCLH $5 Call", "open_interest": 8921, "session": { "change": -0.05, "change_percent": -1.07, "close": 6.65, "decimal_volume": "67.0", "early_trading_change": -0.01, "early_trading_change_percent": -0.03, "high": 7.01, "late_trading_change": -0.4, "late_trading_change_percent": -0.02, "low": 5.42, "open": 6.7, "previous_close": 6.71, "regular_trading_change": -0.6, "regular_trading_change_percent": -0.5, "volume": 67 }, "ticker": "O:NCLH221014C00005000", "type": "options", "underlying_asset": { "change_to_break_even": 23.123999999999995, "last_updated": 1636573459862384600, "price": 147.951, "ticker": "AAPL", "timeframe": "REAL-TIME" } }, { "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "last_minute": { "close": 412.05, "decimal_volume": "610.0", "high": 412.1, "low": 412.05, "open": 412.1, "transactions": 26, "volume": 610, "vwap": 412.0881 }, "last_quote": { "ask": 21.25, "ask_exchange": 300, "ask_size": 110, "bid": 20.9, "bid_exchange": 323, "bid_size": 172, "last_updated": 1636573458756383500, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "decimal_size": "2.0", "exchange": 316, "id": "4064", "last_updated": 1675280958783136800, "price": 0.05, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "Apple Inc.", "session": { "change": -1.05, "change_percent": -4.67, "close": 21.4, "decimal_volume": "37.0", "early_trading_change": -0.39, "early_trading_change_percent": -0.07, "high": 22.49, "late_trading_change": 1.2, "late_trading_change_percent": 3.92, "low": 21.35, "open": 22.49, "previous_close": 22.45, "volume": 37 }, "ticker": "AAPL", "type": "stocks" }, { "error": "NOT_FOUND", "message": "Ticker not found.", "ticker": "TSLAAPL" } ], "status": "OK" } ``` --- # REST ## Indices ### Exponential Moving Average (EMA) **Endpoint:** `GET /v1/indicators/ema/{indicesTicker}` **Description:** Retrieve the Exponential Moving Average (EMA) for a specified ticker over a defined time range. The EMA places greater weight on recent prices, enabling quicker trend detection and more responsive signals. Use Cases: Trend identification, EMA crossover signals, dynamic support/resistance levels, and adjusting strategies based on recent market volatility. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `indicesTicker` | string | Yes | The ticker symbol for which to get exponential moving average (EMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the exponential moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the exponential moving average (EMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The value in the aggregate which will be used to calculate the exponential moving average. i.e. 'close' will result in using close values to calculate the exponential moving average (EMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the EMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/ema/I:NDX?cursor=YWRqdXN0ZWQ9dHJ1ZSZhcD0lN0IlMjJ2JTIyJTNBMCUyQyUyMm8lMjIlM0EwJTJDJTIyYyUyMiUzQTE1MDg0Ljk5OTM4OTgyMDAzJTJDJTIyaCUyMiUzQTAlMkMlMjJsJTIyJTNBMCUyQyUyMnQlMjIlM0ExNjg3MjE5MjAwMDAwJTdEJmFzPSZleHBhbmRfdW5kZXJseWluZz1mYWxzZSZsaW1pdD0xJm9yZGVyPWRlc2Mmc2VyaWVzX3R5cGU9Y2xvc2UmdGltZXNwYW49ZGF5JnRpbWVzdGFtcC5sdD0xNjg3MjM3MjAwMDAwJndpbmRvdz01MA", "request_id": "b9201816341441eed663a90443c0623a", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/I:NDX/range/1/day/1678338000000/1687366449650?limit=226&sort=desc" }, "values": [ { "timestamp": 1687237200000, "value": 14452.002555459003 } ] }, "status": "OK" } ``` --- # REST ## Indices ### Moving Average Convergence/Divergence (MACD) **Endpoint:** `GET /v1/indicators/macd/{indicesTicker}` **Description:** Retrieve the Moving Average Convergence/Divergence (MACD) for a specified ticker over a defined time range. MACD is a momentum indicator derived from two moving averages, helping to identify trend strength, direction, and potential trading signals. Use Cases: Momentum analysis, signal generation (crossover events), spotting overbought/oversold conditions, and confirming trend directions. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `indicesTicker` | string | Yes | The ticker symbol for which to get MACD data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the MACD are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `short_window` | integer | No | The short window size used to calculate MACD data. | | `long_window` | integer | No | The long window size used to calculate MACD data. | | `signal_window` | integer | No | The window size used to calculate the MACD signal line. | | `series_type` | string | No | The value in the aggregate which will be used to calculate the MACD. i.e. 'close' will result in using close values to calculate the MACD. | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the MACD indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Each entry in the values array represents MACD indicator data for a specific timestamp and includes: | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/macd/I:NDX?cursor=YWRqdXN0ZWQ9dHJ1ZSZhcD0lN0IlMjJ2JTIyJTNBMCUyQyUyMm8lMjIlM0EwJTJDJTIyYyUyMiUzQTE1MDg0Ljk5OTM4OTgyMDAzJTJDJTIyaCUyMiUzQTAlMkMlMjJsJTIyJTNBMCUyQyUyMnQlMjIlM0ExNjg3MTUwODAwMDAwJTdEJmFzPSZleHBhbmRfdW5kZXJseWluZz1mYWxzZSZsaW1pdD0yJmxvbmdfd2luZG93PTI2Jm9yZGVyPWRlc2Mmc2VyaWVzX3R5cGU9Y2xvc2Umc2hvcnRfd2luZG93PTEyJnNpZ25hbF93aW5kb3c9OSZ0aW1lc3Bhbj1kYXkmdGltZXN0YW1wLmx0PTE2ODcyMTkyMDAwMDA", "request_id": "2eeda0be57e83cbc64cc8d1a74e84dbd", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/I:NDX/range/1/day/1678338000000/1687366537196?limit=121&sort=desc" }, "values": [ { "histogram": -4.7646219788108795, "signal": 220.7596784587801, "timestamp": 1687237200000, "value": 215.9950564799692 }, { "histogram": 3.4518937661882205, "signal": 221.9508339534828, "timestamp": 1687219200000, "value": 225.40272771967102 } ] }, "status": "OK" } ``` --- # REST ## Indices ### Relative Strength Index (RSI) **Endpoint:** `GET /v1/indicators/rsi/{indicesTicker}` **Description:** Retrieve the Relative Strength Index (RSI) for a specified ticker over a defined time range. The RSI measures the speed and magnitude of price changes, oscillating between 0 and 100 to help identify overbought or oversold conditions. Use Cases: Overbought/oversold detection, divergence analysis, trend confirmation, and refining market entry/exit strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `indicesTicker` | string | Yes | The ticker symbol for which to get relative strength index (RSI) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the relative strength index are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the relative strength index (RSI). | | `series_type` | string | No | The value in the aggregate which will be used to calculate the relative strength index. i.e. 'close' will result in using close values to calculate the relative strength index (RSI). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the RSI indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/rsi/I:NDX?cursor=YWRqdXN0ZWQ9dHJ1ZSZhcD0lN0IlMjJ2JTIyJTNBMCUyQyUyMm8lMjIlM0EwJTJDJTIyYyUyMiUzQTE1MDg0Ljk5OTM4OTgyMDAzJTJDJTIyaCUyMiUzQTAlMkMlMjJsJTIyJTNBMCUyQyUyMnQlMjIlM0ExNjg3MjE5MjAwMDAwJTdEJmFzPSZleHBhbmRfdW5kZXJseWluZz1mYWxzZSZsaW1pdD0xJm9yZGVyPWRlc2Mmc2VyaWVzX3R5cGU9Y2xvc2UmdGltZXNwYW49ZGF5JnRpbWVzdGFtcC5sdD0xNjg3MjM3MjAwMDAwJndpbmRvdz0xNA", "request_id": "28a8417f521f98e1d08f6ed7d1fbcad3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/I:NDX/range/1/day/1678338000000/1687366658253?limit=66&sort=desc" }, "values": [ { "timestamp": 1687237200000, "value": 73.98019439047955 } ] }, "status": "OK" } ``` --- # REST ## Indices ### Simple Moving Average (SMA) **Endpoint:** `GET /v1/indicators/sma/{indicesTicker}` **Description:** Retrieve the Simple Moving Average (SMA) for a specified ticker over a defined time range. The SMA calculates the average price across a set number of periods, smoothing price fluctuations to reveal underlying trends and potential signals. Use Cases: Trend analysis, trading signal generation (e.g., SMA crossovers), identifying support/resistance, and refining entry/exit timing. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `indicesTicker` | string | Yes | The ticker symbol for which to get simple moving average (SMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the simple moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the simple moving average (SMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The value in the aggregate which will be used to calculate the simple moving average. i.e. 'close' will result in using close values to calculate the simple moving average (SMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the SMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/sma/I:NDX?cursor=YWRqdXN0ZWQ9dHJ1ZSZhcD0lN0IlMjJ2JTIyJTNBMCUyQyUyMm8lMjIlM0EwJTJDJTIyYyUyMiUzQTE1MDg0Ljk5OTM4OTgyMDAzJTJDJTIyaCUyMiUzQTAlMkMlMjJsJTIyJTNBMCUyQyUyMnQlMjIlM0ExNjg3MjE5MjAwMDAwJTdEJmFzPSZleHBhbmRfdW5kZXJseWluZz1mYWxzZSZsaW1pdD0xJm9yZGVyPWRlc2Mmc2VyaWVzX3R5cGU9Y2xvc2UmdGltZXNwYW49ZGF5JnRpbWVzdGFtcC5sdD0xNjg3MjM3MjAwMDAwJndpbmRvdz01Mw", "request_id": "4cae270008cb3f947e3f92c206e3888a", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/I:NDX/range/1/day/1678338000000/1687366378997?limit=240&sort=desc" }, "values": [ { "timestamp": 1687237200000, "value": 14362.676417589264 } ] }, "status": "OK" } ``` --- # REST ## Indices ### All Tickers **Endpoint:** `GET /v3/reference/tickers` **Description:** Retrieve a comprehensive list of ticker symbols supported by Massive across various asset classes (e.g., stocks, indices, forex, crypto). Each ticker entry provides essential details such as symbol, name, market, currency, and active status. Use Cases: Asset discovery, data integration, filtering/selection, and application development. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a ticker symbol. Defaults to empty string which queries all tickers. | | `type` | string | No | Specify the type of the tickers. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). Defaults to empty string which queries all types. | | `market` | string | No | Filter by market type. By default all markets are included. | | `exchange` | string | No | Specify the asset's primary exchange Market Identifier Code (MIC) according to [ISO 10383](https://www.iso20022.org/market-identifier-codes). Defaults to empty string which queries all exchanges. | | `cusip` | string | No | Specify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes [at their website](https://www.cusip.com/identifiers.html#/CUSIP). Defaults to empty string which queries all CUSIPs. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `cik` | string | No | Specify the CIK of the asset you want to search for. Find more information about CIK codes [at their website](https://www.sec.gov/edgar/searchedgar/cik.htm). Defaults to empty string which queries all CIKs. | | `date` | string | No | Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date. | | `search` | string | No | Search for terms within the ticker and/or company name. | | `active` | boolean | No | Specify if the tickers returned should be actively traded on the queried date. Default is true. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 100 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of tickers that match your query. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `results[].active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results[].base_currency_name` | string | The name of the currency that this asset is priced against. | | `results[].base_currency_symbol` | string | The ISO 4217 code of the currency that this asset is priced against. | | `results[].cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results[].composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].currency_name` | string | The name of the currency that this asset is traded with. | | `results[].currency_symbol` | string | The ISO 4217 code of the currency that this asset is traded with. | | `results[].delisted_utc` | string | The last date that the asset was traded. | | `results[].last_updated_utc` | string | The information is accurate up to this time. | | `results[].locale` | enum: us, global | The locale of the asset. | | `results[].market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results[].name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results[].primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results[].share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].ticker` | string | The exchange symbol that this item is traded under. | | `results[].type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `status` | string | The status of this request's response. | ## Sample Response ```json { "count": 1, "next_url": "https://api.massive.com/v3/reference/tickers?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "e70013d92930de90e089dc8fa098888e", "results": [ { "active": true, "cik": "0001090872", "composite_figi": "BBG000BWQYZ5", "currency_name": "usd", "last_updated_utc": "2021-04-25T00:00:00Z", "locale": "us", "market": "stocks", "name": "Agilent Technologies Inc.", "primary_exchange": "XNYS", "share_class_figi": "BBG001SCTQY4", "ticker": "A", "type": "CS" } ], "status": "OK" } ``` --- # REST ## Indices ### Ticker Overview **Endpoint:** `GET /v3/reference/tickers/{ticker}` **Description:** Retrieve comprehensive details for a single ticker supported by Massive that is active as-of a given date. This endpoint offers a deep look into a company’s fundamental attributes, including its primary exchange, standardized identifiers (CIK, composite FIGI, share class FIGI), market capitalization, industry classification, and key dates. Users also gain access to branding assets (e.g., logos, icons), enabling them to enrich applications and analyses with visually consistent, contextually relevant information. For information on delisted tickers, use the [All Tickers](/docs/rest/indices/tickers/all-tickers) endpoint with `active=false`. Use Cases: Company research, data integration, application enhancement, due diligence & compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `date` | string | No | Specify a point in time to get information about the ticker available on that date. When retrieving information from SEC filings, we compare this date with the period of report date on the SEC filing. For example, consider an SEC filing submitted by AAPL on 2019-07-31, with a period of report date ending on 2019-06-29. That means that the filing was submitted on 2019-07-31, but the filing was created based on information from 2019-06-29. If you were to query for AAPL details on 2019-06-29, the ticker details would include information from the SEC filing. Defaults to the most recent available date. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request id assigned by the server. | | `results` | object | Ticker with details. | | `results.active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results.address` | object | Company headquarters address details. | | `results.branding` | object | Provides URLs aiding in visual identification. | | `results.cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results.composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.currency_name` | string | The name of the currency that this asset is traded with. | | `results.delisted_utc` | string | The last date that the asset was traded. | | `results.description` | string | A description of the company and what they do/offer. | | `results.homepage_url` | string | The URL of the company's website homepage. | | `results.list_date` | string | The date that the symbol was first publicly listed in the format YYYY-MM-DD. | | `results.locale` | enum: us, global | The locale of the asset. | | `results.market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results.market_cap` | number | The most recent close price of the ticker multiplied by weighted outstanding shares. | | `results.name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results.phone_number` | string | The phone number for the company behind this ticker. | | `results.primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results.round_lot` | number | Round lot size of this security. | | `results.share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.share_class_shares_outstanding` | number | The recorded number of outstanding shares for this particular share class. | | `results.sic_code` | string | The standard industrial classification code for this ticker. For a list of SIC Codes, see the SEC's SIC Code List. | | `results.sic_description` | string | A description of this ticker's SIC code. | | `results.ticker` | string | The exchange symbol that this item is traded under. | | `results.ticker_root` | string | The root of a specified ticker. For example, the root of BRK.A is BRK. | | `results.ticker_suffix` | string | The suffix of a specified ticker. For example, the suffix of BRK.A is A. | | `results.total_employees` | number | The approximate number of employees for the company. | | `results.type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `results.weighted_shares_outstanding` | number | The shares outstanding calculated assuming all shares of other share classes are converted to this share class. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "31d59dda-80e5-4721-8496-d0d32a654afe", "results": { "active": true, "address": { "address1": "One Apple Park Way", "city": "Cupertino", "postal_code": "95014", "state": "CA" }, "branding": { "icon_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_icon.png", "logo_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_logo.svg" }, "cik": "0000320193", "composite_figi": "BBG000B9XRY4", "currency_name": "usd", "description": "Apple designs a wide variety of consumer electronic devices, including smartphones (iPhone), tablets (iPad), PCs (Mac), smartwatches (Apple Watch), AirPods, and TV boxes (Apple TV), among others. The iPhone makes up the majority of Apple's total revenue. In addition, Apple offers its customers a variety of services such as Apple Music, iCloud, Apple Care, Apple TV+, Apple Arcade, Apple Card, and Apple Pay, among others. Apple's products run internally developed software and semiconductors, and the firm is well known for its integration of hardware, software and services. Apple's products are distributed online as well as through company-owned stores and third-party retailers. The company generates roughly 40% of its revenue from the Americas, with the remainder earned internationally.", "homepage_url": "https://www.apple.com", "list_date": "1980-12-12", "locale": "us", "market": "stocks", "market_cap": 2771126040150, "name": "Apple Inc.", "phone_number": "(408) 996-1010", "primary_exchange": "XNAS", "round_lot": 100, "share_class_figi": "BBG001S5N8V8", "share_class_shares_outstanding": 16406400000, "sic_code": "3571", "sic_description": "ELECTRONIC COMPUTERS", "ticker": "AAPL", "ticker_root": "AAPL", "total_employees": 154000, "type": "CS", "weighted_shares_outstanding": 16334371000 }, "status": "OK" } ``` --- ## Options # REST ## Options ### Custom Bars (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{optionsTicker}/range/{multiplier}/{timespan}/{from}/{to}` **Description:** Retrieve aggregated historical OHLC (Open, High, Low, Close) and volume data for a specified options contract over a custom date range and time interval in Eastern Time (ET). Aggregates are derived exclusively from qualifying trades that meet specific conditions. If no eligible trades occur within a given timeframe, no aggregate bar is produced, resulting in an empty interval that indicates a lack of trading activity during that period. Users can tailor their data by adjusting the multiplier and timespan parameters (e.g., a 5-minute bar). This flexibility supports a broad range of analytical and visualization needs for options markets. Use Cases: Data visualization, technical analysis, backtesting strategies, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol of the options contract. | | `multiplier` | integer | Yes | The size of the timespan multiplier. | | `timespan` | string | Yes | The size of the time window. | | `from` | string | Yes | The start of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `to` | string | Yes | The end of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `sort` | N/A | No | Sort the results by timestamp. `asc` will return results in ascending order (oldest at the top), `desc` will return results in descending order (newest at the top). | | `limit` | integer | No | Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000. Read more about how limit is used to calculate aggregate results in our article on Aggregate Data API Improvements. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "count": 2, "queryCount": 2, "request_id": "5585acde-5085-42d6-95b2-2e388a28370a", "results": [ { "c": 26.2, "h": 26.2, "l": 26.2, "n": 1, "o": 26.2, "t": 1632369600000, "v": 2, "vw": 26.2 }, { "c": 28.3, "h": 28.3, "l": 28.3, "n": 1, "o": 28.3, "t": 1632456000000, "v": 2, "vw": 28.3 } ], "resultsCount": 2, "status": "OK", "ticker": "O:RDFN211119C00025000" } ``` --- # REST ## Options ### Daily Ticker Summary (OHLC) **Endpoint:** `GET /v1/open-close/{optionsTicker}/{date}` **Description:** Retrieve the opening and closing prices for a specific options contract on a given date, along with any pre-market and after-hours trade prices. This endpoint provides essential daily pricing details, enabling users to evaluate performance, conduct historical analysis, and gain insights into trading activity outside regular market sessions. Use Cases: Daily performance analysis, historical data collection, after-hours insights, portfolio tracking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol of the options contract. | | `date` | string | Yes | The date of the requested open/close in the format YYYY-MM-DD. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | number | The close price of the ticker symbol in after hours trading. | | `close` | number | The close price for the symbol in the given time period. | | `from` | string | The requested date. | | `high` | number | The highest price for the symbol in the given time period. | | `low` | number | The lowest price for the symbol in the given time period. | | `open` | number | The open price for the symbol in the given time period. | | `otc` | boolean | Whether or not this aggregate is for an OTC ticker. This field will be left off if false. | | `preMarket` | integer | The open price of the ticker symbol in pre-market trading. | | `status` | string | The status of this request's response. | | `symbol` | string | The exchange symbol that this item is traded under. | | `volume` | number | The trading volume of the symbol in the given time period. | ## Sample Response ```json { "afterHours": 26.35, "close": 26.35, "from": "2023-01-09", "high": 26.35, "low": 25, "open": 25, "preMarket": 25, "status": "OK", "symbol": "O:TSLA210903C00700000", "volume": 2 } ``` --- # REST ## Options ### Previous Day Bar (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{optionsTicker}/prev` **Description:** Retrieve the previous trading day's open, high, low, and close (OHLC) data for a specified option contract. This endpoint provides key pricing metrics, including volume, to help users assess recent performance and inform trading strategies. Use Cases: Baseline comparison, technical analysis, market research, and daily reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol of the options contract. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 1, "request_id": "6a7e466379af0a71039d60cc78e72282", "results": [ { "T": "O:TSLA210903C00700000", "c": 115.97, "h": 117.59, "l": 114.13, "n": 2, "o": 115.55, "t": 1605042000000, "v": 131704427, "vw": 116.3058 } ], "resultsCount": 1, "status": "OK", "ticker": "O:TSLA210903C00700000" } ``` --- # REST ## Options ### All Contracts **Endpoint:** `GET /v3/reference/options/contracts` **Description:** Retrieve a comprehensive index of options contracts, encompassing both active and expired listings. This endpoint can return a broad selection of contracts or be narrowed down to those tied to a specific underlying ticker. Each contract entry includes details such as contract type (call/put), exercise style, expiration date, and strike price. By exploring this index, users can assess market availability, analyze contract characteristics, and refine their options trading or research strategies. Use Cases: Market availability analysis, strategy development, research and modeling, contract exploration. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `underlying_ticker` | string | No | Query for contracts relating to an underlying stock ticker. | | `ticker` | string | No | This parameter has been deprecated. To search by specific options ticker, use the Options Contract endpoint [here](https://massive.com/docs/rest/options/contracts/contract-overview). | | `contract_type` | string | No | Query by the type of contract. | | `expiration_date` | string | No | Query by contract expiration with date format YYYY-MM-DD. | | `as_of` | string | No | Specify a point in time for contracts as of this date with format YYYY-MM-DD. Defaults to today's date. | | `strike_price` | number | No | Query by strike price of a contract. | | `expired` | boolean | No | Query for expired contracts. Default is false. | | `underlying_ticker.gte` | string | No | Range by underlying_ticker. | | `underlying_ticker.gt` | string | No | Range by underlying_ticker. | | `underlying_ticker.lte` | string | No | Range by underlying_ticker. | | `underlying_ticker.lt` | string | No | Range by underlying_ticker. | | `expiration_date.gte` | string | No | Range by expiration_date. | | `expiration_date.gt` | string | No | Range by expiration_date. | | `expiration_date.lte` | string | No | Range by expiration_date. | | `expiration_date.lt` | string | No | Range by expiration_date. | | `strike_price.gte` | number | No | Range by strike_price. | | `strike_price.gt` | number | No | Range by strike_price. | | `strike_price.lte` | number | No | Range by strike_price. | | `strike_price.lt` | number | No | Range by strike_price. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].additional_underlyings` | array[object] | If an option contract has additional underlyings or deliverables associated with it, they will appear here. See here for some examples of what might cause a contract to have additional underlyings. | | `results[].cfi` | string | The 6 letter CFI code of the contract (defined in ISO 10962) | | `results[].contract_type` | string | The type of contract. Can be "put", "call", or in some rare cases, "other". | | `results[].correction` | integer | The correction number for this option contract. | | `results[].exercise_style` | enum: american, european, bermudan | The exercise style of this contract. See this link for more details on exercise styles. | | `results[].expiration_date` | string | The contract's expiration date in YYYY-MM-DD format. | | `results[].primary_exchange` | string | The MIC code of the primary exchange that this contract is listed on. | | `results[].shares_per_contract` | number | The number of shares per contract for this contract. | | `results[].strike_price` | number | The strike price of the option contract. | | `results[].ticker` | string | The ticker for the option contract. | | `results[].underlying_ticker` | string | The underlying ticker that the option contract relates to. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "603902c0-a5a5-406f-bd08-f030f92418fa", "results": [ { "cfi": "OCASPS", "contract_type": "call", "exercise_style": "american", "expiration_date": "2021-11-19", "primary_exchange": "BATO", "shares_per_contract": 100, "strike_price": 85, "ticker": "O:AAPL211119C00085000", "underlying_ticker": "AAPL" }, { "additional_underlyings": [ { "amount": 44, "type": "equity", "underlying": "VMW" }, { "amount": 6.53, "type": "currency", "underlying": "USD" } ], "cfi": "OCASPS", "contract_type": "call", "exercise_style": "american", "expiration_date": "2021-11-19", "primary_exchange": "BATO", "shares_per_contract": 100, "strike_price": 90, "ticker": "O:AAPL211119C00090000", "underlying_ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Options ### Contract Overview **Endpoint:** `GET /v3/reference/options/contracts/{options_ticker}` **Description:** Retrieve detailed information about a specific options contract, including its contract type (call or put), exercise style, expiration date, strike price, shares per contract, underlying ticker, and primary exchange. This endpoint provides essential attributes for understanding the contract’s structure and evaluating it within broader options strategies and portfolios. Use Cases: Contract specifications reference, option chain analysis, strategy development, portfolio integration. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `options_ticker` | string | Yes | Query for a contract by options ticker. You can learn more about the structure of options tickers [here](https://massive.com/blog/how-to-read-a-stock-options-ticker/). | | `as_of` | string | No | Specify a point in time for the contract as of this date with format YYYY-MM-DD. Defaults to today's date. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `request_id` | string | A request id assigned by the server. | | `results` | object | Contains the requested data for the specified options contract. | | `results.additional_underlyings` | array[object] | If an option contract has additional underlyings or deliverables associated with it, they will appear here. See here for some examples of what might cause a contract to have additional underlyings. | | `results.cfi` | string | The 6 letter CFI code of the contract (defined in ISO 10962) | | `results.contract_type` | string | The type of contract. Can be "put", "call", or in some rare cases, "other". | | `results.correction` | integer | The correction number for this option contract. | | `results.exercise_style` | enum: american, european, bermudan | The exercise style of this contract. See this link for more details on exercise styles. | | `results.expiration_date` | string | The contract's expiration date in YYYY-MM-DD format. | | `results.primary_exchange` | string | The MIC code of the primary exchange that this contract is listed on. | | `results.shares_per_contract` | number | The number of shares per contract for this contract. | | `results.strike_price` | number | The strike price of the option contract. | | `results.ticker` | string | The ticker for the option contract. | | `results.underlying_ticker` | string | The underlying ticker that the option contract relates to. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "603902c0-a5a5-406f-bd08-f030f92418fa", "results": { "additional_underlyings": [ { "amount": 44, "type": "equity", "underlying": "VMW" }, { "amount": 6.53, "type": "currency", "underlying": "USD" } ], "cfi": "OCASPS", "contract_type": "call", "exercise_style": "american", "expiration_date": "2021-11-19", "primary_exchange": "BATO", "shares_per_contract": 100, "strike_price": 85, "ticker": "O:AAPL211119C00085000", "underlying_ticker": "AAPL" }, "status": "OK" } ``` --- # REST ## Options ### Condition Codes **Endpoint:** `GET /v3/reference/conditions` **Description:** Retrieve a unified and comprehensive list of trade and quote conditions from various upstream market data providers (e.g., CTA, UTP, OPRA, FINRA). Each condition identifies special circumstances associated with market data, such as trades occurring outside regular sessions or at averaged prices, and outlines how these conditions affect metrics like high, low, open, close, and volume. By examining these mapped conditions, users can accurately interpret the context of trades and quotes, apply appropriate filtering, and ensure that aggregated data correctly reflects eligible trading activity. Use Cases: Data interpretation, unified condition mapping, filtering and analysis, algorithmic adjustments, compliance and reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter for conditions within a given asset class. | | `data_type` | string | No | Filter by data type. | | `id` | integer | No | Filter for conditions with a given ID. | | `sip` | string | No | Filter by SIP. If the condition contains a mapping for that SIP, the condition will be returned. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of conditions that match your query. | | `results[].abbreviation` | string | A commonly-used abbreviation for this condition. | | `results[].asset_class` | enum: stocks, options, crypto, fx | An identifier for a group of similar financial instruments. | | `results[].data_types` | array[string] | Data types that this condition applies to. | | `results[].description` | string | A short description of the semantics of this condition. | | `results[].exchange` | integer | If present, mapping this condition from a Massive code to a SIP symbol depends on this attribute. In other words, data with this condition attached comes exclusively from the given exchange. | | `results[].id` | integer | An identifier used by Massive for this condition. Unique per data type. | | `results[].legacy` | boolean | If true, this condition is from an old version of the SIPs' specs and no longer is used. Other conditions may or may not reuse the same symbol as this one. | | `results[].name` | string | The name of this condition. | | `results[].sip_mapping` | object | A comprehensive mapping that translates condition codes from individual SIPs (CTA, OPRA, UTP) to a unified code used by Massive. This facilitates consistent interpretation and application of market data conditions across different data streams, ensuring that users can accurately apply these conditions to their data analysis and reporting. | | `results[].type` | enum: sale_condition, quote_condition, sip_generated_flag, financial_status_indicator, short_sale_restriction_indicator, settlement_condition, market_condition, trade_thru_exempt | An identifier for a collection of related conditions. | | `results[].update_rules` | object | A list of aggregation rules. | | `status` | string | The status of this request's response. | --- # REST ## Options ### Exchanges **Endpoint:** `GET /v3/reference/exchanges` **Description:** Retrieve a list of known exchanges, including their identifiers, names, market types, and other relevant attributes. This information helps map exchange codes, understand market coverage, and integrate exchange details into applications. Use Cases: Data mapping, market coverage analysis, application development (e.g., display exchange options), and ensuring regulatory compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter by asset class. | | `locale` | string | No | Filter by locale. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].acronym` | string | A commonly used abbreviation for this exchange. | | `results[].asset_class` | enum: stocks, options, crypto, fx, futures | An identifier for a group of similar financial instruments. | | `results[].id` | integer | A unique identifier used by Massive for this exchange. | | `results[].locale` | enum: us, global | An identifier for a geographical location. | | `results[].mic` | string | The Market Identifier Code of this exchange (see ISO 10383). | | `results[].name` | string | Name of this exchange. | | `results[].operating_mic` | string | The MIC of the entity that operates this exchange. | | `results[].participant_id` | string | The ID used by SIP's to represent this exchange. | | `results[].type` | enum: exchange, TRF, SIP | Represents the type of exchange. | | `results[].url` | string | A link to this exchange's website, if one exists. | | `status` | string | The status of this request's response. | --- # REST ## Options ### Market Holidays **Endpoint:** `GET /v1/marketstatus/upcoming` **Description:** Retrieve upcoming market holidays and their corresponding open/close times. This endpoint is forward-looking only, listing future holidays that affect market hours. Use this data to plan ahead for trading activities and system operations. Use Cases: Trading schedule adjustments, integrated holiday calendars, operational planning (e.g., system maintenance), and notifying users about upcoming market closures. ## Response Attributes | Field | Type | Description | | --- | --- | --- | ## Sample Response ```json [ { "date": "2020-11-26", "exchange": "NYSE", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "NASDAQ", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "OTC", "name": "Thanksgiving", "status": "closed" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NASDAQ", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NYSE", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" } ] ``` --- # REST ## Options ### Market Status **Endpoint:** `GET /v1/marketstatus/now` **Description:** Retrieve the current trading status for various exchanges and overall financial markets. This endpoint provides real-time indicators of whether markets are open, closed, or operating in pre-market/after-hours sessions, along with timing details for the current or upcoming trading periods. Use Cases: Real-time monitoring, algorithm scheduling, UI updates, and operational planning. ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | boolean | Whether or not the market is in post-market hours. | | `currencies` | object | Contains the status of various currency markets. | | `currencies.crypto` | string | The status of the crypto market. | | `currencies.fx` | string | The status of the forex market. | | `earlyHours` | boolean | Whether or not the market is in pre-market hours. | | `exchanges` | object | Contains the status of different US stock exchanges (e.g., Nasdaq, NYSE). | | `exchanges.nasdaq` | string | The status of the Nasdaq market. | | `exchanges.nyse` | string | The status of the NYSE market. | | `exchanges.otc` | string | The status of the OTC market. | | `indicesGroups` | object | Contains the status of various index groups (e.g., MSCI, FTSE Russell). | | `indicesGroups.cccy` | string | The status of Cboe Streaming Market Indices Cryptocurrency ("CCCY") indices trading hours. | | `indicesGroups.cgi` | string | The status of Cboe Global Indices ("CGI") trading hours. | | `indicesGroups.dow_jones` | string | The status of Dow Jones indices trading hours | | `indicesGroups.ftse_russell` | string | The status of Financial Times Stock Exchange Group ("FTSE") Russell indices trading hours. | | `indicesGroups.msci` | string | The status of Morgan Stanley Capital International ("MSCI") indices trading hours. | | `indicesGroups.mstar` | string | The status of Morningstar ("MSTAR") indices trading hours. | | `indicesGroups.mstarc` | string | The status of Morningstar Customer ("MSTARC") indices trading hours. | | `indicesGroups.nasdaq` | string | The status of National Association of Securities Dealers Automated Quotations ("Nasdaq") indices trading hours. | | `indicesGroups.s_and_p` | string | The status of Standard & Poor's ("S&P") indices trading hours. | | `indicesGroups.societe_generale` | string | The status of Societe Generale indices trading hours. | | `market` | string | The status of the market as a whole. | | `serverTime` | string | The current time of the server, returned as a date-time in RFC3339 format. | ## Sample Response ```json { "afterHours": true, "currencies": { "crypto": "open", "fx": "open" }, "earlyHours": false, "exchanges": { "nasdaq": "extended-hours", "nyse": "extended-hours", "otc": "closed" }, "market": "extended-hours", "serverTime": "2020-11-10T17:37:37-05:00" } ``` --- # REST ## Options ### Option Chain Snapshot **Endpoint:** `GET /v3/snapshot/options/{underlyingAsset}` **Description:** Retrieve a comprehensive snapshot of all options contracts associated with a specified underlying ticker. This endpoint consolidates key metrics for each contract, including pricing details, greeks (delta, gamma, theta, vega), implied volatility, quotes, trades, and open interest. Users also gain insights into the underlying asset’s current price and break-even calculations. By examining the full options chain in a single request, traders and analysts can evaluate market conditions, compare contract attributes, and refine their strategies. Use Cases: Market overview, strategy comparison, research and modeling, portfolio refinement. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `underlyingAsset` | string | Yes | The underlying ticker symbol of the option contract. | | `strike_price` | number | No | Query by strike price of a contract. | | `expiration_date` | string | No | Query by contract expiration with date format YYYY-MM-DD. | | `contract_type` | string | No | Query by the type of contract. | | `strike_price.gte` | number | No | Range by strike_price. | | `strike_price.gt` | number | No | Range by strike_price. | | `strike_price.lte` | number | No | Range by strike_price. | | `strike_price.lt` | number | No | Range by strike_price. | | `expiration_date.gte` | string | No | Range by expiration_date. | | `expiration_date.gt` | string | No | Range by expiration_date. | | `expiration_date.lte` | string | No | Range by expiration_date. | | `expiration_date.lt` | string | No | Range by expiration_date. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 250. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].break_even_price` | number | The price of the underlying asset for the contract to break even. For a call, this value is (strike price + premium paid). For a put, this value is (strike price - premium paid). | | `results[].day` | object | The most recent daily bar for this contract. | | `results[].details` | object | The details for this contract. | | `results[].fmv` | number | Fair Market Value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `results[].fmv_last_updated` | integer | If Fair Market Value (FMV) is available, this field is the nanosecond timestamp of the last FMV calculation. | | `results[].greeks` | object | The greeks for this contract. There are certain circumstances where greeks will not be returned, such as options contracts that are deep in the money. See this article for more information. | | `results[].implied_volatility` | number | The market's forecast for the volatility of the underlying asset, based on this option's current price. | | `results[].last_quote` | object | The most recent quote for this contract. This is only returned if your current plan includes quotes. | | `results[].last_trade` | object | The most recent trade for this contract. This is only returned if your current plan includes trades. | | `results[].open_interest` | number | The quantity of this contract held at the end of the last trading day. | | `results[].underlying_asset` | object | Information on the underlying stock for this options contract. The market data returned depends on your current stocks plan. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "6a7e466379af0a71039d60cc78e72282", "results": [ { "break_even_price": 151.2, "day": { "change": 4.5, "change_percent": 6.76, "close": 120.73, "high": 120.81, "last_updated": 1605195918507251700, "low": 118.9, "open": 119.32, "previous_close": 119.12, "volume": 868, "vwap": 119.31 }, "details": { "contract_type": "call", "exercise_style": "american", "expiration_date": "2022-01-21", "shares_per_contract": 100, "strike_price": 150, "ticker": "O:AAPL211022C000150000" }, "fmv": 0.05, "fmv_last_updated": 1605195918508251600, "greeks": { "delta": 1, "gamma": 0, "theta": 0.00229, "vega": 0 }, "implied_volatility": 5, "last_quote": { "ask": 120.3, "ask_size": 4, "bid": 120.28, "bid_size": 8, "last_updated": 1605195918507251700, "midpoint": 120.29, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "decimal_size": "2.0", "exchange": 316, "price": 0.05, "sip_timestamp": 1675280958783136800, "size": 2, "timeframe": "REAL-TIME" }, "open_interest": 1543, "underlying_asset": { "change_to_break_even": 4.2, "last_updated": 1605195918507251700, "price": 147, "ticker": "AAPL", "timeframe": "DELAYED" } } ], "status": "OK" } ``` --- # REST ## Options ### Option Contract Snapshot **Endpoint:** `GET /v3/snapshot/options/{underlyingAsset}/{optionContract}` **Description:** Retrieve a comprehensive snapshot of a specified options contract, consolidating vital metrics and market data into a single response. This endpoint provides details such as break-even price, day-over-day changes, implied volatility, open interest, greeks (delta, gamma, theta, vega), and the latest quote and trade information. Users also gain insights into the underlying asset’s current price, enabling a full evaluation of the contract’s value and potential. Use Cases: Trade evaluation, market analysis, risk assessment, and strategy refinement. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `underlyingAsset` | string | Yes | The underlying ticker symbol of the option contract. | | `optionContract` | string | Yes | The option contract identifier. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | Contains the requested snapshot data for the specified contract. | | `results.break_even_price` | number | The price of the underlying asset for the contract to break even. For a call, this value is (strike price + premium paid). For a put, this value is (strike price - premium paid). | | `results.day` | object | The most recent daily bar for this contract. | | `results.details` | object | The details for this contract. | | `results.fmv` | number | Fair Market Value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `results.fmv_last_updated` | integer | If Fair Market Value (FMV) is available, this field is the nanosecond timestamp of the last FMV calculation. | | `results.greeks` | object | The greeks for this contract. There are certain circumstances where greeks will not be returned, such as options contracts that are deep in the money. See this article for more information. | | `results.implied_volatility` | number | The market's forecast for the volatility of the underlying asset, based on this option's current price. | | `results.last_quote` | object | The most recent quote for this contract. This is only returned if your current plan includes quotes. | | `results.last_trade` | object | The most recent trade for this contract. This is only returned if your current plan includes trades. | | `results.open_interest` | number | The quantity of this contract held at the end of the last trading day. | | `results.underlying_asset` | object | Information on the underlying stock for this options contract. The market data returned depends on your current stocks plan. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "d9ff18dac69f55c218f69e4753706acd", "results": { "break_even_price": 171.075, "day": { "change": -1.05, "change_percent": -4.67, "close": 21.4, "high": 22.49, "last_updated": 1636520400000000000, "low": 21.35, "open": 22.49, "previous_close": 22.45, "volume": 37, "vwap": 21.6741 }, "details": { "contract_type": "call", "exercise_style": "american", "expiration_date": "2023-06-16", "shares_per_contract": 100, "strike_price": 150, "ticker": "O:AAPL230616C00150000" }, "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "greeks": { "delta": 0.5520187372272933, "gamma": 0.00706756515659829, "theta": -0.018532772783847958, "vega": 0.7274811132998142 }, "implied_volatility": 0.3048997097864957, "last_quote": { "ask": 21.25, "ask_exchange": 301, "ask_size": 110, "bid": 20.9, "bid_exchange": 301, "bid_size": 172, "last_updated": 1636573458756383500, "midpoint": 21.075, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "exchange": 316, "price": 0.05, "sip_timestamp": 1675280958783136800, "size": 2, "timeframe": "REAL-TIME" }, "open_interest": 8921, "underlying_asset": { "change_to_break_even": 23.123999999999995, "last_updated": 1636573459862384600, "price": 147.951, "ticker": "AAPL", "timeframe": "REAL-TIME" } }, "status": "OK" } ``` --- # REST ## Options ### Unified Snapshot **Endpoint:** `GET /v3/snapshot` **Description:** Retrieve unified snapshots of market data for multiple asset classes including stocks, options, forex, and cryptocurrencies in a single request. This endpoint consolidates key metrics such as last trade, last quote, open, high, low, close, and volume for a comprehensive view of current market conditions. By aggregating data from various sources into one response, users can efficiently monitor, compare, and act on information spanning multiple markets and asset types. Use Cases: Cross-market analysis, diversified portfolio monitoring, global market insights, multi-asset trading strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Search a range of tickers lexicographically. | | `type` | string | No | Query by the type of asset. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `ticker.any_of` | string | No | Comma separated list of tickers, up to a maximum of 250. If no tickers are passed then all results will be returned in a paginated manner. Warning: The maximum number of characters allowed in a URL are subject to your technology stack. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 250. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].break_even_price` | number | The price of the underlying asset for the contract to break even. For a call, this value is (strike price + premium paid). For a put, this value is (strike price - premium paid). | | `results[].details` | object | The details for this contract. | | `results[].error` | string | The error while looking for this ticker. | | `results[].fmv` | number | Fair Market Value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `results[].fmv_last_updated` | integer | If Fair Market Value (FMV) is available, this field is the nanosecond timestamp of the last FMV calculation. | | `results[].greeks` | object | The greeks for this contract. There are certain circumstances where greeks will not be returned, such as options contracts that are deep in the money. See this article for more information. | | `results[].implied_volatility` | number | The market's forecast for the volatility of the underlying asset, based on this option's current price. | | `results[].last_quote` | object | The most recent quote for this contract. This is only returned if your current plan includes quotes. | | `results[].last_trade` | object | The most recent quote for this contract. This is only returned if your current plan includes trades. | | `results[].market_status` | string | The market status for the market that trades this ticker. Possible values for stocks, options, crypto, and forex snapshots are open, closed, early_trading, or late_trading. Possible values for indices snapshots are regular_trading, closed, early_trading, and late_trading. | | `results[].message` | string | The error message while looking for this ticker. | | `results[].name` | string | The name of this contract. | | `results[].open_interest` | number | The quantity of this contract held at the end of the last trading day. | | `results[].session` | object | Comprehensive trading session metrics, detailing price changes, trading volume, and key price points (open, close, high, low) for the asset within the current trading day. Includes specific changes during early, regular, and late trading periods to enable detailed performance analysis and trend tracking. | | `results[].ticker` | string | The ticker symbol for the asset. | | `results[].type` | enum: stocks, options, fx, crypto, indices | The asset class for this ticker. | | `results[].underlying_asset` | object | Information on the underlying stock for this options contract. The market data returned depends on your current stocks plan. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "abc123", "results": [ { "break_even_price": 171.075, "details": { "contract_type": "call", "exercise_style": "american", "expiration_date": "2022-10-14", "shares_per_contract": 100, "strike_price": 5, "underlying_ticker": "NCLH" }, "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "greeks": { "delta": 0.5520187372272933, "gamma": 0.00706756515659829, "theta": -0.018532772783847958, "vega": 0.7274811132998142 }, "implied_volatility": 0.3048997097864957, "last_quote": { "ask": 21.25, "ask_exchange": 12, "ask_size": 110, "bid": 20.9, "bid_exchange": 10, "bid_size": 172, "last_updated": 1636573458756383500, "midpoint": 21.075, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "exchange": 316, "price": 0.05, "sip_timestamp": 1675280958783136800, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "NCLH $5 Call", "open_interest": 8921, "session": { "change": -0.05, "change_percent": -1.07, "close": 6.65, "decimal_volume": "67.0", "early_trading_change": -0.01, "early_trading_change_percent": -0.03, "high": 7.01, "late_trading_change": -0.4, "late_trading_change_percent": -0.02, "low": 5.42, "open": 6.7, "previous_close": 6.71, "regular_trading_change": -0.6, "regular_trading_change_percent": -0.5, "volume": 67 }, "ticker": "O:NCLH221014C00005000", "type": "options", "underlying_asset": { "change_to_break_even": 23.123999999999995, "last_updated": 1636573459862384600, "price": 147.951, "ticker": "AAPL", "timeframe": "REAL-TIME" } }, { "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "last_minute": { "close": 412.05, "decimal_volume": "610.0", "high": 412.1, "low": 412.05, "open": 412.1, "transactions": 26, "volume": 610, "vwap": 412.0881 }, "last_quote": { "ask": 21.25, "ask_exchange": 300, "ask_size": 110, "bid": 20.9, "bid_exchange": 323, "bid_size": 172, "last_updated": 1636573458756383500, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "decimal_size": "2.0", "exchange": 316, "id": "4064", "last_updated": 1675280958783136800, "price": 0.05, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "Apple Inc.", "session": { "change": -1.05, "change_percent": -4.67, "close": 21.4, "decimal_volume": "37.0", "early_trading_change": -0.39, "early_trading_change_percent": -0.07, "high": 22.49, "late_trading_change": 1.2, "late_trading_change_percent": 3.92, "low": 21.35, "open": 22.49, "previous_close": 22.45, "volume": 37 }, "ticker": "AAPL", "type": "stocks" }, { "error": "NOT_FOUND", "message": "Ticker not found.", "ticker": "TSLAAPL" } ], "status": "OK" } ``` --- # REST ## Options ### Exponential Moving Average (EMA) **Endpoint:** `GET /v1/indicators/ema/{optionsTicker}` **Description:** Retrieve the Exponential Moving Average (EMA) for a specified ticker over a defined time range. The EMA places greater weight on recent prices, enabling quicker trend detection and more responsive signals. Use Cases: Trend identification, EMA crossover signals, dynamic support/resistance levels, and adjusting strategies based on recent market volatility. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol for which to get exponential moving average (EMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the exponential moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the exponential moving average (EMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the exponential moving average. i.e. 'close' will result in using close prices to calculate the exponential moving average (EMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the EMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/ema/O:SPY241220P00720000?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/O:SPY241220P00720000/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Options ### Moving Average Convergence/Divergence (MACD) **Endpoint:** `GET /v1/indicators/macd/{optionsTicker}` **Description:** Retrieve the Moving Average Convergence/Divergence (MACD) for a specified ticker over a defined time range. MACD is a momentum indicator derived from two moving averages, helping to identify trend strength, direction, and potential trading signals. Use Cases: Momentum analysis, signal generation (crossover events), spotting overbought/oversold conditions, and confirming trend directions. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol for which to get MACD data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the MACD are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `short_window` | integer | No | The short window size used to calculate MACD data. | | `long_window` | integer | No | The long window size used to calculate MACD data. | | `signal_window` | integer | No | The window size used to calculate the MACD signal line. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the MACD. i.e. 'close' will result in using close prices to calculate the MACD. | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the MACD indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Each entry in the values array represents MACD indicator data for a specific timestamp and includes: | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/macd/O:SPY241220P00720000?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/O:SPY241220P00720000/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "histogram": 38.3801666667, "signal": 106.9811666667, "timestamp": 1517562000016, "value": 145.3613333333 }, { "histogram": 41.098859136, "signal": 102.7386283473, "timestamp": 1517562001016, "value": 143.8374874833 } ] }, "status": "OK" } ``` --- # REST ## Options ### Relative Strength Index (RSI) **Endpoint:** `GET /v1/indicators/rsi/{optionsTicker}` **Description:** Retrieve the Relative Strength Index (RSI) for a specified ticker over a defined time range. The RSI measures the speed and magnitude of price changes, oscillating between 0 and 100 to help identify overbought or oversold conditions. Use Cases: Overbought/oversold detection, divergence analysis, trend confirmation, and refining market entry/exit strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol for which to get relative strength index (RSI) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the relative strength index are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the relative strength index (RSI). | | `series_type` | string | No | The price in the aggregate which will be used to calculate the relative strength index. i.e. 'close' will result in using close prices to calculate the relative strength index (RSI). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the RSI indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/rsi/O:SPY241220P00720000?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/O:SPY241220P00720000/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 82.19 } ] }, "status": "OK" } ``` --- # REST ## Options ### Simple Moving Average (SMA) **Endpoint:** `GET /v1/indicators/sma/{optionsTicker}` **Description:** Retrieve the Simple Moving Average (SMA) for a specified ticker over a defined time range. The SMA calculates the average price across a set number of periods, smoothing price fluctuations to reveal underlying trends and potential signals. Use Cases: Trend analysis, trading signal generation (e.g., SMA crossovers), identifying support/resistance, and refining entry/exit timing. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol for which to get simple moving average (SMA) data. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the simple moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the simple moving average (SMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the simple moving average. i.e. 'close' will result in using close prices to calculate the simple moving average (SMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the SMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/sma/O:SPY241220P00720000?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "aggregates": [ { "c": 75.0875, "h": 75.15, "l": 73.7975, "n": 1, "o": 74.06, "t": 1577941200000, "v": 135647456, "vw": 74.6099 }, { "c": 74.3575, "h": 75.145, "l": 74.125, "n": 1, "o": 74.2875, "t": 1578027600000, "v": 146535512, "vw": 74.7026 } ], "url": "https://api.massive.com/v2/aggs/ticker/O:SPY241220P00720000/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Options ### Last Trade **Endpoint:** `GET /v2/last/trade/{optionsTicker}` **Description:** Retrieve the latest available trade for a specified options contact, including details such as price, size, exchange, and timestamp. This endpoint supports monitoring recent trading activity and updating dashboards or applications with the most current trade information, providing timely insights into ongoing market conditions. Use Cases: Trade monitoring, price updates, market snapshot. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol of the options contract. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `request_id` | string | A request id assigned by the server. | | `results` | object | N/A | | `results.T` | string | The exchange symbol that this item is traded under. | | `results.c` | array[integer] | A list of condition codes. | | `results.e` | integer | The trade correction indicator. | | `results.f` | integer | The nanosecond accuracy TRF(Trade Reporting Facility) Unix Timestamp. This is the timestamp of when the trade reporting facility received this message. | | `results.i` | string | The Trade ID which uniquely identifies a trade. These are unique per combination of ticker, exchange, and TRF. For example: A trade for AAPL executed on NYSE and a trade for AAPL executed on NASDAQ could potentially have the same Trade ID. | | `results.p` | number | The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00. | | `results.q` | integer | The sequence number represents the sequence in which message events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11). | | `results.r` | integer | The ID for the Trade Reporting Facility where the trade took place. | | `results.s` | number | The size of a trade (also known as volume). | | `results.t` | integer | The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this message from the exchange which produced it. | | `results.x` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `results.y` | integer | The nanosecond accuracy Participant/Exchange Unix Timestamp. This is the timestamp of when the quote was actually generated at the exchange. | | `results.z` | integer | There are 3 tapes which define which exchange the ticker is listed on. These are integers in our objects which represent the letter of the alphabet. Eg: 1 = A, 2 = B, 3 = C. * Tape A is NYSE listed securities * Tape B is NYSE ARCA / NYSE American * Tape C is NASDAQ | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "f05562305bd26ced64b98ed68b3c5d96", "results": { "T": "O:TSLA210903C00700000", "c": [ 227 ], "f": 1617901342969796400, "i": "", "p": 115.55, "q": 1325541950, "r": 202, "s": 25, "t": 1617901342969834000, "x": 312, "y": 1617901342969834000 }, "status": "OK" } ``` --- # REST ## Options ### Quotes **Endpoint:** `GET /v3/quotes/{optionsTicker}` **Description:** Retrieve historical quotes for a specified options contract over a defined time range. Each record provides bid and ask prices, sizes, exchange identifiers, and precise timestamps, reflecting the options market conditions at each captured moment. By examining this data, users can analyze price movements, evaluate market interest in specific strikes and expirations, and refine their options trading or research strategies. Use Cases: Historical quote analysis, market interest evaluation, algorithmic backtesting, strategy refinement. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The ticker symbol to get quotes for. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a nanosecond timestamp. | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 1000 and max is 50000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].ask_exchange` | integer | The ask exchange ID | | `results[].ask_price` | number | The ask price. | | `results[].ask_size` | number | The ask size. This represents the number of round lot orders at the given ask price. The normal round lot size is 100 shares. An ask size of 2 means there are 200 shares available to purchase at the given ask price. | | `results[].bid_exchange` | integer | The bid exchange ID | | `results[].bid_price` | number | The bid price. | | `results[].bid_size` | number | The bid size. This represents the number of round lot orders at the given bid price. The normal round lot size is 100 shares. A bid size of 2 means there are 200 shares for purchase at the given bid price. | | `results[].sequence_number` | integer | The sequence number represents the sequence in which quote events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11). | | `results[].sip_timestamp` | integer | The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this quote from the exchange which produced it. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v3/quotes/O:SPY241220P00720000?cursor=YXA9NzY5Nzg0NzAxJmFzPSZsaW1pdD0xMCZvcmRlcj1kZXNjJnNvcnQ9dGltZXN0YW1wJnRpbWVzdGFtcC5sdGU9MjAyMi0wMi0xN1QxNyUzQTI1JTNBMTMuMDA5MzU2MDMyWg", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "ask_exchange": 323, "ask_price": 282, "ask_size": 10, "bid_exchange": 316, "bid_price": 277.5, "bid_size": 1, "sequence_number": 789539218, "sip_timestamp": 1645119125346243600 }, { "ask_exchange": 301, "ask_price": 282, "ask_size": 1, "bid_exchange": 323, "bid_price": 277.5, "bid_size": 10, "sequence_number": 788994206, "sip_timestamp": 1645119118474271000 } ], "status": "OK" } ``` --- # REST ## Options ### Trades **Endpoint:** `GET /v3/trades/{optionsTicker}` **Description:** Retrieve comprehensive, tick-level trade data for a specified options ticker within a defined time range. Each record includes price, size, exchange, trade conditions, and precise timestamp information. This granular data is foundational for constructing aggregated bars and performing in-depth analyses, as it captures every eligible trade that contributes to calculations of open, high, low, and close (OHLC) values. By leveraging these trades, users can refine their understanding of intraday price movements, test and optimize algorithmic strategies, and ensure compliance by maintaining an auditable record of market activity. Use Cases: Intraday analysis, algorithmic trading, market microstructure research, data integrity and compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `optionsTicker` | string | Yes | The options ticker symbol to get trades for. | | `timestamp` | string | No | Query by trade timestamp. Either a date with the format YYYY-MM-DD or a nanosecond timestamp. | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 1000 and max is 50000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].conditions` | array[integer] | A list of condition codes. | | `results[].correction` | integer | The trade correction indicator. | | `results[].exchange` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `results[].participant_timestamp` | integer | The nanosecond accuracy Participant/Exchange Unix Timestamp. This is the timestamp of when the trade was actually generated at the exchange. | | `results[].price` | number | The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00. | | `results[].sip_timestamp` | integer | The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this trade from the exchange which produced it. | | `results[].size` | number | The size of a trade (also known as volume). | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v3/trades/O:AZO140621P00530000?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "exchange": 46, "participant_timestamp": 1401715883806000000, "price": 6.91, "sip_timestamp": 1401715883806000000, "size": 1 }, { "conditions": [ 209 ], "exchange": 67, "participant_timestamp": 1401716547786000000, "price": 7.2, "sip_timestamp": 1401716547786000000, "size": 1 } ], "status": "OK" } ``` --- ## Partners # REST ## Partners ### Analyst Details **Endpoint:** `GET /benzinga/v1/analysts` **Description:** Retrieve structured data on financial analysts, including names, affiliated firms, and historical rating activity. Each record includes performance metrics such as success rate, average return, and percentile rankings. This data provides transparency into the analysts behind equity ratings and enables deeper evaluation of their track records. Use Cases: Analyst performance tracking, research attribution, signal quality assessment. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `benzinga_id` | string | No | The identifier used by Benzinga for this record. | | `benzinga_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_id.gt` | string | No | Filter greater than the value. | | `benzinga_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_id.lt` | string | No | Filter less than the value. | | `benzinga_id.lte` | string | No | Filter less than or equal to the value. | | `benzinga_firm_id` | string | No | The unique identifier assigned by Benzinga to the research firm or investment bank. | | `benzinga_firm_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_firm_id.gt` | string | No | Filter greater than the value. | | `benzinga_firm_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_firm_id.lt` | string | No | Filter less than the value. | | `benzinga_firm_id.lte` | string | No | Filter less than or equal to the value. | | `firm_name` | string | No | The name of the research firm or investment bank issuing the ratings. | | `firm_name.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `firm_name.gt` | string | No | Filter greater than the value. | | `firm_name.gte` | string | No | Filter greater than or equal to the value. | | `firm_name.lt` | string | No | Filter less than the value. | | `firm_name.lte` | string | No | Filter less than or equal to the value. | | `full_name` | string | No | The full name of the analyst associated with the ratings. | | `full_name.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `full_name.gt` | string | No | Filter greater than the value. | | `full_name.gte` | string | No | Filter greater than or equal to the value. | | `full_name.lt` | string | No | Filter less than the value. | | `full_name.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'full_name' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].benzinga_firm_id` | string | The unique identifier assigned by Benzinga to the research firm or investment bank. | | `results[].benzinga_id` | string | The identifier used by Benzinga for this record. | | `results[].firm_name` | string | The name of the research firm or investment bank issuing the ratings. | | `results[].full_name` | string | The full name of the analyst associated with the ratings. | | `results[].last_updated` | string | The timestamp (formatted as an ISO 8601 timestamp) when the analyst record was last updated in the system. | | `results[].overall_avg_return` | number | The average percent price difference per rating since the date of recommendation. | | `results[].overall_avg_return_percentile` | number | The analyst's percentile rank based on average return, relative to other analysts. | | `results[].overall_success_rate` | number | The percentage of gain/loss ratings that resulted in a gain overall. | | `results[].smart_score` | number | A weighted average of the total_ratings_percentile, overall_avg_return_percentile, and overall_success_rate. | | `results[].total_ratings` | number | The total number of ratings issued by the analyst included in the performance calculation. | | `results[].total_ratings_percentile` | number | The analyst's percentile rank based on the total number of ratings issued, relative to other analysts. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "benzinga_firm_id": "5e17143f7da4190001b2eaa6", "benzinga_id": "65eb18289b25ca0001b34332", "firm_name": "B of A Securities", "full_name": "Alice Xiao", "last_updated": "2025-05-19T04:31:12Z", "overall_avg_return": 12.48, "overall_avg_return_percentile": 66.53, "overall_success_rate": 100, "smart_score": 67.94, "total_ratings": 4, "total_ratings_percentile": 32.17 } ], "status": "OK" } ``` --- # REST ## Partners ### Analyst Insights **Endpoint:** `GET /benzinga/v1/analyst-insights` **Description:** Retrieve insights from financial analysts, including ratings, price targets, and the rationale behind their recommendations. Each record captures key drivers such as valuation metrics, strategic initiatives, and sector positioning. This data offers a structured view of analyst sentiment over time and supports deeper analysis of company outlook and market expectations. Use Cases: Analyst sentiment tracking, investment research, valuation benchmarking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | The calendar date (formatted as YYYY-MM-DD) when the rating was issued. | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | The stock symbol of the company being rated. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `last_updated` | string | No | The timestamp (formatted as an ISO 8601 timestamp) when the rating was last updated in the system. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gt` | string | No | Filter greater than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gte` | string | No | Filter greater than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lt` | string | No | Filter less than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lte` | string | No | Filter less than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `firm` | string | No | The name of the research firm or investment bank issuing the rating. | | `firm.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `firm.gt` | string | No | Filter greater than the value. | | `firm.gte` | string | No | Filter greater than or equal to the value. | | `firm.lt` | string | No | Filter less than the value. | | `firm.lte` | string | No | Filter less than or equal to the value. | | `rating_action` | string | No | The description of the change in rating from the firm's last rating. Possible values include: downgrades, maintains, reinstates, reiterates, upgrades, assumes, initiates_coverage_on, terminates_coverage_on, removes, suspends, firm_dissolved. | | `rating_action.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `rating_action.gt` | string | No | Filter greater than the value. | | `rating_action.gte` | string | No | Filter greater than or equal to the value. | | `rating_action.lt` | string | No | Filter less than the value. | | `rating_action.lte` | string | No | Filter less than or equal to the value. | | `benzinga_firm_id` | string | No | The identifer used by Benzinga for the firm record. | | `benzinga_firm_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_firm_id.gt` | string | No | Filter greater than the value. | | `benzinga_firm_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_firm_id.lt` | string | No | Filter less than the value. | | `benzinga_firm_id.lte` | string | No | Filter less than or equal to the value. | | `benzinga_rating_id` | string | No | The identifier used by Benzinga for the rating record. | | `benzinga_rating_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_rating_id.gt` | string | No | Filter greater than the value. | | `benzinga_rating_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_rating_id.lt` | string | No | Filter less than the value. | | `benzinga_rating_id.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'last_updated' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].benzinga_firm_id` | string | The identifer used by Benzinga for the firm record. | | `results[].benzinga_id` | string | The identifer used by Benzinga for this record. | | `results[].benzinga_rating_id` | string | The identifier used by Benzinga for the rating record. | | `results[].company_name` | string | The name of the company being rated. | | `results[].date` | string | The calendar date (formatted as YYYY-MM-DD) when the rating was issued. | | `results[].firm` | string | The name of the research firm or investment bank issuing the rating. | | `results[].insight` | string | Narrative commentary or reasoning provided by the analyst or firm to explain the rating or price target. | | `results[].last_updated` | string | The timestamp (formatted as an ISO 8601 timestamp) when the rating was last updated in the system. | | `results[].price_target` | number | The current price target set by the analyst. | | `results[].rating` | string | The current rating set by the analyst. | | `results[].rating_action` | string | The description of the change in rating from the firm's last rating. Possible values include: downgrades, maintains, reinstates, reiterates, upgrades, assumes, initiates_coverage_on, terminates_coverage_on, removes, suspends, firm_dissolved. | | `results[].ticker` | string | The stock symbol of the company being rated. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "benzinga_firm_id": "606af0aa6538960001bced21", "benzinga_id": "681363c1fd0258abcbedc074", "benzinga_rating_id": "6813624c09c1f6000103ac25", "date": "2025-05-01", "firm": "Needham", "insight": "Needham maintained their Buy rating on Etsy's stock with a price target of $55.00. \n\n **Growth Initiatives and Market Penetration**: Etsy's focus on growth initiatives, including leveraging its app for a more personalized shopping experience and marketing, has been a key factor in maintaining its Buy rating. The company's ability to drive greater consideration and purchase frequency through technology and product initiatives, alongside its significant app penetration of gross merchandise sales (GMS), showcases its strong position to capture more of the consumer wallet.\n\n**Resilience Amid Economic Uncertainty**: Despite the economic uncertainty, including potential impacts from tariffs, Etsy's asset-light model and strategic focus on product enhancements position it to navigate macro headwinds effectively. The company's efforts to lean into paid social channels for marketing and its ability to adapt to changes in consumer behavior underline its resilience and potential for sustained growth, supporting the Buy rating.", "last_updated": "2025-05-01T12:06:36Z", "price_target": 55, "rating": "buy", "rating_action": "maintains" } ], "status": "OK" } ``` --- # REST ## Partners ### Analyst Ratings **Endpoint:** `GET /benzinga/v1/ratings` **Description:** Retrieve structured historical analyst ratings, including rating actions, price target changes, and firm names for publicly traded companies. Each record captures key attributes such as the rating date, action type (e.g., downgrade, maintain), and firm issuing the rating, along with optional price target changes and surprise indicators. Data can be filtered by ticker, firm, rating action, and date range. Price targets are optionally adjusted for corporate actions like splits and dividends. Records are timestamped and sortable for flexible integration into downstream applications. Use Cases: Market sentiment tracking, portfolio alerts, backtesting rating impact, trend analysis. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | The calendar date (formatted as YYYY-MM-DD) when the rating was issued. | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | The stock symbol of the company being rated. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `importance` | integer | No | A subjective indicator of the importance of the earnings event, on a scale from 0 (lowest) to 5 (highest). Value must be an integer. | | `importance.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `importance.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `importance.lt` | integer | No | Filter less than the value. Value must be an integer. | | `importance.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `last_updated` | string | No | The timestamp (formatted as an ISO 8601 timestamp) when the rating was last updated in the system. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gt` | string | No | Filter greater than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gte` | string | No | Filter greater than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lt` | string | No | Filter less than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lte` | string | No | Filter less than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `rating_action` | string | No | The description of the change in rating from the firm's last rating. Possible values include: downgrades, maintains, reinstates, reiterates, upgrades, assumes, initiates_coverage_on, terminates_coverage_on, removes, suspends, firm_dissolved. | | `rating_action.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `rating_action.gt` | string | No | Filter greater than the value. | | `rating_action.gte` | string | No | Filter greater than or equal to the value. | | `rating_action.lt` | string | No | Filter less than the value. | | `rating_action.lte` | string | No | Filter less than or equal to the value. | | `price_target_action` | string | No | The description of the directional change in price target. Possible values include: raises, lowers, maintains, announces, sets. | | `price_target_action.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `price_target_action.gt` | string | No | Filter greater than the value. | | `price_target_action.gte` | string | No | Filter greater than or equal to the value. | | `price_target_action.lt` | string | No | Filter less than the value. | | `price_target_action.lte` | string | No | Filter less than or equal to the value. | | `benzinga_id` | string | No | The identifer used by Benzinga for this record. | | `benzinga_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_id.gt` | string | No | Filter greater than the value. | | `benzinga_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_id.lt` | string | No | Filter less than the value. | | `benzinga_id.lte` | string | No | Filter less than or equal to the value. | | `benzinga_analyst_id` | string | No | The identifer used by Benzinga for this analyst. | | `benzinga_analyst_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_analyst_id.gt` | string | No | Filter greater than the value. | | `benzinga_analyst_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_analyst_id.lt` | string | No | Filter less than the value. | | `benzinga_analyst_id.lte` | string | No | Filter less than or equal to the value. | | `benzinga_firm_id` | string | No | The identifer used by Benzinga for this firm. | | `benzinga_firm_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_firm_id.gt` | string | No | Filter greater than the value. | | `benzinga_firm_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_firm_id.lt` | string | No | Filter less than the value. | | `benzinga_firm_id.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'last_updated' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].adjusted_price_target` | number | The current price target adjusted for stock splits and dividends. | | `results[].analyst` | string | The name of the individual analyst who issued the rating. | | `results[].benzinga_analyst_id` | string | The identifer used by Benzinga for this analyst. | | `results[].benzinga_calendar_url` | string | A link to the Benzinga calendar page for this ticker | | `results[].benzinga_firm_id` | string | The identifer used by Benzinga for this firm. | | `results[].benzinga_id` | string | The identifer used by Benzinga for this record. | | `results[].benzinga_news_url` | string | A link to the Benzinga articles page for this ticker | | `results[].company_name` | string | The name of the company being rated. | | `results[].currency` | string | The ISO 4217 currency code in which the price target is denominated. | | `results[].date` | string | The calendar date (formatted as YYYY-MM-DD) when the rating was issued. | | `results[].firm` | string | The name of the research firm or investment bank issuing the rating. | | `results[].importance` | integer | A subjective indicator of the importance of the earnings event, on a scale from 0 (lowest) to 5 (highest). | | `results[].last_updated` | string | The timestamp (formatted as an ISO 8601 timestamp) when the rating was last updated in the system. | | `results[].notes` | string | Additional context or commentary. | | `results[].previous_adjusted_price_target` | number | The previous price target adjusted for stock splits and dividends. | | `results[].previous_price_target` | number | The previous price target set by the analyst. | | `results[].previous_rating` | string | The previous rating set by the analyst. | | `results[].price_percent_change` | number | The percentage change in price target if price target and previous price target exists | | `results[].price_target` | number | The current price target set by the analyst. | | `results[].price_target_action` | string | The description of the directional change in price target. Possible values include: raises, lowers, maintains, announces, sets. | | `results[].rating` | string | The current rating set by the analyst. | | `results[].rating_action` | string | The description of the change in rating from the firm's last rating. Possible values include: downgrades, maintains, reinstates, reiterates, upgrades, assumes, initiates_coverage_on, terminates_coverage_on, removes, suspends, firm_dissolved. | | `results[].ticker` | string | The stock symbol of the company being rated. | | `results[].time` | string | The time (formatted as 24-hour HH:MM:SS UTC) when the rating was issued. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "adjusted_price_target": 15, "analyst": "Alexander Potter", "benzinga_analyst_id": "58933b2043eaaa0001698f4a", "benzinga_calendar_url": "https://www.benzinga.com/quote/RIVN/analyst-ratings", "benzinga_firm_id": "5e147c6b7da4190001b287b4", "benzinga_id": "682f29b0e5343b000100a619", "benzinga_news_url": "https://www.benzinga.com/stock-articles/RIVN/analyst-ratings", "company_name": "Rivian Automotive", "currency": "USD", "date": "2025-05-22", "firm": "Piper Sandler", "importance": 0, "last_updated": "2025-05-22T13:42:30Z", "previous_adjusted_price_target": 13, "previous_price_target": 13, "previous_rating": "neutral", "price_percent_change": 15.38, "price_target": 15, "price_target_action": "raises", "rating": "neutral", "rating_action": "maintains", "ticker": "RIVN", "time": "09:42:08" } ], "status": "OK" } ``` --- # REST ## Partners ### Bulls Bears Say **Endpoint:** `GET /benzinga/v1/bulls-bears-say` **Description:** A comprehensive database of analyst bull and bear case summaries for publicly traded companies, providing concise summaries of both bullish and bearish investment arguments to help investors see both sides of the story before making investment decisions. Each entry includes the key points for and against investing in a particular stock. Use Cases: Investment research, sentiment analysis, due diligence, portfolio evaluation, risk assessment. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | The stock ticker symbol for the company associated with the bull and bear case summaries. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `benzinga_id` | string | No | The unique identifier used by Benzinga for this bull/bear case record. | | `benzinga_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_id.gt` | string | No | Filter greater than the value. | | `benzinga_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_id.lt` | string | No | Filter less than the value. | | `benzinga_id.lte` | string | No | Filter less than or equal to the value. | | `last_updated` | string | No | The timestamp (formatted as an ISO 8601 timestamp) when the bull/bear case was last updated in the system. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gt` | string | No | Filter greater than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gte` | string | No | Filter greater than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lt` | string | No | Filter less than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lte` | string | No | Filter less than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].bear_case` | string | A concise summary of the bearish investment thesis, highlighting potential risks, challenges, and reasons why the stock could decline in value. | | `results[].benzinga_id` | string | The unique identifier used by Benzinga for this bull/bear case record. | | `results[].bull_case` | string | A concise summary of the bullish investment thesis, highlighting positive aspects, growth opportunities, and reasons why the stock could appreciate in value. | | `results[].last_updated` | string | The timestamp (formatted as an ISO 8601 timestamp) when the bull/bear case was last updated in the system. | | `results[].ticker` | string | The stock ticker symbol for the company associated with the bull and bear case summaries. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "bear_case": "Apple faces increasing regulatory scrutiny globally, potential market saturation in core iPhone markets, and intense competition in emerging categories. Supply chain vulnerabilities and dependence on China for manufacturing pose significant risks, while slowing innovation cycles could impact premium pricing.", "benzinga_id": "550e8400-e29b-41d4-a716-446655440000", "bull_case": "Apple's strong ecosystem integration, loyal customer base, and continued innovation in services and hardware drive sustainable revenue growth. The company's expanding services segment provides high-margin recurring revenue, while its brand strength and pricing power maintain premium market positioning.", "last_updated": "2025-12-16T10:30:00Z", "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Partners ### Consensus Ratings **Endpoint:** `GET /benzinga/v1/consensus-ratings/{ticker}` **Description:** Retrieve consensus ratings from financial analysts, including aggregated rating distributions and price target ranges. Each record reflects the collective outlook for a security, summarizing sentiment across firms and analysts. This dataset supports trend analysis and offers a high-level view of market expectations. Use Cases: Sentiment aggregation, investment research, peer comparison. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | The date range to aggregate analyst ratings over. For example, date.gte=2024-10-01 and date.lt=2025-01-01 for ratings published in Q4 2024. By default, all ratings are aggregated regardless of date. | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `ticker` | string | Yes | The requested ticker. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].buy_ratings` | integer | The count of 'Buy' ratings from contributing analysts. | | `results[].consensus_price_target` | number | The average price target across all analysts, rounded to 2 decimal places. | | `results[].consensus_rating` | string | The overall rating category determined by the average consensus weight. Possible values: 'strong_buy', 'buy', 'hold', 'sell', 'strong_sell'. | | `results[].consensus_rating_value` | number | The numerical average of all consensus weights, rounded to 2 decimal places. Scale ranges from 1 (Strong Sell) to 5 (Strong Buy). | | `results[].high_price_target` | number | The highest price target among all contributing analysts. | | `results[].hold_ratings` | integer | The count of 'Hold' ratings from contributing analysts. | | `results[].low_price_target` | number | The lowest price target among all contributing analysts. | | `results[].price_target_contributors` | integer | The number of unique analysts contributing price targets. | | `results[].ratings_contributors` | integer | The number of unique analysts contributing to the overall ratings consensus. | | `results[].sell_ratings` | integer | The count of 'Sell' ratings from contributing analysts. | | `results[].strong_buy_ratings` | integer | The count of 'Strong Buy' ratings from contributing analysts. | | `results[].strong_sell_ratings` | integer | The count of 'Strong Sell' ratings from contributing analysts. | | `results[].ticker` | string | The requested ticker. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "buy_ratings": 6, "consensus_price_target": 23.28, "consensus_rating": "hold", "consensus_rating_value": 4.14, "high_price_target": 32.14, "hold_ratings": 3, "low_price_target": 6.34, "price_target_contributors": 15, "ratings_contributors": 14, "sell_ratings": 0, "strong_buy_ratings": 5, "strong_sell_ratings": 0, "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Partners ### Corporate Guidance **Endpoint:** `GET /benzinga/v1/guidance` **Description:** Retrieve structured earnings guidance data, including projected EPS and revenue figures, from public company disclosures. Each record includes key attributes such as the guidance date, fiscal period, and release type, with prior guidance values included when available. Data can be filtered by ticker, fiscal period, and date range. Guidance records are timestamped and sortable for flexible integration into downstream applications. Use Cases: Market sentiment analysis, investment strategy development, financial modeling. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | The calendar date (formatted as YYYY-MM-DD) when the guidance was issued. | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | The stock symbol of the company issuing guidance. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `positioning` | string | No | Indicates how a particular guidance value is presented relative to other figures disclosed by the company. Possible values are 'primary' (the emphasized figure) and 'secondary' (a supporting or alternate figure) | | `positioning.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `positioning.gt` | string | No | Filter greater than the value. | | `positioning.gte` | string | No | Filter greater than or equal to the value. | | `positioning.lt` | string | No | Filter less than the value. | | `positioning.lte` | string | No | Filter less than or equal to the value. | | `importance` | integer | No | A subjective indicator of the importance of the event, on a scale from 0 (lowest) to 5 (highest). Value must be an integer. | | `importance.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be an integer. | | `importance.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `importance.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `importance.lt` | integer | No | Filter less than the value. Value must be an integer. | | `importance.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `last_updated` | string | No | The timestamp (formatted as an ISO 8601 timestamp) when the record was last updated in the system. | | `last_updated.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `last_updated.gt` | string | No | Filter greater than the value. | | `last_updated.gte` | string | No | Filter greater than or equal to the value. | | `last_updated.lt` | string | No | Filter less than the value. | | `last_updated.lte` | string | No | Filter less than or equal to the value. | | `fiscal_year` | integer | No | The fiscal year corresponding to the period for which the guidance is issued. Value must be an integer. | | `fiscal_year.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be an integer. | | `fiscal_year.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `fiscal_year.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `fiscal_year.lt` | integer | No | Filter less than the value. Value must be an integer. | | `fiscal_year.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `fiscal_period` | string | No | The fiscal quarter to which the guidance applies, such as Q1, Q2, Q3, or Q4. | | `fiscal_period.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `fiscal_period.gt` | string | No | Filter greater than the value. | | `fiscal_period.gte` | string | No | Filter greater than or equal to the value. | | `fiscal_period.lt` | string | No | Filter less than the value. | | `fiscal_period.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].benzinga_id` | string | A unique identifier assigned by Benzinga to the guidance record. | | `results[].company_name` | string | The name of the company issuing guidance. | | `results[].currency` | string | The ISO 4217 code representing the currency in which the company issued its guidance figures. | | `results[].date` | string | The calendar date (formatted as YYYY-MM-DD) when the guidance was issued. | | `results[].eps_method` | string | The methodology of the EPS figure. Possible values are gaap (standardized financials under Generally Accepted Accounting Principles), ffo (Funds From Operations, a non-GAAP metric commonly used to assess the operating performance of REITs), and adj (adjusted, non-GAAP). | | `results[].estimated_eps_guidance` | number | The midpoint or central earnings per share (EPS) value the company expects for the given fiscal period. | | `results[].estimated_revenue_guidance` | number | The midpoint or central revenue figure the company expects for the given fiscal period. | | `results[].fiscal_period` | string | The fiscal quarter to which the guidance applies, such as Q1, Q2, Q3, or Q4. | | `results[].fiscal_year` | integer | The fiscal year corresponding to the period for which the guidance is issued. | | `results[].importance` | integer | A subjective indicator of the importance of the event, on a scale from 0 (lowest) to 5 (highest). | | `results[].last_updated` | string | The timestamp (formatted as an ISO 8601 timestamp) when the record was last updated in the system. | | `results[].max_eps_guidance` | number | The highest EPS value the company expects for the fiscal period if a range was provided. | | `results[].max_revenue_guidance` | number | The highest revenue figure the company expects for the fiscal period if a range was provided. | | `results[].min_eps_guidance` | number | The lowest EPS value the company expects for the fiscal period if a range was provided. | | `results[].min_revenue_guidance` | number | The lowest revenue figure the company expects for the fiscal period if a range was provided. | | `results[].notes` | string | Additional descriptive text or commentary provided about the guidance record. | | `results[].positioning` | string | Indicates how a particular guidance value is presented relative to other figures disclosed by the company. Possible values are 'primary' (the emphasized figure) and 'secondary' (a supporting or alternate figure) | | `results[].previous_max_eps_guidance` | number | The highest EPS value issued in a previous guidance record for the same fiscal period. | | `results[].previous_max_revenue_guidance` | number | The highest revenue value issued in a previous guidance record for the same fiscal period. | | `results[].previous_min_eps_guidance` | number | The lowest EPS value issued in a previous guidance record for the same fiscal period. | | `results[].previous_min_revenue_guidance` | number | The lowest revenue value issued in a previous guidance record for the same fiscal period. | | `results[].release_type` | string | Indicates whether the guidance was issued as part of a scheduled earnings release ('official') or as an unscheduled update ('preliminary'). | | `results[].revenue_method` | string | The methodology of the revenue figure. Possible values are gaap (standardized financials under Generally Accepted Accounting Principles) and adj (adjusted, non-GAAP). | | `results[].ticker` | string | The stock symbol of the company issuing guidance. | | `results[].time` | string | The time of day the guidance was announced, in HH:mm:ss format. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "benzinga_id": "682b28a9c068240001a9fded", "company_name": "Bath & Body Works", "currency": "USD", "date": "2025-05-19", "eps_method": "adj", "estimated_eps_guidance": 3.52, "estimated_revenue_guidance": 7470000000, "fiscal_period": "FY", "fiscal_year": 2025, "importance": 3, "last_updated": "2025-05-19T12:54:04Z", "max_eps_guidance": 3.6, "max_revenue_guidance": 7526000000, "min_eps_guidance": 3.25, "min_revenue_guidance": 7380000000, "notes": "Revenue for 2025 FY is expected to up by 1 to 3% YoY from $7.307B", "positioning": "primary", "previous_max_eps_guidance": 3.6, "previous_max_revenue_guidance": 7526000000, "previous_min_eps_guidance": 3.25, "previous_min_revenue_guidance": 7380000000, "release_type": "preliminary", "revenue_method": "gaap", "ticker": "BBWI", "time": "08:30:00" } ], "status": "OK" } ``` --- # REST ## Partners ### Earnings **Endpoint:** `GET /benzinga/v1/earnings` **Description:** Retrieve structured historical and upcoming earnings announcements for publicly traded companies, including key metrics such as earnings per share (EPS), revenue, and analyst estimates. Each record includes reported values, estimated figures, and surprise metrics, with optional context like fiscal period, confirmation status, and event importance. Data is timestamped, filterable by ticker and date, and includes both the actual and prior-period values. This endpoint provides clean, developer-friendly access to earnings events for use in analytics, automation, or investor tools. Use Cases: Earnings calendar tracking, financial modeling, event-driven alerts, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | The calendar date (formatted as YYYY-MM-DD) when the earnings are scheduled or were reported. | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | The stock symbol of the company reporting earnings. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `importance` | integer | No | A subjective indicator of the importance of the event, on a scale from 0 (lowest) to 5 (highest). Value must be an integer. | | `importance.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be an integer. | | `importance.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `importance.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `importance.lt` | integer | No | Filter less than the value. Value must be an integer. | | `importance.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `last_updated` | string | No | The timestamp (formatted as an ISO 8601 timestamp) when the record was last updated in the system. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gt` | string | No | Filter greater than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.gte` | string | No | Filter greater than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lt` | string | No | Filter less than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `last_updated.lte` | string | No | Filter less than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `date_status` | string | No | Indicates whether the date of the earnings report has been confirmed. Possible values include: projected, confirmed. | | `date_status.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date_status.gt` | string | No | Filter greater than the value. | | `date_status.gte` | string | No | Filter greater than or equal to the value. | | `date_status.lt` | string | No | Filter less than the value. | | `date_status.lte` | string | No | Filter less than or equal to the value. | | `eps_surprise_percent` | number | No | The percentage difference between the actual and estimated EPS. Value must be a floating point number. | | `eps_surprise_percent.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be a floating point number. | | `eps_surprise_percent.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `eps_surprise_percent.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `eps_surprise_percent.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `eps_surprise_percent.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `revenue_surprise_percent` | number | No | The percentage difference between the actual and estimated revenue. Value must be a floating point number. | | `revenue_surprise_percent.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be a floating point number. | | `revenue_surprise_percent.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `revenue_surprise_percent.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `revenue_surprise_percent.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `revenue_surprise_percent.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `fiscal_year` | integer | No | The fiscal year in which the earnings period falls. Value must be an integer. | | `fiscal_year.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be an integer. | | `fiscal_year.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `fiscal_year.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `fiscal_year.lt` | integer | No | Filter less than the value. Value must be an integer. | | `fiscal_year.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `fiscal_period` | string | No | The fiscal period for which the earnings are reported. Examples include: Q1, Q2, H1, FY. | | `fiscal_period.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `fiscal_period.gt` | string | No | Filter greater than the value. | | `fiscal_period.gte` | string | No | Filter greater than or equal to the value. | | `fiscal_period.lt` | string | No | Filter less than the value. | | `fiscal_period.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'last_updated' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].actual_eps` | number | The actual earnings per share (EPS) reported by the company for the given period. | | `results[].actual_revenue` | number | The actual revenue reported by the company for the given fiscal period. | | `results[].benzinga_id` | string | The identifer used by Benzinga for this record. | | `results[].company_name` | string | The name of the company releasing earnings. | | `results[].currency` | string | The ISO 4217 currency code indicating the denomination in which the figures are reported. | | `results[].date` | string | The calendar date (formatted as YYYY-MM-DD) when the earnings are scheduled or were reported. | | `results[].date_status` | string | Indicates whether the date of the earnings report has been confirmed. Possible values include: projected, confirmed. | | `results[].eps_method` | string | The methodology of the EPS figure. Possible values are gaap (standardized financials under Generally Accepted Accounting Principles), ffo (Funds From Operations, a non-GAAP metric commonly used to assess the operating performance of REITs), and adj (adjusted, non-GAAP). | | `results[].eps_surprise` | number | The difference between the actual and estimated EPS. | | `results[].eps_surprise_percent` | number | The percentage difference between the actual and estimated EPS. | | `results[].estimated_eps` | number | The analyst consensus estimate for earnings per share (EPS) for the given period. | | `results[].estimated_revenue` | number | The analyst consensus estimate for the company's revenue in the given period. | | `results[].fiscal_period` | string | The fiscal period for which the earnings are reported. Examples include: Q1, Q2, H1, FY. | | `results[].fiscal_year` | integer | The fiscal year in which the earnings period falls. | | `results[].importance` | integer | A subjective indicator of the importance of the event, on a scale from 0 (lowest) to 5 (highest). | | `results[].last_updated` | string | The timestamp (formatted as an ISO 8601 timestamp) when the record was last updated in the system. | | `results[].notes` | string | Additional context, commentary, or clarifying notes related to the earnings event. | | `results[].previous_eps` | number | The company's reported earnings per share (EPS) for the previous comparable period. | | `results[].previous_revenue` | number | The company's revenue for the previous comparable fiscal period. | | `results[].revenue_method` | string | The methodology of the revenue figure. Possible values are gaap (standardized financials under Generally Accepted Accounting Principles), adj (adjusted, non-GAAP figures that exclude certain items like one-time charges or divestitures), and rental (revenue specifically derived from rental operations, typically used by REITs, leasing companies, or businesses with a rental-based model). | | `results[].revenue_surprise` | number | The difference between the actual and estimated revenue. | | `results[].revenue_surprise_percent` | number | The percentage difference between the actual and estimated revenue. | | `results[].ticker` | string | The stock symbol of the company reporting earnings. | | `results[].time` | string | The time (formatted as 24-hour HH:MM:SS EST) when the earnings are scheduled or were reported. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "actual_eps": -0.19, "actual_revenue": 17566000, "benzinga_id": "651bcd8d7e4d6000011f2232", "company_name": "Guardforce AI Co", "currency": "USD", "date": "2029-09-24", "date_status": "confirmed", "eps_method": "GAAP", "fiscal_period": "H1", "fiscal_year": 2024, "importance": 1, "last_updated": "2025-01-07T10:19:50Z", "previous_eps": -0.75, "previous_revenue": 18413292, "revenue_method": "GAAP", "ticker": "GFAI", "time": "07:00:00" } ], "status": "OK" } ``` --- # REST ## Partners ### Firm Details **Endpoint:** `GET /benzinga/v1/firms` **Description:** Retrieve structured data on analyst firms, including firm names and identifiers. Each record can be linked to associated analysts and ratings to provide context around the sources of equity research. This dataset helps map coverage across institutions and supports analysis of firm-level activity in the market. Use Cases: Research coverage mapping, institutional analysis, source attribution. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `benzinga_id` | string | No | The identifer used by Benzinga for this record. | | `benzinga_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `benzinga_id.gt` | string | No | Filter greater than the value. | | `benzinga_id.gte` | string | No | Filter greater than or equal to the value. | | `benzinga_id.lt` | string | No | Filter less than the value. | | `benzinga_id.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'name' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].benzinga_id` | string | The identifer used by Benzinga for this record. | | `results[].currency` | string | Primary currency used by the financial firm, with some entries having null values. | | `results[].last_updated` | string | Timestamp indicating when the firm's information was last modified or verified in the database. | | `results[].name` | string | The name of a research firm or investment bank which issues ratings. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "benzinga_id": "5e147c6b7da4190001b287b4", "currency": "USD", "last_updated": "2020-01-07T12:41:25Z", "name": "Piper Sandler" } ], "status": "OK" } ``` --- # REST ## Partners ### Real-time Benzinga News **Endpoint:** `GET /benzinga/v2/news` **Description:** Retrieve real-time structured, timestamped news articles from Benzinga, including headlines, full-text content, tickers, categories, and more. Each article entry contains metadata such as author, publication time, and topic channels, as well as optional elements like teaser summaries, article body text, and images. Some headline-only articles are included for faster delivery of time-sensitive market news. Articles can be filtered by ticker and time, and are returned in a consistent format for easy parsing and integration. This endpoint is ideal for building alerting systems, autonomous risk analysis, and sentiment-driven trading strategies. Use Cases: Market news feeds, alerting systems, portfolio monitoring, dashboards. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `published` | string | No | The timestamp (formatted as an ISO 8601 timestamp) when the news article was originally published. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `published.gt` | string | No | Filter greater than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `published.gte` | string | No | Filter greater than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `published.lt` | string | No | Filter less than the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `published.lte` | string | No | Filter less than or equal to the value. Value must be an integer timestamp in seconds, formatted 'yyyy-mm-dd', or ISO 8601/RFC 3339 (e.g. '2024-05-28T20:27:41Z'). | | `channels` | string | No | Filter for arrays that contain the value. | | `channels.all_of` | string | No | Filter for arrays that contain all of the values. Multiple values can be specified by using a comma separated list. | | `channels.any_of` | string | No | Filter for arrays that contain any of the values. Multiple values can be specified by using a comma separated list. | | `tags` | string | No | Filter for arrays that contain the value. | | `tags.all_of` | string | No | Filter for arrays that contain all of the values. Multiple values can be specified by using a comma separated list. | | `tags.any_of` | string | No | Filter for arrays that contain any of the values. Multiple values can be specified by using a comma separated list. | | `author` | string | No | The name of the journalist or entity that authored the news article. | | `author.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `author.gt` | string | No | Filter greater than the value. | | `author.gte` | string | No | Filter greater than or equal to the value. | | `author.lt` | string | No | Filter less than the value. | | `author.lte` | string | No | Filter less than or equal to the value. | | `stocks` | string | No | Filter for arrays that contain the value. | | `stocks.all_of` | string | No | Filter for arrays that contain all of the values. Multiple values can be specified by using a comma separated list. | | `stocks.any_of` | string | No | Filter for arrays that contain any of the values. Multiple values can be specified by using a comma separated list. | | `tickers` | string | No | Filter for arrays that contain the value. | | `tickers.all_of` | string | No | Filter for arrays that contain all of the values. Multiple values can be specified by using a comma separated list. | | `tickers.any_of` | string | No | Filter for arrays that contain any of the values. Multiple values can be specified by using a comma separated list. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'published' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].author` | string | The name of the journalist or entity that authored the news article. | | `results[].benzinga_id` | integer | The identifer used by Benzinga for this record. | | `results[].body` | string | The full text content of the news article. | | `results[].channels` | array[string] | A list of categories or topics that the article belongs to (e.g., 'News', 'Price Target'). | | `results[].images` | array[string] | A list of images associated with the article. | | `results[].last_updated` | string | The timestamp (formatted as an ISO 8601 timestamp) when the news article was last updated in the system. | | `results[].published` | string | The timestamp (formatted as an ISO 8601 timestamp) when the news article was originally published. | | `results[].tags` | array[string] | A list of tags that describe the themes or content of the article. | | `results[].teaser` | string | A short summary or lead-in to the news article's content. | | `results[].tickers` | array[string] | A list of stock or crypto tickers mentioned in the article. | | `results[].title` | string | The headline of the news article. | | `results[].url` | string | The direct link to the source of the news article. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "author": "Adam Eckert", "benzinga_id": 39046904, "body": "
CAVA Group Inc (NYSE:CAVA) reported financial results for the first quarter of fiscal 2024 after market close on Tuesday. Here’s a look at the key metrics from the quarter.
", "channels": [ "earnings", "news", "restaurants", "after-hours center", "movers" ], "images": [ "https://cdn.benzinga.com/files/imagecache/250x187xUP/images/story/2024/05/28/CAVA-group.jpeg", "https://cdn.benzinga.com/files/imagecache/1024x768xUP/images/story/2024/05/28/CAVA-group.jpeg", "https://cdn.benzinga.com/files/imagecache/2048x1536xUP/images/story/2024/05/28/CAVA-group.jpeg" ], "last_updated": "2024-05-28T20:27:42Z", "published": "2024-05-28T20:27:41Z", "tags": [ "why it's moving" ], "teaser": "Cava's first-quarter revenue increased 30.3% year-over-year to $256.3 million, which beat the consensus estimate of $245.935 million, according to Benzinga Pro.", "tickers": [ "CAVA" ], "title": "Cava Group Q1 Earnings: Revenue Beat, EPS Beat, Guidance Raise, Continued Investments In Scalable Infrastructure And More", "url": "https://www.benzinga.com/news/earnings/24/05/39046904/cava-group-q1-earnings-revenue-beat-eps-beat-guidance-raise-continued-investments-in-scalable-infra" } ], "status": "OK" } ``` --- # REST ## Partners ### ETF Analytics **Endpoint:** `GET /etf-global/v1/analytics` **Description:** Retrieve analytical metrics and calculated insights for global ETFs including performance data, risk measures, and derived analytics. Use Cases: ETF performance evaluation, risk-reward assessment, quantitative screening, portfolio optimization and selection. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `composite_ticker` | string | No | The stock ticker symbol used to identify this ETF product on exchanges. | | `composite_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `composite_ticker.gt` | string | No | Filter greater than the value. | | `composite_ticker.gte` | string | No | Filter greater than or equal to the value. | | `composite_ticker.lt` | string | No | Filter less than the value. | | `composite_ticker.lte` | string | No | Filter less than or equal to the value. | | `processed_date` | string | No | The date showing when ETF Global received and processed the data. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date` | string | No | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `risk_total_score` | number | No | ETF Global's proprietary Red Diamond overall risk assessment score for the ETF. Value must be a floating point number. | | `risk_total_score.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `risk_total_score.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `risk_total_score.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `risk_total_score.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `reward_score` | number | No | ETF Global's proprietary Green Diamond score measuring the potential reward and return prospects of the ETF. Value must be a floating point number. | | `reward_score.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `reward_score.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `reward_score.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `reward_score.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quant_total_score` | number | No | ETF Global's comprehensive quantitative analysis score combining all quantitative factors. Value must be a floating point number. | | `quant_total_score.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quant_total_score.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quant_total_score.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quant_total_score.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quant_grade` | string | No | Letter grade summarizing the ETF's overall quantitative assessment, where A = 71-100, B = 56-70, etc. | | `quant_grade.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `quant_grade.gt` | string | No | Filter greater than the value. | | `quant_grade.gte` | string | No | Filter greater than or equal to the value. | | `quant_grade.lt` | string | No | Filter less than the value. | | `quant_grade.lte` | string | No | Filter less than or equal to the value. | | `quant_composite_technical` | number | No | Combined technical analysis score aggregating short, intermediate, and long-term technical factors. Value must be a floating point number. | | `quant_composite_technical.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quant_composite_technical.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quant_composite_technical.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quant_composite_technical.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quant_composite_sentiment` | number | No | Overall market sentiment score combining put/call ratios, short interest, and implied volatility. Value must be a floating point number. | | `quant_composite_sentiment.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quant_composite_sentiment.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quant_composite_sentiment.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quant_composite_sentiment.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quant_composite_behavioral` | number | No | Behavioral analysis score measuring investor psychology and market behavior patterns. Value must be a floating point number. | | `quant_composite_behavioral.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quant_composite_behavioral.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quant_composite_behavioral.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quant_composite_behavioral.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quant_composite_fundamental` | number | No | Overall fundamental analysis score combining P/E, P/CF, P/B, and dividend yield metrics. Value must be a floating point number. | | `quant_composite_fundamental.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quant_composite_fundamental.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quant_composite_fundamental.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quant_composite_fundamental.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quant_composite_global` | number | No | Overall global theme score combining sector and country analysis for macro investment views. Value must be a floating point number. | | `quant_composite_global.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quant_composite_global.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quant_composite_global.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quant_composite_global.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quant_composite_quality` | number | No | Overall quality assessment score combining liquidity, diversification, and issuing firm factors. Value must be a floating point number. | | `quant_composite_quality.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quant_composite_quality.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quant_composite_quality.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quant_composite_quality.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'composite_ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].composite_ticker` | string | The stock ticker symbol used to identify this ETF product on exchanges. | | `results[].effective_date` | string | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. | | `results[].processed_date` | string | The date showing when ETF Global received and processed the data. | | `results[].quant_composite_behavioral` | number | Behavioral analysis score measuring investor psychology and market behavior patterns. | | `results[].quant_composite_fundamental` | number | Overall fundamental analysis score combining P/E, P/CF, P/B, and dividend yield metrics. | | `results[].quant_composite_global` | number | Overall global theme score combining sector and country analysis for macro investment views. | | `results[].quant_composite_quality` | number | Overall quality assessment score combining liquidity, diversification, and issuing firm factors. | | `results[].quant_composite_sentiment` | number | Overall market sentiment score combining put/call ratios, short interest, and implied volatility. | | `results[].quant_composite_technical` | number | Combined technical analysis score aggregating short, intermediate, and long-term technical factors. | | `results[].quant_fundamental_div` | number | Fundamental analysis score based on dividend yields of the ETF's underlying securities. | | `results[].quant_fundamental_pb` | number | Fundamental analysis score based on price-to-book value ratios of the ETF's holdings. | | `results[].quant_fundamental_pcf` | number | Fundamental analysis score based on price-to-cash-flow ratios of the ETF's underlying assets. | | `results[].quant_fundamental_pe` | number | Fundamental analysis score based on price-to-earnings ratios of the ETF's underlying holdings. | | `results[].quant_global_country` | number | Quantitative score analyzing global country themes and country-specific market factors. | | `results[].quant_global_sector` | number | Quantitative score analyzing global sector themes and sector-specific performance factors. | | `results[].quant_grade` | string | Letter grade summarizing the ETF's overall quantitative assessment, where A = 71-100, B = 56-70, etc. | | `results[].quant_quality_diversification` | number | Quality assessment score evaluating the diversification benefits and risk distribution of the ETF. | | `results[].quant_quality_firm` | number | Quality assessment score evaluating the reputation and capabilities of the ETF's issuing firm. | | `results[].quant_quality_liquidity` | number | Quality assessment score measuring the liquidity characteristics and trading ease of the ETF. | | `results[].quant_sentiment_iv` | number | Market sentiment score derived from implied volatility levels in options markets. | | `results[].quant_sentiment_pc` | number | Market sentiment score derived from put/call option ratios and options activity. | | `results[].quant_sentiment_si` | number | Market sentiment score based on short interest levels and short selling activity. | | `results[].quant_technical_it` | number | Intermediate-term technical analysis score evaluating medium-term price trends. | | `results[].quant_technical_lt` | number | Long-term technical analysis score assessing extended price trend patterns. | | `results[].quant_technical_st` | number | Short-term technical analysis score based on recent price movements and trading patterns. | | `results[].quant_total_score` | number | ETF Global's comprehensive quantitative analysis score combining all quantitative factors. | | `results[].reward_score` | number | ETF Global's proprietary Green Diamond score measuring the potential reward and return prospects of the ETF. | | `results[].risk_country` | number | A component score assessing country-specific risks based on the ETF's geographic exposure. | | `results[].risk_deviation` | number | A component score measuring how much the ETF deviates from expected performance. | | `results[].risk_efficiency` | number | A component score assessing the operational efficiency and cost-effectiveness of the ETF. | | `results[].risk_liquidity` | number | A component score measuring the liquidity risk and ease of trading the ETF. | | `results[].risk_structure` | number | A component score evaluating risks related to the ETF's structural design and mechanics. | | `results[].risk_total_score` | number | ETF Global's proprietary Red Diamond overall risk assessment score for the ETF. | | `results[].risk_volatility` | number | A component score measuring the volatility risk of the ETF's price movements. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "composite_ticker": "SPY", "effective_date": "2025-09-19", "processed_date": "2025-09-19", "quant_composite_behavioral": 67.1535, "quant_composite_fundamental": 1.2, "quant_composite_global": 52.9, "quant_composite_quality": 75.9, "quant_composite_sentiment": 54.6, "quant_composite_technical": 79.7, "quant_fundamental_div": 4.7, "quant_fundamental_pb": 0, "quant_fundamental_pcf": 0, "quant_fundamental_pe": 0, "quant_global_country": 85.4, "quant_global_sector": 20.4, "quant_grade": "D", "quant_quality_diversification": 29.3, "quant_quality_firm": 98.3, "quant_quality_liquidity": 100, "quant_sentiment_iv": 23, "quant_sentiment_pc": 88.9, "quant_sentiment_si": 51.6, "quant_technical_it": 79, "quant_technical_lt": 78.7, "quant_technical_st": 83.1, "quant_total_score": 40.2, "reward_score": 3.12, "risk_country": 1.46, "risk_deviation": 7.68, "risk_efficiency": 1.85, "risk_liquidity": 2.5, "risk_structure": 2.37, "risk_total_score": 9.22, "risk_volatility": 4.66 } ], "status": "OK" } ``` --- # REST ## Partners ### ETF Constituents **Endpoint:** `GET /etf-global/v1/constituents` **Description:** Access the underlying holdings and constituents of global ETFs. Get detailed information about what securities ETFs hold, providing transparency into fund composition and investment exposure. Use Cases: ETF portfolio transparency, holdings replication, exposure and risk analysis, fund comparison and benchmarking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `composite_ticker` | string | No | The stock ticker symbol of the ETF that holds these constituent securities. | | `composite_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `composite_ticker.gt` | string | No | Filter greater than the value. | | `composite_ticker.gte` | string | No | Filter greater than or equal to the value. | | `composite_ticker.lt` | string | No | Filter less than the value. | | `composite_ticker.lte` | string | No | Filter less than or equal to the value. | | `constituent_ticker` | string | No | The stock ticker symbol of the individual security held within the ETF. | | `constituent_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `constituent_ticker.gt` | string | No | Filter greater than the value. | | `constituent_ticker.gte` | string | No | Filter greater than or equal to the value. | | `constituent_ticker.lt` | string | No | Filter less than the value. | | `constituent_ticker.lte` | string | No | Filter less than or equal to the value. | | `effective_date` | string | No | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date` | string | No | The date showing when ETF Global received and processed the data. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `us_code` | string | No | A unique identifier code for the constituent security in US markets. | | `us_code.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `us_code.gt` | string | No | Filter greater than the value. | | `us_code.gte` | string | No | Filter greater than or equal to the value. | | `us_code.lt` | string | No | Filter less than the value. | | `us_code.lte` | string | No | Filter less than or equal to the value. | | `isin` | string | No | The International Securities Identification Number, a global standard for identifying securities. | | `isin.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `isin.gt` | string | No | Filter greater than the value. | | `isin.gte` | string | No | Filter greater than or equal to the value. | | `isin.lt` | string | No | Filter less than the value. | | `isin.lte` | string | No | Filter less than or equal to the value. | | `figi` | string | No | The Financial Instrument Global Identifier, an open standard for uniquely identifying financial instruments. | | `figi.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `figi.gt` | string | No | Filter greater than the value. | | `figi.gte` | string | No | Filter greater than or equal to the value. | | `figi.lt` | string | No | Filter less than the value. | | `figi.lte` | string | No | Filter less than or equal to the value. | | `sedol` | string | No | The Stock Exchange Daily Official List code, primarily used for securities trading in the UK. | | `sedol.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `sedol.gt` | string | No | Filter greater than the value. | | `sedol.gte` | string | No | Filter greater than or equal to the value. | | `sedol.lt` | string | No | Filter less than the value. | | `sedol.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'composite_ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].asset_class` | string | The broad category of asset type, such as Equity, Corporate Bond, Municipal Bond, etc. | | `results[].composite_ticker` | string | The stock ticker symbol of the ETF that holds these constituent securities. | | `results[].constituent_name` | string | The full company or security name of the constituent holding. | | `results[].constituent_rank` | integer | The rank of this constituent within the ETF for a given effective_date, ordered by weight (descending), market_value (descending), and constituent_ticker (ascending). A rank of 1 indicates the largest holding. | | `results[].constituent_ticker` | string | The stock ticker symbol of the individual security held within the ETF. | | `results[].country_of_exchange` | string | The country where the exchange that lists this constituent security is located. | | `results[].currency_traded` | string | The local currency in which this constituent security is denominated and traded. | | `results[].effective_date` | string | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. | | `results[].exchange` | string | The name of the stock exchange where this constituent security is primarily traded. | | `results[].figi` | string | The Financial Instrument Global Identifier, an open standard for uniquely identifying financial instruments. | | `results[].isin` | string | The International Securities Identification Number, a global standard for identifying securities. | | `results[].market_value` | number | The total market value of this constituent position held by the ETF. | | `results[].processed_date` | string | The date showing when ETF Global received and processed the data. | | `results[].security_type` | string | The specific classification of security type using ETF Global's taxonomy, such as Common Equity, Domestic, Global, etc. | | `results[].sedol` | string | The Stock Exchange Daily Official List code, primarily used for securities trading in the UK. | | `results[].shares_held` | number | The number of shares of this constituent security that the ETF currently owns. | | `results[].us_code` | string | A unique identifier code for the constituent security in US markets. | | `results[].weight` | number | The percentage weight of this constituent security within the ETF's total portfolio. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "asset_class": "Equity", "composite_ticker": "SPY", "constituent_name": "CAESARS ENTERTAINMENT INC COMMON STOCK", "constituent_rank": 42, "constituent_ticker": "CZR", "country_of_exchange": "US", "currency_traded": "USD", "effective_date": "2025-09-18", "figi": "BBG0074Q3NK6", "isin": "US12769G1004", "market_value": 63308625.6, "processed_date": "2025-09-19", "security_type": "Common Stock", "sedol": "BMWWGB0", "shares_held": 2398054, "us_code": "12769G100", "weight": 0.0000958005 } ], "status": "OK" } ``` --- # REST ## Partners ### ETF Fund Flows **Endpoint:** `GET /etf-global/v1/fund-flows` **Description:** Track capital movements and investor activity across global ETFs. Access fund flow data that reveals market trends, investor sentiment, and the popularity of different ETF strategies over time. Use Cases: Investor sentiment tracking, ETF inflow/outflow analysis, market trend monitoring, asset allocation strategy evaluation. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `processed_date` | string | No | The date showing when ETF Global received and processed the data. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date` | string | No | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `composite_ticker` | string | No | The stock ticker symbol used to identify this ETF on exchanges. | | `composite_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `composite_ticker.gt` | string | No | Filter greater than the value. | | `composite_ticker.gte` | string | No | Filter greater than or equal to the value. | | `composite_ticker.lt` | string | No | Filter less than the value. | | `composite_ticker.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'composite_ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].composite_ticker` | string | The stock ticker symbol used to identify this ETF on exchanges. | | `results[].effective_date` | string | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. | | `results[].fund_flow` | number | The net daily capital flow into or out of the ETF through the creation and redemption process, where positive values indicate inflows and negative values indicate outflows. | | `results[].nav` | number | The net asset value per share, representing the per-share value of the ETF's underlying holdings. | | `results[].processed_date` | string | The date showing when ETF Global received and processed the data. | | `results[].shares_outstanding` | number | The total number of ETF shares currently issued and outstanding in the market. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "composite_ticker": "SPY", "effective_date": "2025-01-29", "fund_flow": -30235124.7, "nav": 601.877341, "processed_date": "2025-01-29", "shares_outstanding": 1047232116 }, { "composite_ticker": "SPY", "effective_date": "2025-01-30", "fund_flow": -2798729635.65, "nav": 605.0574, "processed_date": "2025-01-30", "shares_outstanding": 1042582116 }, { "composite_ticker": "SPY", "effective_date": "2025-01-31", "fund_flow": -3358068570, "nav": 602.044248, "processed_date": "2025-01-31", "shares_outstanding": 1037032116 } ], "status": "OK" } ``` --- # REST ## Partners ### ETF Profiles & Exposure **Endpoint:** `GET /etf-global/v1/profiles` **Description:** Retrieve industry classification data for global ETFs including sector mappings and standardized categorizations across industry frameworks. Use Cases: ETF categorization and classification, sector and geographic exposure analysis, fund profiling and comparison, portfolio due diligence. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `processed_date` | string | No | The date showing when ETF Global received and processed the data. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date` | string | No | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `composite_ticker` | string | No | The stock ticker symbol used to identify this ETF product on exchanges. | | `composite_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `composite_ticker.gt` | string | No | Filter greater than the value. | | `composite_ticker.gte` | string | No | Filter greater than or equal to the value. | | `composite_ticker.lt` | string | No | Filter less than the value. | | `composite_ticker.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'composite_ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].administrator` | string | The administrator of the ETF. | | `results[].advisor` | string | The investment advisor of the ETF. | | `results[].asset_class` | string | The primary type of assets held by the ETF, such as equities, bonds, commodities, or other securities. | | `results[].aum` | number | The total assets under management, representing the current market value of all assets held by the ETF. | | `results[].avg_daily_trading_volume` | number | The average number of shares traded daily over the past month, indicating liquidity and investor interest. | | `results[].bid_ask_spread` | number | The average intraday bid-ask spread as a percentage, calculated by dividing the spread by the lowest ask price sampled during the day. | | `results[].call_volume` | number | Call options volume. | | `results[].category` | string | The broad investment category that describes the ETF's investment focus and strategy. | | `results[].composite_ticker` | string | The stock ticker symbol used to identify this ETF product on exchanges. | | `results[].coupon_exposure` | array[object] | Coupon exposure breakdown for fixed income ETFs. | | `results[].creation_fee` | number | The fee for creating new shares of the ETF. | | `results[].creation_unit_size` | number | The size of creation units for the ETF. | | `results[].currency_exposure` | array[object] | Currency exposure breakdown of the ETF. | | `results[].custodian` | string | The custodian of the ETF assets. | | `results[].description` | string | The official name and description of the ETF product. | | `results[].development_class` | string | The economic development classification of the markets the ETF invests in, such as developed, emerging, or frontier markets. | | `results[].discount_premium` | number | Discount or premium to net asset value. | | `results[].distribution_frequency` | string | How frequently the ETF makes distributions. | | `results[].distributor` | string | The distributor of the ETF. | | `results[].effective_date` | string | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. | | `results[].fee_waivers` | number | Any fee waivers applied to the ETF. | | `results[].fiscal_year_end` | string | The fiscal year end date for the ETF. | | `results[].focus` | string | The specific investment focus or exposure that the ETF provides, such as sector, geography, or investment style. | | `results[].futures_commission_merchant` | string | The futures commission merchant, if applicable. | | `results[].geographic_exposure` | array[object] | Geographic exposure breakdown of the ETF. | | `results[].inception_date` | string | The date when this ETF was first launched and became available for trading. | | `results[].industry_exposure` | array[object] | Industry exposure breakdown of the ETF. | | `results[].industry_group_exposure` | array[object] | Industry group exposure breakdown of the ETF. | | `results[].issuer` | string | The financial institution or fund company that created and sponsors this ETF. | | `results[].lead_market_maker` | string | The lead market maker for the ETF. | | `results[].leverage_style` | string | Indicates whether the ETF uses leverage to amplify returns ('leveraged'), or does not use leverage ('unleveraged'). | | `results[].levered_amount` | number | The leverage multiplier applied by the ETF, where positive numbers indicate leveraged exposure and negative numbers indicate inverse exposure. | | `results[].listing_exchange` | string | The primary exchange where the ETF is listed. | | `results[].management_classification` | string | Defines whether an ETF is considered active under SEC rules, with managers making investment decisions, or passive, tracking an index. | | `results[].management_fee` | number | The annual fee charged by the fund manager for managing the ETF's portfolio and operations. | | `results[].maturity_exposure` | array[object] | Maturity exposure breakdown for fixed income ETFs. | | `results[].net_expenses` | number | Net expenses after waivers. | | `results[].num_holdings` | number | Number of holdings in the ETF. | | `results[].options_available` | integer | Availability of options on the ETF. | | `results[].options_volume` | number | Options trading volume for the ETF. | | `results[].other_expenses` | number | Other expenses charged by the ETF. | | `results[].portfolio_manager` | string | The portfolio manager of the ETF. | | `results[].primary_benchmark` | string | The main index or benchmark that this ETF is designed to track or replicate. | | `results[].processed_date` | string | The date showing when ETF Global received and processed the data. | | `results[].product_type` | string | Indicates whether the product is an Exchange-Traded Note ('etn') or an Exchange-Traded Fund ('etf'). | | `results[].put_call_ratio` | number | Put/call ratio for options on the ETF. | | `results[].put_volume` | number | Put options volume. | | `results[].region` | string | The geographic region or area of the world where the ETF concentrates its investments. | | `results[].sector_exposure` | array[object] | Sector exposure breakdown of the ETF. | | `results[].short_interest` | number | Short interest in the ETF. | | `results[].subadvisor` | string | The subadvisor of the ETF, if applicable. | | `results[].subindustry_exposure` | array[object] | Sub-industry exposure breakdown of the ETF. | | `results[].tax_classification` | string | The tax structure of the ETF, determining whether investors receive 1099 or K1 tax forms (RIC, Partnership, or UIT). | | `results[].total_expenses` | number | The total annual expense ratio of the ETF, including all fees and costs passed on to investors. | | `results[].transfer_agent` | string | The transfer agent for the ETF. | | `results[].trustee` | string | The trustee of the ETF. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "administrator": "State Street Bank and Trust Company", "advisor": "SSgA Funds Management, Inc.", "asset_class": "Equity", "aum": 624531939442.66, "avg_daily_trading_volume": 51287737.3, "bid_ask_spread": 0.000042, "call_volume": 4797339, "category": "Size and Style", "composite_ticker": "SPY", "creation_fee": 3000, "creation_unit_size": 50000, "currency_exposure": { "usd": 1.003 }, "custodian": "State Street Bank and Trust Company", "description": "SPDR S&P 500 ETF Trust", "development_class": "Developed Markets", "discount_premium": 0.136123, "distribution_frequency": "Q", "distributor": "ALPS Distributors, Inc.", "effective_date": "2025-01-02", "fee_waivers": 0, "fiscal_year_end": "31-Aug", "focus": "Large Cap", "geographic_exposure": { "bm": 0.001, "ch": 0.003, "ie": 0.021, "je": 0.001, "lr": 0.001, "nl": 0.001, "pa": 0.001, "us": 0.967 }, "inception_date": "1993-01-22", "industry_exposure": { "aerospace_and_defense": 0.011, "air_freight_and_logistics": 0.004, "airlines": 0.002, "auto_components": 0, "automobiles": 0.024, "banks": 0.033, "beverages": 0.011, "biotechnology": 0.047, "building_products": 0.002, "capital_markets": 0.029, "cash_or_derivatives": 0.003, "chemicals": 0.007, "commercial_services_and_supplies": 0.004, "communications_equipment": 0.081, "construction_and_engineering": 0.001, "construction_materials": 0.001, "consumer_products": 0.001, "containers_and_packaging": 0.001, "distributors": 0.001, "diversified_consumer_services": 0.005, "diversified_financial_services": 0.029, "diversified_telecommunication_services": 0.009, "electrical_equipment": 0.009, "electronic_equipment_instruments_and_components": 0.001, "entertainment": 0.008, "equity_real_estate_investment": 0.001, "food_products": 0.006, "health_care_equipment_and_supplies": 0.031, "health_care_providers_and_services": 0.018, "health_care_technology": 0.003, "hotels,_restaurants_and_leisure": 0.001, "hotels_restaurants_and_leisure": 0.014, "household_durables": 0.004, "household_products": 0.011, "industrial_conglomerates": 0.005, "insurance": 0.035, "it_services": 0.021, "leisure_products": 0, "machinery": 0.013, "media": 0.077, "metals_and_mining": 0.003, "oil_gas_and_consumable_fuels": 0.031, "real_estate_management_and_development": 0.018, "renewable_energy": 0.001, "road_and_rail": 0.003, "semiconductors_and_semiconductor_equipment": 0.115, "software": 0.101, "specialty_retail": 0.082, "technology_hardware_storage_and_peripherals": 0.001, "textiles_apparel_and_luxury_goods": 0.003, "tobacco": 0.006, "trading_companies_and_distributors": 0.002, "transportation_infrastructure": 0.006, "utilities": 0.022 }, "industry_group_exposure": { "automobiles_and_components": 0.024, "banks": 0.033, "capital_goods": 0.045, "cash_or_derivatives": 0.003, "commercial_and_professional_services": 0.005, "consumer_durables_and_apparel": 0.007, "consumer_services": 0.02, "diversified_financials": 0.058, "energy": 0.032, "food_and_staples_retailing": 0.018, "food_beverage_and_tobacco": 0.023, "health_care_equipment_and_services": 0.046, "household_and_personal_products": 0.011, "insurance": 0.035, "materials": 0.013, "media_and_entertainment": 0.084, "pharmaceuticals_biotechnology_and_life_sciences": 0.053, "real_estate": 0.02, "retailing": 0.065, "semiconductors_and_semiconductor_equipment": 0.115, "software_and_services": 0.12, "technology_hardware_and_equipment": 0.084, "telecommunication_services": 0.009, "transportation": 0.002, "transportation_and_logistics": 0.012, "utilities": 0.022 }, "issuer": "SSgA", "lead_market_maker": "None", "leverage_style": "unleveraged", "levered_amount": 0, "listing_exchange": "NYSE Arca, Inc.", "management_classification": "passive", "management_fee": 0.0945, "net_expenses": 0.0945, "num_holdings": 504, "options_available": 1, "options_volume": 9346839, "other_expenses": 0, "primary_benchmark": "S&P 500 Index", "processed_date": "2025-01-02", "product_type": "etf", "put_call_ratio": 0.948338, "put_volume": 4549500, "region": "North America", "sector_exposure": { "cash_or_derivatives": 0.003, "communications": 0.094, "consumer_discretionary": 0.113, "consumer_staples": 0.054, "energy": 0.032, "financials": 0.131, "health_care": 0.099, "industrials": 0.068, "materials": 0.013, "real_estate": 0.02, "technology": 0.321, "utilities": 0.022 }, "short_interest": 106750000, "subindustry_exposure": { "advertising": 0.001, "aerospace_and_defense": 0.011, "agricultural_and_farm_machinery": 0.002, "agricultural_products": 0.001, "air_freight_and_logistics": 0.004, "airlines": 0.002, "alternative_carriers": 0.009, "apparel_accessories_and_luxury": 0.003, "apparel_retail": 0.005, "application_software": 0.024, "asset_management_and_custody_banks": 0.006, "auto_parts_and_equipment": 0, "automobile_manufacturers": 0.024, "automotive_retail": 0.004, "biotechnology": 0.047, "brewers": 0, "building_products": 0.002, "cable_and_satellite": 0.004, "cash_or_derivatives": 0.003, "casinos_and_gaming": 0.001, "commodity_chemicals": 0.001, "communications_equipment": 0.081, "construction_and_engineering": 0.001, "construction_machinery_and_heavy_trucks": 0.006, "construction_materials": 0.001, "consumer_electronics": 0.001, "consumer_finance": 0.029, "data_processing_and_outsourced_services": 0.006, "distillers_and_vintners": 0.001, "distributors": 0, "diversified_banks": 0.033, "diversified_chemicals": 0.002, "diversified_metals_and_mining": 0.001, "diversified_support_services": 0.001, "drug_retail": 0, "electric_utilities": 0.013, "electrical_components_and_equipment": 0.009, "electronic_components": 0.001, "electronic_equipment_and_instruments": 0, "electronic_manufacturing_services": 0, "environmental_and_facilities_services": 0.003, "fertilizers_and_agricultural_che": 0.001, "financial_exchanges_and_data": 0.006, "food_retail": 0.002, "gas_utilities": 0, "general_merchandise_stores": 0.002, "health_care_distributors": 0.003, "health_care_equipment": 0.014, "health_care_facilities": 0.001, "health_care_services": 0.004, "health_care_supplies": 0.003, "heavy_electrical_equipment": 0.001, "highways_and_railtracks": 0.005, "home_improvement_retail": 0.012, "homebuilding": 0.002, "hotels_resorts_and_cruise_lines": 0.004, "household_products": 0.011, "hypermarkets_and_super_centers": 0.016, "independent_power_producers_and_energy_traders": 0.001, "industrial_conglomerates": 0.005, "industrial_machinery": 0.005, "insurance_brokers": 0.005, "integrated_oil_and_gas": 0.014, "interactive_media_and_services": 0.067, "internet_and_direct_marketing_retail": 0.043, "internet_services_and_infrastruc": 0.004, "investment_banking_and_brokerage": 0.01, "it_consulting_and_other_services": 0.011, "leisure_facilities": 0, "leisure_products": 0.001, "life_and_health_insurance": 0.003, "life_sciences_tools_and_services": 0.014, "managed_health_care": 0.013, "metal_and_glass_containers": 0.001, "movies_and_entertainment": 0.012, "multiutilities": 0.006, "oil_and_gas_equipment_and_services": 0.002, "oil_and_gas_exploration_and_production": 0.007, "oil_and_gas_refining_and_marketing": 0.003, "oil_and_gas_storage_and_transporta": 0.004, "packaged_foods_and_meats": 0.006, "paper_packaging": 0.001, "precious_metals_and_minerals": 0.001, "property_and_casualty_insurance": 0.027, "publishing_and_broadcasting": 0, "railroads": 0.001, "real_estate_services": 0.001, "reinsurance": 0, "reit": 0.019, "renewable_energy_equipment": 0.001, "research_and_consulting_services": 0.002, "restaurants": 0.009, "security_and_alarm_services": 0.004, "semiconductors": 0.115, "soft_drinks": 0.01, "specialty_chemicals": 0.004, "specialty_stores": 0.001, "steel": 0.001, "systems_software": 0.078, "technology_hardware_storage_and_peripherals": 0.002, "tobacco": 0.006, "trading_companies_and_distributors": 0.002, "trucking": 0.004, "water_utilities": 0 }, "tax_classification": "Regulated Investment Company", "total_expenses": 0.0945, "transfer_agent": "State Street Bank and Trust Company", "trustee": "State Street Global Advisors Trust Company" } ], "status": "OK" } ``` --- # REST ## Partners ### ETF Taxonomies **Endpoint:** `GET /etf-global/v1/taxonomies` **Description:** Access standardized taxonomy systems used to categorize and organize global ETFs. Get structured classification frameworks that help define investment strategies, asset types, and fund characteristics. Use Cases: ETF classification and categorization, strategy identification, taxonomy-based screening, fund universe organization. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `processed_date` | string | No | The date showing when ETF Global received and processed the data. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `processed_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date` | string | No | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `effective_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `composite_ticker` | string | No | The stock ticker symbol used to identify this ETF product on exchanges. | | `composite_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `composite_ticker.gt` | string | No | Filter greater than the value. | | `composite_ticker.gte` | string | No | Filter greater than or equal to the value. | | `composite_ticker.lt` | string | No | Filter less than the value. | | `composite_ticker.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'composite_ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].asset_class` | string | The primary type of assets held by the ETF, such as equities, bonds, commodities, or other securities. | | `results[].category` | string | The broad investment category that describes the ETF's investment focus and strategy. | | `results[].composite_ticker` | string | The stock ticker symbol used to identify this ETF product on exchanges. | | `results[].country` | string | The specific country focus of the ETF, if applicable. | | `results[].credit_quality_rating` | string | Credit quality rating for fixed income ETFs. | | `results[].description` | string | The official name and description of the ETF product. | | `results[].development_class` | string | The economic development classification of the markets the ETF invests in, such as developed, emerging, or frontier markets. | | `results[].duration` | string | The duration characteristics for fixed income ETFs. | | `results[].effective_date` | string | The date showing when the information was accurate or valid; some issuers, such as Vanguard, release their data on a delay, so the effective_date can be several weeks earlier than the processed_date. | | `results[].esg` | string | Environmental, Social, and Governance characteristics. | | `results[].exposure_mechanism` | string | The mechanism used to achieve exposure. | | `results[].factor` | string | Factor exposure characteristics of the ETF. | | `results[].focus` | string | The specific investment focus or exposure that the ETF provides, such as sector, geography, or investment style. | | `results[].hedge_reset` | string | The frequency of hedge reset, if applicable. | | `results[].holdings_disclosure_frequency` | string | How frequently holdings are disclosed. | | `results[].inception_date` | string | The date when this ETF was first launched and became available for trading. | | `results[].isin` | string | The International Securities Identification Number, a global standard code for uniquely identifying this ETF worldwide. | | `results[].issuer` | string | The financial institution or fund company that created and sponsors this ETF. | | `results[].leverage_reset` | string | The frequency of leverage reset, if applicable. | | `results[].leverage_style` | string | Indicates whether the ETF uses leverage to amplify returns ('leveraged'), or does not use leverage ('unleveraged'). | | `results[].levered_amount` | number | The leverage multiplier applied by the ETF, where positive numbers indicate leveraged exposure and negative numbers indicate inverse exposure. | | `results[].management_classification` | string | Defines whether an ETF is considered active under SEC rules, with managers making investment decisions, or passive, tracking an index. | | `results[].management_style` | string | Indicates whether an ETF is managed actively or passively, and the level of transparency or replication method used. | | `results[].maturity` | string | The maturity profile for fixed income ETFs. | | `results[].objective` | string | The primary investment objective of the ETF. | | `results[].primary_benchmark` | string | The main index or benchmark that this ETF is designed to track or replicate. | | `results[].processed_date` | string | The date showing when ETF Global received and processed the data. | | `results[].product_type` | string | Indicates whether the product is an Exchange-Traded Note ('etn') or an Exchange-Traded Fund ('etf'). | | `results[].rebalance_frequency` | string | How frequently the ETF rebalances its holdings. | | `results[].reconstitution_frequency` | string | How frequently the index is reconstituted. | | `results[].region` | string | The geographic region or area of the world where the ETF concentrates its investments. | | `results[].secondary_objective` | string | The secondary investment objective, if applicable. | | `results[].selection_methodology` | string | The methodology used to select securities. | | `results[].selection_universe` | string | The universe from which securities are selected. | | `results[].strategic_focus` | string | The strategic investment focus of the ETF. | | `results[].targeted_focus` | string | The targeted investment focus of the ETF. | | `results[].tax_classification` | string | The tax structure of the ETF, determining whether investors receive 1099 or K1 tax forms (RIC, Partnership, or UIT). | | `results[].us_code` | string | A unique identifier code that identifies this ETF in US markets. | | `results[].weighting_methodology` | string | The methodology used to weight holdings. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "asset_class": "Equity", "category": "Size and Style", "composite_ticker": "SPY", "country": "U.S.", "description": "SPDR S&P 500 ETF Trust", "development_class": "Developed Markets", "effective_date": "2025-09-19", "exposure_mechanism": "Blended Replication", "factor": "Size", "focus": "Large Cap", "holdings_disclosure_frequency": "Daily", "inception_date": "1993-01-22", "isin": "US78462F1030", "issuer": "SSgA", "leverage_style": "unleveraged", "levered_amount": 0, "management_classification": "passive", "management_style": "Passive - Representative Sampling", "objective": "Index-Tracking", "primary_benchmark": "S&P 500 Index", "processed_date": "2025-09-19", "product_type": "etf", "rebalance_frequency": "Quarterly", "reconstitution_frequency": "Quarterly", "region": "North America", "selection_methodology": "Modified Market Cap, Fundamental Multifactor, Liquidity", "selection_universe": "U.S. Large Caps", "strategic_focus": "Factor", "targeted_focus": "Size", "tax_classification": "Regulated Investment Company", "us_code": "78462F103", "weighting_methodology": "Modified Market Capitalization-Weighted" } ], "status": "OK" } ``` --- # REST ## Partners ### Corporate Events **Endpoint:** `GET /tmx/v1/corporate-events` **Description:** Retrieve structured corporate event data from Wall Street Horizon's comprehensive global events calendar, including earnings announcements, dividend dates, investor conferences, and stock splits. Each event record includes essential attributes such as event type, scheduled date, event status (e.g., confirmed, pending, canceled), ISIN, ticker, and direct links to primary announcement sources when available. Data can be filtered (by ticker, event type, etc.), and records are timestamped for seamless integration into trading and analysis workflows. Use Cases: Financial event tracking, market sentiment analysis, trading strategy formulation, risk management, corporate actions management. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | No | Scheduled date of the corporate event, formatted as YYYY-MM-DD. | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `type` | string | No | The normalized type of corporate event. Possible values include: analyst_day, business_update, capital_markets_day, conference, dividend, earnings_announcement_date, earnings_conference_call, earnings_results_announcement, forum, interim_statement, other_interim_announcement, production_update, research_and_development_day, seminar, shareholder_meeting, sales_update, stock_split, summit, service_level_update, tradeshow, company_travel, and workshop. | | `type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `type.gt` | string | No | Filter greater than the value. | | `type.gte` | string | No | Filter greater than or equal to the value. | | `type.lt` | string | No | Filter less than the value. | | `type.lte` | string | No | Filter less than or equal to the value. | | `status` | string | No | The current status of the event. Possible values include: approved, canceled, confirmed, historical, pending_approval, postponed, and unconfirmed. | | `status.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `status.gt` | string | No | Filter greater than the value. | | `status.gte` | string | No | Filter greater than or equal to the value. | | `status.lt` | string | No | Filter less than the value. | | `status.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | The company's stock symbol. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `isin` | string | No | Standard international identifier for the company's common stock. | | `isin.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `isin.gt` | string | No | Filter greater than the value. | | `isin.gte` | string | No | Filter greater than or equal to the value. | | `isin.lt` | string | No | Filter less than the value. | | `isin.lte` | string | No | Filter less than or equal to the value. | | `trading_venue` | string | No | MIC (Market Identifier Code) of the exchange where the company's stock is listed. | | `trading_venue.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `trading_venue.gt` | string | No | Filter greater than the value. | | `trading_venue.gte` | string | No | Filter greater than or equal to the value. | | `trading_venue.lt` | string | No | Filter less than the value. | | `trading_venue.lte` | string | No | Filter less than or equal to the value. | | `tmx_company_id` | integer | No | Unique numeric identifier for the company used by TMX. Value must be an integer. | | `tmx_company_id.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `tmx_company_id.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `tmx_company_id.lt` | integer | No | Filter less than the value. Value must be an integer. | | `tmx_company_id.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `tmx_record_id` | string | No | The unique alphanumeric identifier for the event record used by TMX. | | `tmx_record_id.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `tmx_record_id.gt` | string | No | Filter greater than the value. | | `tmx_record_id.gte` | string | No | Filter greater than or equal to the value. | | `tmx_record_id.lt` | string | No | Filter less than the value. | | `tmx_record_id.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].company_name` | string | Full name of the company. | | `results[].date` | string | Scheduled date of the corporate event, formatted as YYYY-MM-DD. | | `results[].isin` | string | Standard international identifier for the company's common stock. | | `results[].name` | string | Name or title of the event. | | `results[].status` | string | The current status of the event. Possible values include: approved, canceled, confirmed, historical, pending_approval, postponed, and unconfirmed. | | `results[].ticker` | string | The company's stock symbol. | | `results[].tmx_company_id` | integer | Unique numeric identifier for the company used by TMX. | | `results[].tmx_record_id` | string | The unique alphanumeric identifier for the event record used by TMX. | | `results[].trading_venue` | string | MIC (Market Identifier Code) of the exchange where the company's stock is listed. | | `results[].type` | string | The normalized type of corporate event. Possible values include: analyst_day, business_update, capital_markets_day, conference, dividend, earnings_announcement_date, earnings_conference_call, earnings_results_announcement, forum, interim_statement, other_interim_announcement, production_update, research_and_development_day, seminar, shareholder_meeting, sales_update, stock_split, summit, service_level_update, tradeshow, company_travel, and workshop. | | `results[].url` | string | URL linking to the primary public source of the event announcement, if available. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "company_name": "Rollins Inc.", "date": "2025-07-23", "isin": "US7757111049", "name": "Q2 2025 Earnings Announcement-After Mkt", "status": "unconfirmed", "ticker": "ROL", "tmx_company_id": "2208", "tmx_record_id": "4XMW4E9G", "trading_venue": "XNYS", "type": "earnings_announcement_date" } ], "status": "OK" } ``` --- ## Stocks # REST ## Stocks ### Custom Bars (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{stocksTicker}/range/{multiplier}/{timespan}/{from}/{to}` **Description:** Retrieve aggregated historical OHLC (Open, High, Low, Close) and volume data for a specified stock ticker over a custom date range and time interval in Eastern Time (ET). Aggregates are constructed exclusively from qualifying trades that meet specific conditions. If no eligible trades occur within a given timeframe, no aggregate bar is produced, resulting in an empty interval that indicates a lack of trading activity during that period. Users can tailor their data by adjusting the multiplier and timespan parameters (e.g., a 5-minute bar), covering pre-market, regular market, and after-hours sessions. This flexibility supports a broad range of analytical and visualization needs. Use Cases: Data visualization, technical analysis, backtesting strategies, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stocksTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `multiplier` | integer | Yes | The size of the timespan multiplier. | | `timespan` | string | Yes | The size of the time window. | | `from` | string | Yes | The start of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `to` | string | Yes | The end of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `sort` | N/A | No | Sort the results by timestamp. `asc` will return results in ascending order (oldest at the top), `desc` will return results in descending order (newest at the top). | | `limit` | integer | No | Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000. Read more about how limit is used to calculate aggregate results in our article on Aggregate Data API Improvements. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].otc` | boolean | Whether or not this aggregate is for an OTC ticker. This field will be left off if false. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | ## Sample Response ```json { "adjusted": true, "next_url": "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/1578114000000/2020-01-10?cursor=bGltaXQ9MiZzb3J0PWFzYw", "queryCount": 2, "request_id": "6a7e466379af0a71039d60cc78e72282", "results": [ { "c": 75.0875, "h": 75.15, "l": 73.7975, "n": 1, "o": 74.06, "t": 1577941200000, "v": 135647456, "vw": 74.6099 }, { "c": 74.3575, "h": 75.145, "l": 74.125, "n": 1, "o": 74.2875, "t": 1578027600000, "v": 146535512, "vw": 74.7026 } ], "resultsCount": 2, "status": "OK", "ticker": "AAPL" } ``` --- # REST ## Stocks ### Daily Market Summary (OHLC) **Endpoint:** `GET /v2/aggs/grouped/locale/us/market/stocks/{date}` **Description:** Retrieve daily OHLC (open, high, low, close), volume, and volume-weighted average price (VWAP) data for all U.S. stocks on a specified trading date. This endpoint returns comprehensive market coverage in a single request, enabling wide-scale analysis, bulk data processing, and research into broad market performance. Use Cases: Market overview, bulk data processing, historical research, and portfolio comparison. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `date` | string | Yes | The beginning date for the aggregate window. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `include_otc` | boolean | No | Include OTC securities in the response. Default is false (don't include OTC securities). | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].T` | string | The exchange symbol that this item is traded under. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].otc` | boolean | Whether or not this aggregate is for an OTC ticker. This field will be left off if false. | | `results[].t` | integer | The Unix millisecond timestamp for the end of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 3, "request_id": { "description": "A request id assigned by the server.", "type": "string" }, "results": [ { "T": "KIMpL", "c": 25.9102, "h": 26.25, "l": 25.91, "n": 74, "o": 26.07, "t": 1602705600000, "v": 4369, "vw": 26.0407 }, { "T": "TANH", "c": 23.4, "h": 24.763, "l": 22.65, "n": 1096, "o": 24.5, "t": 1602705600000, "v": 25933.6, "vw": 23.493 }, { "T": "VSAT", "c": 34.24, "h": 35.47, "l": 34.21, "n": 4966, "o": 34.9, "t": 1602705600000, "v": 312583, "vw": 34.4736 } ], "resultsCount": 3, "status": "OK" } ``` --- # REST ## Stocks ### Daily Ticker Summary (OHLC) **Endpoint:** `GET /v1/open-close/{stocksTicker}/{date}` **Description:** Retrieve the opening and closing prices for a specific stock ticker on a given date, along with any pre-market and after-hours trade prices. This endpoint provides essential daily pricing details, enabling users to evaluate performance, conduct historical analysis, and gain insights into trading activity outside regular market sessions. Use Cases: Daily performance analysis, historical data collection, after-hours insights, portfolio tracking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stocksTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `date` | string | Yes | The date of the requested open/close in the format YYYY-MM-DD. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | number | The close price of the ticker symbol in after hours trading. | | `close` | number | The close price for the symbol in the given time period. | | `from` | string | The requested date. | | `high` | number | The highest price for the symbol in the given time period. | | `low` | number | The lowest price for the symbol in the given time period. | | `open` | number | The open price for the symbol in the given time period. | | `otc` | boolean | Whether or not this aggregate is for an OTC ticker. This field will be left off if false. | | `preMarket` | integer | The open price of the ticker symbol in pre-market trading. | | `status` | string | The status of this request's response. | | `symbol` | string | The exchange symbol that this item is traded under. | | `volume` | number | The trading volume of the symbol in the given time period. | ## Sample Response ```json { "afterHours": 322.1, "close": 325.12, "from": "2023-01-09", "high": 326.2, "low": 322.3, "open": 324.66, "preMarket": 324.5, "status": "OK", "symbol": "AAPL", "volume": 26122646 } ``` --- # REST ## Stocks ### Previous Day Bar (OHLC) **Endpoint:** `GET /v2/aggs/ticker/{stocksTicker}/prev` **Description:** Retrieve the previous trading day's open, high, low, and close (OHLC) data for a specified stock ticker. This endpoint provides key pricing metrics, including volume, to help users assess recent performance and inform trading strategies. Use Cases: Baseline comparison, technical analysis, market research, and daily reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stocksTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `adjusted` | boolean | No | Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `ticker` | string | The exchange symbol that this item is traded under. | | `adjusted` | boolean | Whether or not this response was adjusted for splits. | | `queryCount` | integer | The number of aggregates (minute or day) used to generate the response. | | `request_id` | string | A request id assigned by the server. | | `resultsCount` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `results` | array[object] | An array of results containing the requested data. | | `results[].c` | number | The close price for the symbol in the given time period. | | `results[].h` | number | The highest price for the symbol in the given time period. | | `results[].l` | number | The lowest price for the symbol in the given time period. | | `results[].n` | integer | The number of transactions in the aggregate window. | | `results[].o` | number | The open price for the symbol in the given time period. | | `results[].t` | integer | The Unix millisecond timestamp for the start of the aggregate window. | | `results[].v` | number | The trading volume of the symbol in the given time period. | | `results[].vw` | number | The volume weighted average price. | ## Sample Response ```json { "adjusted": true, "queryCount": 1, "request_id": "6a7e466379af0a71039d60cc78e72282", "results": [ { "T": "AAPL", "c": 115.97, "h": 117.59, "l": 114.13, "o": 115.55, "t": 1605042000000, "v": 131704427, "vw": 116.3058 } ], "resultsCount": 1, "status": "OK", "ticker": "AAPL" } ``` --- # REST ## Stocks ### Dividends **Endpoint:** `GET /stocks/v1/dividends` **Description:** Retrieve a historical record of cash dividend distributions for a given ticker, including declaration, ex-dividend, record, and pay dates, as well as payout amounts and adjustment factors for normalizing historical data to offset the effects of dividends. This endpoint consolidates key dividend information, enabling users to account for dividend income in returns, develop dividend-focused strategies, and support tax reporting needs. Use Cases: Income analysis, total return calculations, dividend strategies, tax planning. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Stock symbol for the company issuing the dividend | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `ex_dividend_date` | string | No | Date when the stock begins trading without the dividend value Value must be formatted 'yyyy-mm-dd'. | | `ex_dividend_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `ex_dividend_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `ex_dividend_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `ex_dividend_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `frequency` | integer | No | How many times per year this dividend is expected to occur. A value of 0 means the distribution is non-recurring or irregular (e.g., special, supplemental, or a one-off dividend). Other possible values include 1 (annual), 2 (semi-annual), 3 (trimester), 4 (quarterly), 12 (monthly), 24 (bi-monthly), 52 (weekly), 104 (bi-weekly), and 365 (daily) depending on the issuer's declared or inferred payout cadence. Value must be an integer. | | `frequency.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `frequency.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `frequency.lt` | integer | No | Filter less than the value. Value must be an integer. | | `frequency.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `distribution_type` | string | No | Classification describing the nature of this dividend's recurrence pattern: recurring (paid on a regular schedule), special (one-time or commemorative), supplemental (extra beyond the regular schedule), irregular (unpredictable or non-recurring), unknown (cannot be classified from available data) | | `distribution_type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].cash_amount` | number | Original dividend amount per share in the specified currency | | `results[].currency` | string | Currency code for the dividend payment (e.g., USD, CAD) | | `results[].declaration_date` | string | Date when the company officially announced the dividend | | `results[].distribution_type` | string | Classification describing the nature of this dividend's recurrence pattern: recurring (paid on a regular schedule), special (one-time or commemorative), supplemental (extra beyond the regular schedule), irregular (unpredictable or non-recurring), unknown (cannot be classified from available data) | | `results[].ex_dividend_date` | string | Date when the stock begins trading without the dividend value | | `results[].frequency` | integer | How many times per year this dividend is expected to occur. A value of 0 means the distribution is non-recurring or irregular (e.g., special, supplemental, or a one-off dividend). Other possible values include 1 (annual), 2 (semi-annual), 3 (trimester), 4 (quarterly), 12 (monthly), 24 (bi-monthly), 52 (weekly), 104 (bi-weekly), and 365 (daily) depending on the issuer's declared or inferred payout cadence. | | `results[].historical_adjustment_factor` | number | Cumulative adjustment factor used to offset dividend effects on historical prices. To adjust a historical price for dividends: for a price on date D, find the first dividend whose `ex_dividend_date` is after date D and multiply the price by that dividend's `historical_adjustment_factor`. | | `results[].id` | string | Unique identifier for each dividend record | | `results[].pay_date` | string | Date when the dividend payment is distributed to shareholders | | `results[].record_date` | string | Date when shareholders must be on record to be eligible for the dividend payment | | `results[].split_adjusted_cash_amount` | number | Dividend amount adjusted for stock splits that occurred after the dividend was paid, expressed on a current share basis | | `results[].ticker` | string | Stock symbol for the company issuing the dividend | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": 1, "results": [ { "cash_amount": 0.26, "currency": "USD", "declaration_date": "2025-07-31", "distribution_type": "recurring", "ex_dividend_date": "2025-08-11", "frequency": 4, "historical_adjustment_factor": 0.997899, "id": "Ed2c9da60abda1e3f0e99a43f6465863c137b671e1f5cd3f833d1fcb4f4eb27fe", "pay_date": "2025-08-14", "record_date": "2025-08-11", "split_adjusted_cash_amount": 0.26, "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Stocks ### Initial Public Offerings (IPOs) **Endpoint:** `GET /vX/reference/ipos` **Description:** Retrieve comprehensive information on Initial Public Offerings (IPOs), including upcoming and historical events, starting from the year 2008. This endpoint provides key details such as issuer name, ticker symbol, security type, IPO date, number of shares offered, expected price ranges, final issue prices, and offering sizes. Users can filter results by IPO status (e.g., pending, new, rumors, historical) to target their research and inform investment decisions. Use Cases: IPO research, market trend analysis, investment screening, historical event comparison. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a case-sensitive ticker symbol. For example, TSLA represents Tesla Inc. | | `us_code` | string | No | Specify a us_code. This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades. | | `isin` | string | No | Specify an International Securities Identification Number (ISIN). This is a unique twelve-digit code that is assigned to every security issuance in the world. | | `listing_date` | string | No | Specify a listing date. This is the first trading date for the newly listed entity. | | `ipo_status` | string | No | Specify an IPO status. | | `listing_date.gte` | string | No | Range by listing_date. | | `listing_date.gt` | string | No | Range by listing_date. | | `listing_date.lte` | string | No | Range by listing_date. | | `listing_date.lt` | string | No | Range by listing_date. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].announced_date` | string | The date when the IPO event was announced. | | `results[].currency_code` | string | Underlying currency of the security. | | `results[].final_issue_price` | number | The price set by the company and its underwriters before the IPO goes live. | | `results[].highest_offer_price` | number | The highest price within the IPO price range that the company might use to price the shares. | | `results[].ipo_status` | enum: direct_listing_process, history, new, pending, postponed, rumor, withdrawn | The status of the IPO event. IPO events start out as status "rumor" or "pending". On listing day, the status changes to "new". After the listing day, the status changes to "history". The status "direct_listing_process" corresponds to a type of offering where, instead of going through all the IPO processes, the company decides to list its shares directly on an exchange, without using an investment bank or other intermediaries. This is called a direct listing, direct placement, or direct public offering (DPO). | | `results[].isin` | string | International Securities Identification Number. This is a unique twelve-digit code that is assigned to every security issuance in the world. | | `results[].issuer_name` | string | Name of issuer. | | `results[].last_updated` | string | The date when the IPO event was last modified. | | `results[].listing_date` | string | First trading date for the newly listed entity. | | `results[].lot_size` | number | The minimum number of shares that can be bought or sold in a single transaction. | | `results[].lowest_offer_price` | number | The lowest price within the IPO price range that the company is willing to offer its shares to investors. | | `results[].max_shares_offered` | number | The upper limit of the shares that the company is offering to investors. | | `results[].min_shares_offered` | number | The lower limit of shares that the company is willing to sell in the IPO. | | `results[].primary_exchange` | string | Market Identifier Code (MIC) of the primary exchange where the security is listed. The Market Identifier Code (MIC) (ISO 10383) is a unique identification code used to identify securities trading exchanges, regulated and non-regulated trading markets. | | `results[].security_description` | string | Description of the security. | | `results[].security_type` | string | The classification of the stock. For example, "CS" stands for Common Stock. | | `results[].shares_outstanding` | number | The total number of shares that the company has issued and are held by investors. | | `results[].ticker` | string | The ticker symbol of the IPO event. | | `results[].total_offer_size` | number | The total amount raised by the company for IPO. | | `results[].us_code` | string | This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/vX/reference/ipos?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "6a7e466379af0a71039d60cc78e72282", "results": [ { "announced_date": "2024-06-01", "currency_code": "USD", "final_issue_price": 17, "highest_offer_price": 17, "ipo_status": "history", "isin": "US75383L1026", "issue_end_date": "2024-06-06", "issue_start_date": "2024-06-01", "issuer_name": "Rapport Therapeutics Inc.", "last_updated": "2024-06-27", "listing_date": "2024-06-07", "lot_size": 100, "lowest_offer_price": 17, "max_shares_offered": 8000000, "min_shares_offered": 1000000, "primary_exchange": "XNAS", "security_description": "Ordinary Shares", "security_type": "CS", "shares_outstanding": 35376457, "ticker": "RAPP", "total_offer_size": 136000000, "us_code": "75383L102" } ], "status": "OK" } ``` --- # REST ## Stocks ### Dividends (Deprecated) **Endpoint:** `GET /v3/reference/dividends` **Description:** Retrieve a historical record of cash dividend distributions for a given ticker, including declaration, ex-dividend, record, and pay dates, as well as payout amounts and frequency. This endpoint consolidates key dividend information, enabling users to account for dividend income in returns, develop dividend-focused strategies, and support tax reporting needs. Use Cases: Income analysis, total return calculations, dividend strategies, tax planning. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `ex_dividend_date` | string | No | Query by ex-dividend date with the format YYYY-MM-DD. | | `record_date` | string | No | Query by record date with the format YYYY-MM-DD. | | `declaration_date` | string | No | Query by declaration date with the format YYYY-MM-DD. | | `pay_date` | string | No | Query by pay date with the format YYYY-MM-DD. | | `frequency` | integer | No | Query by the number of times per year the dividend is paid out. Possible values are 0 (one-time), 1 (annually), 2 (bi-annually), 4 (quarterly), 12 (monthly), 24 (bi-monthly), and 52 (weekly). | | `cash_amount` | number | No | Query by the cash amount of the dividend. | | `dividend_type` | string | No | Query by the type of dividend. Dividends that have been paid and/or are expected to be paid on consistent schedules are denoted as CD. Special Cash dividends that have been paid that are infrequent or unusual, and/or can not be expected to occur in the future are denoted as SC. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `ex_dividend_date.gte` | string | No | Range by ex_dividend_date. | | `ex_dividend_date.gt` | string | No | Range by ex_dividend_date. | | `ex_dividend_date.lte` | string | No | Range by ex_dividend_date. | | `ex_dividend_date.lt` | string | No | Range by ex_dividend_date. | | `record_date.gte` | string | No | Range by record_date. | | `record_date.gt` | string | No | Range by record_date. | | `record_date.lte` | string | No | Range by record_date. | | `record_date.lt` | string | No | Range by record_date. | | `declaration_date.gte` | string | No | Range by declaration_date. | | `declaration_date.gt` | string | No | Range by declaration_date. | | `declaration_date.lte` | string | No | Range by declaration_date. | | `declaration_date.lt` | string | No | Range by declaration_date. | | `pay_date.gte` | string | No | Range by pay_date. | | `pay_date.gt` | string | No | Range by pay_date. | | `pay_date.lte` | string | No | Range by pay_date. | | `pay_date.lt` | string | No | Range by pay_date. | | `cash_amount.gte` | number | No | Range by cash_amount. | | `cash_amount.gt` | number | No | Range by cash_amount. | | `cash_amount.lte` | number | No | Range by cash_amount. | | `cash_amount.lt` | number | No | Range by cash_amount. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].cash_amount` | number | The cash amount of the dividend per share owned. | | `results[].currency` | string | The currency in which the dividend is paid. | | `results[].declaration_date` | string | The date that the dividend was announced. | | `results[].dividend_type` | enum: CD, SC, LT, ST | The type of dividend. Dividends that have been paid and/or are expected to be paid on consistent schedules are denoted as CD. Special Cash dividends that have been paid that are infrequent or unusual, and/or can not be expected to occur in the future are denoted as SC. Long-Term and Short-Term capital gain distributions are denoted as LT and ST, respectively. | | `results[].ex_dividend_date` | string | The date that the stock first trades without the dividend, determined by the exchange. | | `results[].frequency` | integer | The number of times per year the dividend is paid out. Possible values are 0 (one-time), 1 (annually), 2 (bi-annually), 4 (quarterly), 12 (monthly), 24 (bi-monthly), and 52 (weekly). | | `results[].id` | string | The unique identifier of the dividend. | | `results[].pay_date` | string | The date that the dividend is paid out. | | `results[].record_date` | string | The date that the stock must be held to receive the dividend, set by the company. | | `results[].ticker` | string | The ticker symbol of the dividend. | | `status` | string | The status of this request's response. | --- # REST ## Stocks ### Splits (Deprecated) **Endpoint:** `GET /v3/reference/splits` **Description:** Retrieve historical stock split events, including execution dates and ratio factors, to understand changes in a company’s share structure over time. Massive leverages this data for accurate price adjustments in other endpoints, such as the Aggregates API, ensuring that users can access both adjusted and unadjusted views of historical prices for more informed analysis. Use Cases: Historical analysis, price adjustments, data consistency, modeling. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `execution_date` | string | No | Query by execution date with the format YYYY-MM-DD. | | `reverse_split` | boolean | No | Query for reverse stock splits. A split ratio where split_from is greater than split_to represents a reverse split. By default this filter is not used. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `execution_date.gte` | string | No | Range by execution_date. | | `execution_date.gt` | string | No | Range by execution_date. | | `execution_date.lte` | string | No | Range by execution_date. | | `execution_date.lt` | string | No | Range by execution_date. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].execution_date` | string | The execution date of the stock split. On this date the stock split was applied. | | `results[].id` | string | The unique identifier for this stock split. | | `results[].split_from` | number | The second number in the split ratio. For example: In a 2-for-1 split, split_from would be 1. | | `results[].split_to` | number | The first number in the split ratio. For example: In a 2-for-1 split, split_to would be 2. | | `results[].ticker` | string | The ticker symbol of the stock split. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v3/splits/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "6a7e466379af0a71039d60cc78e72282", "results": [ { "execution_date": "2020-08-31", "id": "E36416cce743c3964c5da63e1ef1626c0aece30fb47302eea5a49c0055c04e8d0", "split_from": 1, "split_to": 4, "ticker": "AAPL" }, { "execution_date": "2005-02-28", "id": "E90a77bdf742661741ed7c8fc086415f0457c2816c45899d73aaa88bdc8ff6025", "split_from": 1, "split_to": 2, "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Stocks ### Splits **Endpoint:** `GET /stocks/v1/splits` **Description:** Retrieve historical stock split events, including execution dates and ratio factors, to understand changes in a company’s share structure over time. Also find adjustment factors that can be used to normalize historical prices to today's share basis. Use Cases: Historical analysis, price adjustments, data consistency, modeling. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Stock symbol for the company that executed the split | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `execution_date` | string | No | Date when the stock split was applied and shares adjusted Value must be formatted 'yyyy-mm-dd'. | | `execution_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `execution_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `execution_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `execution_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `adjustment_type` | string | No | Classification of the share-change event. Possible values include: forward_split (share count increases), reverse_split (share count decreases), stock_dividend (shares issued as a dividend) | | `adjustment_type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'execution_date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].adjustment_type` | string | Classification of the share-change event. Possible values include: forward_split (share count increases), reverse_split (share count decreases), stock_dividend (shares issued as a dividend) | | `results[].execution_date` | string | Date when the stock split was applied and shares adjusted | | `results[].historical_adjustment_factor` | number | Cumulative adjustment factor used to offset split effects on historical prices. To adjust a historical price for splits: for a price on date D, find the first split whose `execution_date` is after date D and multiply the unadjusted price by the `historical_adjustment_factor`. | | `results[].id` | string | Unique identifier for each stock split event | | `results[].split_from` | number | Denominator of the split ratio (old shares) | | `results[].split_to` | number | Numerator of the split ratio (new shares) | | `results[].ticker` | string | Stock symbol for the company that executed the split | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": 1, "results": [ { "adjustment_type": "forward_split", "execution_date": "2005-02-28", "historical_adjustment_factor": 0.017857, "id": "E90a77bdf742661741ed7c8fc086415f0457c2816c45899d73aaa88bdc8ff6025", "split_from": 1, "split_to": 2, "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Stocks ### Ticker Events **Endpoint:** `GET /vX/reference/tickers/{id}/events` **Description:** Retrieve a timeline of key events associated with a given ticker, CUSIP, or Composite FIGI. This endpoint is experimental and highlights ticker changes, such as symbol renaming or rebranding, helping users maintain continuity in their records and analyses. Use Cases: Historical reference for ticker symbol changes, data continuity, and record-keeping. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `id` | string | Yes | Identifier of an asset, which can be a Ticker, CUSIP, or Composite FIGI. Specify a case-sensitive ticker symbol (e.g. AAPL for Apple Inc). When provided a ticker, events for the entity currently represented by that ticker are returned. To find events for entities previously associated with a ticker, obtain the relevant identifier using the [Ticker Details Endpoint](https://massive.com/docs/rest/stocks/tickers/ticker-overview). | | `types` | string | No | A comma-separated list of the types of event to include. Currently ticker_change is the only supported event_type. Leave blank to return all supported event_types. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `request_id` | string | A request id assigned by the server. | | `results` | object | Contains the requested event data for the specified ticker. | | `results.events` | array[object] | An array of event containing the requested data. | | `results.name` | string | The name of the asset. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "31d59dda-80e5-4721-8496-d0d32a654afe", "results": { "events": [ { "date": "2022-06-09", "ticker_change": { "ticker": "META" }, "type": "ticker_change" }, { "date": "2012-05-18", "ticker_change": { "ticker": "FB" }, "type": "ticker_change" } ], "name": "Meta Platforms, Inc. Class A Common Stock" }, "status": "OK" } ``` --- # REST ## Stocks ### 10-K Sections **Endpoint:** `GET /stocks/filings/10-K/vX/sections` **Description:** Retrieve clean plain-text extracts of key narrative sections from annual 10-K filings, including Business and Risk Factors. These provide detailed insights into company operations, strategy, markets, and material risks in structured AI-ready format. Use Cases: NLP and text analysis, automated risk profiling, competitive benchmarking, topic modeling, summarization, and LLM knowledge base construction. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cik` | string | No | SEC Central Index Key (10 digits, zero-padded). | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | Stock ticker symbol for the company. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `section` | string | No | Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). | | `section.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `filing_date` | string | No | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end` | string | No | Period end date that the filing relates to (formatted as YYYY-MM-DD). Value must be formatted 'yyyy-mm-dd'. | | `period_end.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '99'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].cik` | string | SEC Central Index Key (10 digits, zero-padded). | | `results[].filing_date` | string | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). | | `results[].filing_url` | string | SEC URL source for the full filing. | | `results[].period_end` | string | Period end date that the filing relates to (formatted as YYYY-MM-DD). | | `results[].section` | string | Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). | | `results[].text` | string | Full raw text content of the section, including headers and formatting. | | `results[].ticker` | string | Stock ticker symbol for the company. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 2, "next_url": "https://api.massive.com/stocks/filings/10-K/vX/sections?cursor=eyJsaW1pd...", "request_id": "a3f8b2c1d4e5f6g7", "results": [ { "cik": "0000320193", "filing_date": "2023-11-03", "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/0000320193-23-000106.txt", "period_end": "2023-09-30", "section": "risk_factors", "text": "Item 1A. Risk Factors\n\nInvesting in our stock involves risk. In addition to the other information in this Annual Report on Form 10-K, the following risk factors should be carefully considered...", "ticker": "AAPL" }, { "cik": "0000789019", "filing_date": "2023-07-27", "filing_url": "https://www.sec.gov/Archives/edgar/data/789019/0000950170-23-035122.txt", "period_end": "2023-06-30", "section": "risk_factors", "text": "Item 1A. RISK FACTORS\n\nOur operations and financial results are subject to various risks and uncertainties...", "ticker": "MSFT" } ], "status": "OK" } ``` --- # REST ## Stocks ### 13-F Filings **Endpoint:** `GET /stocks/filings/vX/13-F` **Description:** Retrieve quarterly holdings data from SEC Form 13-F filings submitted by institutional investment managers with at least $100 million in assets. Reports show equity positions, share counts, market values, investment discretion, and voting authority as of quarter-end. Use Cases: Tracking institutional ownership trends, replicating hedge fund strategies, portfolio overlap analysis, activist monitoring, and idea generation from smart-money flows. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `filer_cik` | string | No | SEC Central Index Key (10 digits, zero-padded) of the filing entity. | | `filer_cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `filing_date` | string | No | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].accession_number` | string | Unique SEC accession number for the filing (e.g., '0000950123-24-011775'). | | `results[].cusip` | string | The CUSIP identifier for the held security. | | `results[].file_number` | string | The 13F-specific file number assigned to the filer. | | `results[].filer_cik` | string | SEC Central Index Key (10 digits, zero-padded) of the filing entity. | | `results[].filing_date` | string | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). | | `results[].filing_url` | string | Direct URL to the filing on the SEC EDGAR website. | | `results[].film_number` | string | SEC EDGAR film number for the filing. | | `results[].form_type` | string | SEC form type (e.g., '13F-HR' for holdings report, '13F-HR/A' for amended report). | | `results[].investment_discretion` | string | Type of investment discretion. Possible values: SOLE, SHARED, DFND (defined). | | `results[].issuer_name` | string | Name of the company whose securities are held. | | `results[].market_value` | integer | Market value of the holding in USD. | | `results[].other_managers` | array[string] | List of names of other manager(s) sharing investment discretion over the reported holdings, if applicable. | | `results[].period` | string | The quarter end date that the filing covers (formatted as YYYY-MM-DD). | | `results[].put_call` | string | Indicates if the holding is a put or call option. Possible values: PUT, CALL, or empty for common stock. | | `results[].shares_or_principal_amount` | integer | Number of shares or principal amount held. | | `results[].shares_or_principal_type` | string | Type of amount reported. Possible values: SH (shares), PRN (principal amount). | | `results[].tickers` | array[string] | A list of ticker symbols for the filing entity. Multiple symbols may indicate different share classes (e.g., BRK.A and BRK.B for Berkshire Hathaway). | | `results[].title_of_class` | string | Description of the class of securities held (e.g., 'COM', 'CL A'). | | `results[].voting_authority_none` | integer | Number of shares with no voting authority. | | `results[].voting_authority_shared` | integer | Number of shares with shared voting authority. | | `results[].voting_authority_sole` | integer | Number of shares with sole voting authority. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/stocks/filings/vX/13-F?cursor=eyJsaW1pd...", "request_id": "a3f8b2c1d4e5f6g7", "results": [ { "accession_number": "0000950123-24-011775", "cusip": "023135106", "file_number": "028-04545", "filer_cik": "0001067983", "filing_date": "2024-11-14", "filing_url": "https://www.sec.gov/Archives/edgar/data/1067983/0000950123-24-011775.txt", "film_number": "241461756", "form_type": "13F-HR", "investment_discretion": "DFND", "issuer_name": "AMAZON COM INC", "market_value": 1439212920, "other_managers": [ "Buffett Warren E" ], "period": "2024-09-30", "put_call": null, "shares_or_principal_amount": 7724000, "shares_or_principal_type": "SH", "tickers": [ "BRK.A", "BRK.B" ], "title_of_class": "COM", "voting_authority_none": 0, "voting_authority_shared": 0, "voting_authority_sole": 7724000 }, { "accession_number": "0000950123-24-011775", "cusip": "025816109", "file_number": "028-04545", "filer_cik": "0001067983", "filing_date": "2024-11-14", "filing_url": "https://www.sec.gov/Archives/edgar/data/1067983/0000950123-24-011775.txt", "film_number": "241461756", "form_type": "13F-HR", "investment_discretion": "DFND", "issuer_name": "AMERICAN EXPRESS CO", "market_value": 311864270, "other_managers": [ "Buffett Warren E" ], "period": "2024-09-30", "put_call": null, "shares_or_principal_amount": 1149942, "shares_or_principal_type": "SH", "tickers": [ "BRK.A", "BRK.B" ], "title_of_class": "COM", "voting_authority_none": 0, "voting_authority_shared": 0, "voting_authority_sole": 1149942 } ], "status": "OK" } ``` --- # REST ## Stocks ### 8-K Text **Endpoint:** `GET /stocks/filings/8-K/vX/text` **Description:** Retrieve parsed plain-text content from the core Items sections of Form 8-K current reports. These disclose major material events such as acquisitions, leadership changes, material contracts, and other significant developments in AI-ready format. Use Cases: Real-time event detection and alerts, event-driven trading strategies, automated news digestion, M&A tracking, and corporate action timelines. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cik` | string | No | SEC Central Index Key (10 digits, zero-padded). | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | Stock ticker symbol for the company. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `form_type` | string | No | SEC form type (e.g., '8-K', '8-K/A' for amendments). | | `form_type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `form_type.gt` | string | No | Filter greater than the value. | | `form_type.gte` | string | No | Filter greater than or equal to the value. | | `form_type.lt` | string | No | Filter less than the value. | | `form_type.lte` | string | No | Filter less than or equal to the value. | | `filing_date` | string | No | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '99'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].accession_number` | string | SEC accession number uniquely identifying the filing (e.g., '0000004962-25-000002'). | | `results[].cik` | string | SEC Central Index Key (10 digits, zero-padded). | | `results[].filing_date` | string | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). | | `results[].filing_url` | string | SEC URL source for the full filing. | | `results[].form_type` | string | SEC form type (e.g., '8-K', '8-K/A' for amendments). | | `results[].items_text` | string | Parsed text content from the 8-K filing, including item numbers and descriptions. | | `results[].ticker` | string | Stock ticker symbol for the company. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 2, "next_url": "https://api.massive.com/stocks/filings/8-K/vX/text?cursor=eyJsaW1pd...", "request_id": "a3f8b2c1d4e5f6g7", "results": [ { "accession_number": "0000004962-25-000002", "cik": "0000004962", "filing_date": "2025-01-15", "filing_url": "https://www.sec.gov/Archives/edgar/data/4962/0000004962-25-000002.txt", "form_type": "8-K", "items_text": "Item 7.01\tRegulation FD Disclosure\n\nAmerican Express Company is hereby furnishing below delinquency and write-off statistics...", "ticker": "AXP" }, { "accession_number": "0000320193-25-000010", "cik": "0000320193", "filing_date": "2025-01-14", "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/0000320193-25-000010.txt", "form_type": "8-K", "items_text": "Item 2.02\tResults of Operations and Financial Condition\n\nOn January 14, 2025, Apple Inc. announced financial results...", "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Stocks ### Form 3 **Endpoint:** `GET /stocks/filings/vX/form-3` **Description:** SEC Form 3 filings reporting initial statements of beneficial ownership of securities. Filed by corporate insiders (directors, officers, and 10%+ shareholders) when they first acquire a position. ## Response Attributes | Field | Type | Description | | --- | --- | --- | --- # REST ## Stocks ### Form 4 **Endpoint:** `GET /stocks/filings/vX/form-4` **Description:** SEC Form 4 filings reporting changes in beneficial ownership of securities. Filed by corporate insiders (directors, officers, and 10%+ shareholders) within two business days of a transaction. ## Response Attributes | Field | Type | Description | | --- | --- | --- | --- # REST ## Stocks ### SEC EDGAR Index **Endpoint:** `GET /stocks/filings/vX/index` **Description:** Retrieve the master index of all SEC EDGAR filings, including form types, filing dates, CIKs, tickers, issuer names, accession numbers, and direct links to original documents on SEC.gov. This serves as the central discovery layer for the entire EDGAR database, allowing powerful filtering and sorting without manual website searches. Use Cases: Automated filing discovery and monitoring, regulatory compliance alerts, due diligence pipelines, competitive intelligence, and historical disclosure research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cik` | string | No | SEC Central Index Key (CIK) identifying the filing entity. | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | Stock ticker symbol for the filing entity, if available. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `form_type` | string | No | SEC form type (e.g., '10-K', '10-Q', '8-K', 'S-1', '4', etc.). | | `form_type.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `form_type.gt` | string | No | Filter greater than the value. | | `form_type.gte` | string | No | Filter greater than or equal to the value. | | `form_type.lt` | string | No | Filter less than the value. | | `form_type.lte` | string | No | Filter less than or equal to the value. | | `filing_date` | string | No | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '1000' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].accession_number` | string | SEC accession number uniquely identifying the filing (e.g., '0000320193-24-000123'). | | `results[].cik` | string | SEC Central Index Key (CIK) identifying the filing entity. | | `results[].filing_date` | string | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). | | `results[].filing_url` | string | Direct URL to the filing on the SEC EDGAR website. | | `results[].form_type` | string | SEC form type (e.g., '10-K', '10-Q', '8-K', 'S-1', '4', etc.). | | `results[].issuer_name` | string | Name of the company or entity that submitted the filing. | | `results[].ticker` | string | Stock ticker symbol for the filing entity, if available. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/stocks/filings/vX/index?cursor=eyJsaW1pd...", "request_id": "1daccfd9794e482e96d104dee6ed432b", "results": [ { "accession_number": "0000320193-25-000079", "cik": "0000320193", "filing_date": "2025-10-31", "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/0000320193-25-000079.txt", "form_type": "10-K", "issuer_name": "Apple Inc.", "ticker": "AAPL" }, { "accession_number": "0000950170-25-010491", "cik": "0000789019", "filing_date": "2025-01-29", "filing_url": "https://www.sec.gov/Archives/edgar/data/789019/0000950170-25-010491.txt", "form_type": "10-Q", "issuer_name": "MICROSOFT CORP", "ticker": "MSFT" } ], "status": "OK" } ``` --- # REST ## Stocks ### Risk Categories **Endpoint:** `GET /stocks/taxonomies/vX/risk-factors` **Description:** Access the full standardized hierarchical taxonomy used to classify risk factors in SEC filings. It includes primary, secondary, and tertiary categories with detailed descriptions and examples for consistent analysis across companies and time periods. Use Cases: Risk classification models, category-level analytics and dashboards, cross-company comparisons, quantitative risk scoring, and thematic monitoring. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `taxonomy` | number | No | Version identifier (e.g., '1.0', '1.1') for the taxonomy Value must be a floating point number. | | `taxonomy.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `taxonomy.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `taxonomy.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `taxonomy.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `primary_category` | string | No | Top-level risk category | | `primary_category.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `primary_category.gt` | string | No | Filter greater than the value. | | `primary_category.gte` | string | No | Filter greater than or equal to the value. | | `primary_category.lt` | string | No | Filter less than the value. | | `primary_category.lte` | string | No | Filter less than or equal to the value. | | `secondary_category` | string | No | Mid-level risk category | | `secondary_category.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `secondary_category.gt` | string | No | Filter greater than the value. | | `secondary_category.gte` | string | No | Filter greater than or equal to the value. | | `secondary_category.lt` | string | No | Filter less than the value. | | `secondary_category.lte` | string | No | Filter less than or equal to the value. | | `tertiary_category` | string | No | Most specific risk classification | | `tertiary_category.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `tertiary_category.gt` | string | No | Filter greater than the value. | | `tertiary_category.gte` | string | No | Filter greater than or equal to the value. | | `tertiary_category.lt` | string | No | Filter less than the value. | | `tertiary_category.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '999'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'taxonomy' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].description` | string | Detailed explanation of what this risk category encompasses, including specific examples and potential impacts | | `results[].primary_category` | string | Top-level risk category | | `results[].secondary_category` | string | Mid-level risk category | | `results[].taxonomy` | number | Version identifier (e.g., '1.0', '1.1') for the taxonomy | | `results[].tertiary_category` | string | Most specific risk classification | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": "daac836f71724420b66011d55d88b30b", "results": [ { "description": "Risk from inadequate performance management systems, unclear accountability structures, or ineffective measurement and incentive systems that could affect employee performance, goal achievement, and organizational effectiveness.", "primary_category": "Governance & Stakeholder", "secondary_category": "Organizational & Management", "taxonomy": "1.0", "tertiary_category": "Performance management and accountability" }, { "description": "Risk from requirements to monitor, document, and report on compliance with privacy and data protection regulations including risks from compliance program effectiveness, record-keeping requirements, and breach notification obligations.", "primary_category": "Regulatory & Compliance", "secondary_category": "Data & Privacy", "taxonomy": "1.0", "tertiary_category": "Compliance monitoring and reporting" } ], "status": "OK" } ``` --- # REST ## Stocks ### Risk Factors **Endpoint:** `GET /stocks/filings/vX/risk-factors` **Description:** Standardized, machine-readable risk factor disclosures from SEC filings. Each risk factor is categorized using a consistent taxonomy, enabling direct comparison across time periods or between different companies. For details on the methodology used, see our [research paper](https://arxiv.org/pdf/2601.15247). Use Cases: Risk trend analysis, cross-company comparisons, compliance tools, classification models, investment research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `filing_date` | string | No | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). | | `filing_date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `filing_date.gt` | string | No | Filter greater than the value. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. | | `filing_date.lt` | string | No | Filter less than the value. | | `filing_date.lte` | string | No | Filter less than or equal to the value. | | `ticker` | string | No | Stock ticker symbol for the company. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `cik` | string | No | SEC Central Index Key (10 digits, zero-padded). | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '49999'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].cik` | string | SEC Central Index Key (10 digits, zero-padded). | | `results[].filing_date` | string | Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). | | `results[].primary_category` | string | Top-level risk category | | `results[].secondary_category` | string | Mid-level risk category | | `results[].supporting_text` | string | Snippet of text to support the given label | | `results[].tertiary_category` | string | Most specific risk classification | | `results[].ticker` | string | Stock ticker symbol for the company. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": "c7856101f86c20d855b0ea1c5a6d6efa", "results": [ { "cik": "0001005101", "filing_date": "2025-09-19", "primary_category": "financial_and_market", "secondary_category": "credit_and_liquidity", "supporting_text": "In addition to the net proceeds we received from our recent equity and debt financings, we may need to raise additional equity or debt financing to continue the development and marketing of our Fintech app, to fund ongoing operations, invest in acquisitions, and for working capital purposes. Our inability to raise such additional financing may limit our ability to continue the development of our Fintech app.", "tertiary_category": "access_to_capital_and_financing", "ticker": "MGLD" } ], "status": "OK" } ``` --- # REST ## Stocks ### Balance Sheets **Endpoint:** `GET /stocks/financials/v1/balance-sheets` **Description:** Retrieve comprehensive balance sheet data for public companies, containing quarterly and annual financial positions. This dataset includes detailed asset, liability, and equity positions representing the company's financial position at specific points in time. Balance sheet data represents point-in-time snapshots rather than cumulative flows, showing what the company owns, owes, and shareholders' equity as of each period end date. Use Cases: Financial analysis, company valuation, asset assessment, debt analysis, equity research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cik` | string | No | The company's Central Index Key (CIK), a unique identifier assigned by the U.S. Securities and Exchange Commission (SEC). You can look up a company's CIK using the [SEC CIK Lookup tool](https://www.sec.gov/search-filings/cik-lookup). | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `tickers` | string | No | Filter for arrays that contain the value. | | `tickers.all_of` | string | No | Filter for arrays that contain all of the values. Multiple values can be specified by using a comma separated list. | | `tickers.any_of` | string | No | Filter for arrays that contain any of the values. Multiple values can be specified by using a comma separated list. | | `period_end` | string | No | The last date of the reporting period, representing the specific point in time when the balance sheet snapshot was taken. Value must be formatted 'yyyy-mm-dd'. | | `period_end.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date` | string | No | The date when the financial statement was filed with the SEC. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `fiscal_year` | number | No | The fiscal year for the reporting period. Value must be a floating point number. | | `fiscal_year.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `fiscal_year.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `fiscal_year.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `fiscal_year.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `fiscal_quarter` | number | No | The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Value must be a floating point number. | | `fiscal_quarter.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `fiscal_quarter.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `fiscal_quarter.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `fiscal_quarter.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `timeframe` | string | No | The reporting period type. Possible values include: quarterly, annual. | | `timeframe.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `timeframe.gt` | string | No | Filter greater than the value. | | `timeframe.gte` | string | No | Filter greater than or equal to the value. | | `timeframe.lt` | string | No | Filter less than the value. | | `timeframe.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].accounts_payable` | number | Amounts owed to suppliers and vendors for goods and services purchased on credit. | | `results[].accrued_and_other_current_liabilities` | number | Current liabilities not classified elsewhere, including accrued expenses, taxes payable, and other obligations due within one year. | | `results[].accumulated_other_comprehensive_income` | number | Cumulative gains and losses that bypass the income statement, including foreign currency translation adjustments and unrealized gains/losses on securities. | | `results[].additional_paid_in_capital` | number | Amount received from shareholders in excess of the par or stated value of shares issued. | | `results[].cash_and_equivalents` | number | Cash on hand and short-term, highly liquid investments that are readily convertible to known amounts of cash. | | `results[].cik` | string | The company's Central Index Key (CIK), a unique identifier assigned by the U.S. Securities and Exchange Commission (SEC). You can look up a company's CIK using the [SEC CIK Lookup tool](https://www.sec.gov/search-filings/cik-lookup). | | `results[].commitments_and_contingencies` | number | Disclosed amount related to contractual commitments and potential liabilities that may arise from uncertain future events. | | `results[].common_stock` | number | Par or stated value of common shares outstanding representing basic ownership in the company. | | `results[].debt_current` | number | Short-term borrowings and the current portion of long-term debt due within one year. | | `results[].deferred_revenue_current` | number | Customer payments received in advance for goods or services to be delivered within one year. | | `results[].filing_date` | string | The date when the financial statement was filed with the SEC. | | `results[].fiscal_quarter` | number | The fiscal quarter number (1, 2, 3, or 4) for the reporting period. | | `results[].fiscal_year` | number | The fiscal year for the reporting period. | | `results[].goodwill` | number | Intangible asset representing the excess of purchase price over fair value of net assets acquired in business combinations. | | `results[].intangible_assets_net` | number | Intangible assets other than goodwill, including patents, trademarks, and customer relationships, net of accumulated amortization. | | `results[].inventories` | number | Raw materials, work-in-process, and finished goods held for sale in the ordinary course of business. | | `results[].long_term_debt_and_capital_lease_obligations` | number | Long-term borrowings and capital lease obligations with maturities greater than one year. | | `results[].noncontrolling_interest` | number | Equity in consolidated subsidiaries not owned by the parent company, representing minority shareholders' ownership. | | `results[].other_assets` | number | Non-current assets not classified elsewhere, including long-term investments, deferred tax assets, and other long-term assets. | | `results[].other_current_assets` | number | Current assets not classified elsewhere, including prepaid expenses, taxes receivable, and other assets expected to be converted to cash within one year. | | `results[].other_equity` | number | Equity components not classified elsewhere in shareholders' equity. | | `results[].other_noncurrent_liabilities` | number | Non-current liabilities not classified elsewhere, including deferred tax liabilities, pension obligations, and other long-term liabilities. | | `results[].period_end` | string | The last date of the reporting period, representing the specific point in time when the balance sheet snapshot was taken. | | `results[].preferred_stock` | number | Par or stated value of preferred shares outstanding with preferential rights over common stock. | | `results[].property_plant_equipment_net` | number | Tangible fixed assets used in operations, reported net of accumulated depreciation. | | `results[].receivables` | number | Amounts owed to the company by customers and other parties, primarily accounts receivable, net of allowances for doubtful accounts. | | `results[].retained_earnings_deficit` | number | Cumulative net income earned by the company less dividends paid to shareholders since inception. | | `results[].short_term_investments` | number | Marketable securities and other investments with maturities of one year or less that are not classified as cash equivalents. | | `results[].tickers` | array[string] | A list of ticker symbols under which the company is listed. Multiple symbols may indicate different share classes for the same company. | | `results[].timeframe` | string | The reporting period type. Possible values include: quarterly, annual. | | `results[].total_assets` | number | Sum of all current and non-current assets representing everything the company owns or controls. | | `results[].total_current_assets` | number | Sum of all current assets expected to be converted to cash, sold, or consumed within one year. | | `results[].total_current_liabilities` | number | Sum of all liabilities expected to be settled within one year. | | `results[].total_equity` | number | Sum of all equity components representing shareholders' total ownership interest in the company. | | `results[].total_equity_attributable_to_parent` | number | Total shareholders' equity attributable to the parent company, excluding noncontrolling interests. | | `results[].total_liabilities` | number | Sum of all current and non-current liabilities representing everything the company owes. | | `results[].total_liabilities_and_equity` | number | Sum of total liabilities and total equity, which should equal total assets per the fundamental accounting equation. | | `results[].treasury_stock` | number | Cost of the company's own shares that have been repurchased and are held in treasury, typically reported as a negative value. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": "d9f86384d43845a4a3d7b79098fb08dd", "results": [ { "accounts_payable": 50374000000, "accrued_and_other_current_liabilities": 62499000000, "accumulated_other_comprehensive_income": -6369000000, "cash_and_equivalents": 36269000000, "cik": "0000320193", "common_stock": 89806000000, "debt_current": 19268000000, "deferred_revenue_current": 8979000000, "filing_date": "2025-08-01", "fiscal_quarter": 3, "fiscal_year": 2025, "inventories": 5925000000, "long_term_debt_and_capital_lease_obligations": 82430000000, "other_assets": 160496000000, "other_current_assets": 14359000000, "other_equity": 0, "other_noncurrent_liabilities": 42115000000, "period_end": "2025-06-28", "property_plant_equipment_net": 48508000000, "receivables": 46835000000, "retained_earnings_deficit": -17607000000, "tickers": [ "AAPL" ], "timeframe": "quarterly", "total_assets": 331495000000, "total_current_assets": 103388000000, "total_current_liabilities": 141120000000, "total_equity": 65830000000, "total_equity_attributable_to_parent": 65830000000, "total_liabilities": 265665000000, "total_liabilities_and_equity": 331495000000 } ], "status": "OK" } ``` --- # REST ## Stocks ### Cash Flow Statements **Endpoint:** `GET /stocks/financials/v1/cash-flow-statements` **Description:** Retrieve comprehensive cash flow statement data for public companies, including quarterly, annual, and trailing twelve-month cash flows. This dataset includes detailed operating, investing, and financing cash flows with TTM calculations that sum all cash flow components over four quarters. Use Cases: Cash flow analysis, liquidity assessment, operational efficiency evaluation, investment activity tracking. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cik` | string | No | The company's Central Index Key (CIK), a unique identifier assigned by the U.S. Securities and Exchange Commission (SEC). You can look up a company’s CIK using the [SEC CIK Lookup tool](https://www.sec.gov/search-filings/cik-lookup). | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `period_end` | string | No | The last date of the reporting period (formatted as YYYY-MM-DD). Value must be formatted 'yyyy-mm-dd'. | | `period_end.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date` | string | No | The date when the financial statement was filed with the SEC. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `tickers` | string | No | Filter for arrays that contain the value. | | `tickers.all_of` | string | No | Filter for arrays that contain all of the values. Multiple values can be specified by using a comma separated list. | | `tickers.any_of` | string | No | Filter for arrays that contain any of the values. Multiple values can be specified by using a comma separated list. | | `fiscal_year` | number | No | The fiscal year for the reporting period. Value must be a floating point number. | | `fiscal_year.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `fiscal_year.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `fiscal_year.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `fiscal_year.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `fiscal_quarter` | number | No | The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Value must be a floating point number. | | `fiscal_quarter.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `fiscal_quarter.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `fiscal_quarter.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `fiscal_quarter.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `timeframe` | string | No | The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. | | `timeframe.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `timeframe.gt` | string | No | Filter greater than the value. | | `timeframe.gte` | string | No | Filter greater than or equal to the value. | | `timeframe.lt` | string | No | Filter less than the value. | | `timeframe.lte` | string | No | Filter less than or equal to the value. | | `max_ticker` | string | No | Filter equal to the value. | | `max_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `max_ticker.gt` | string | No | Filter greater than the value. | | `max_ticker.gte` | string | No | Filter greater than or equal to the value. | | `max_ticker.lt` | string | No | Filter less than the value. | | `max_ticker.lte` | string | No | Filter less than or equal to the value. | | `min_ticker` | string | No | Filter equal to the value. | | `min_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `min_ticker.gt` | string | No | Filter greater than the value. | | `min_ticker.gte` | string | No | Filter greater than or equal to the value. | | `min_ticker.lt` | string | No | Filter less than the value. | | `min_ticker.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].cash_from_operating_activities_continuing_operations` | number | Cash generated from continuing business operations before discontinued operations. | | `results[].change_in_cash_and_equivalents` | number | Net change in cash and cash equivalents during the period, representing the sum of operating, investing, and financing cash flows plus currency effects. | | `results[].change_in_other_operating_assets_and_liabilities_net` | number | Net change in working capital components including accounts receivable, inventory, accounts payable, and other operating items. | | `results[].cik` | string | The company's Central Index Key (CIK), a unique identifier assigned by the U.S. Securities and Exchange Commission (SEC). You can look up a company’s CIK using the [SEC CIK Lookup tool](https://www.sec.gov/search-filings/cik-lookup). | | `results[].depreciation_depletion_and_amortization` | number | Non-cash charges for the reduction in value of tangible and intangible assets over time. | | `results[].dividends` | number | Cash payments to shareholders in the form of dividends, typically reported as negative values. | | `results[].effect_of_currency_exchange_rate` | number | Impact of foreign exchange rate changes on cash and cash equivalents denominated in foreign currencies. | | `results[].filing_date` | string | The date when the financial statement was filed with the SEC. | | `results[].fiscal_quarter` | number | The fiscal quarter number (1, 2, 3, or 4) for the reporting period. | | `results[].fiscal_year` | number | The fiscal year for the reporting period. | | `results[].income_loss_from_discontinued_operations` | number | After-tax income or loss from business operations that have been discontinued. | | `results[].long_term_debt_issuances_repayments` | number | Net cash flows from issuing or repaying long-term debt obligations. | | `results[].net_cash_from_financing_activities` | number | Total cash generated or used by financing activities, including debt issuance, debt repayment, dividends, and share transactions. | | `results[].net_cash_from_financing_activities_continuing_operations` | number | Cash flows from financing activities of continuing operations before discontinued operations. | | `results[].net_cash_from_financing_activities_discontinued_operations` | number | Cash flows from financing activities of discontinued business segments. | | `results[].net_cash_from_investing_activities` | number | Total cash generated or used by investing activities, including capital expenditures, acquisitions, and asset sales. | | `results[].net_cash_from_investing_activities_continuing_operations` | number | Cash flows from investing activities of continuing operations before discontinued operations. | | `results[].net_cash_from_investing_activities_discontinued_operations` | number | Cash flows from investing activities of discontinued business segments. | | `results[].net_cash_from_operating_activities` | number | Total cash generated or used by operating activities, representing cash flow from core business operations. | | `results[].net_cash_from_operating_activities_discontinued_operations` | number | Cash flows from operating activities of discontinued business segments. | | `results[].net_income` | number | Net income used as the starting point for operating cash flow calculations. | | `results[].noncontrolling_interests` | number | Cash flows related to minority shareholders in consolidated subsidiaries. | | `results[].other_cash_adjustments` | number | Other miscellaneous adjustments to cash flows not classified elsewhere. | | `results[].other_financing_activities` | number | Cash flows from financing activities not classified elsewhere, including share repurchases and other equity transactions. | | `results[].other_investing_activities` | number | Cash flows from investing activities not classified elsewhere, including acquisitions, divestitures, and investments. | | `results[].other_operating_activities` | number | Other adjustments to reconcile net income to operating cash flow not classified elsewhere. | | `results[].period_end` | string | The last date of the reporting period (formatted as YYYY-MM-DD). | | `results[].purchase_of_property_plant_and_equipment` | number | Cash outflows for capital expenditures on fixed assets, typically reported as negative values. | | `results[].sale_of_property_plant_and_equipment` | number | Cash inflows from disposing of fixed assets, typically reported as positive values. | | `results[].short_term_debt_issuances_repayments` | number | Net cash flows from issuing or repaying short-term debt obligations. | | `results[].tickers` | array[string] | A list of ticker symbols under which the company is listed. Multiple symbols may indicate different share classes for the same company. | | `results[].timeframe` | string | The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": "d6d389ca03a0450d93c4ecb13ff26dae", "results": [ { "cash_from_operating_activities_continuing_operations": 27867000000, "change_in_cash_and_equivalents": 8107000000, "change_in_other_operating_assets_and_liabilities_net": -2034000000, "cik": "0000320193", "depreciation_depletion_and_amortization": 2830000000, "dividends": -3945000000, "filing_date": "2025-08-01", "fiscal_quarter": 3, "fiscal_year": 2025, "long_term_debt_issuances_repayments": -1192000000, "net_cash_from_financing_activities": -24833000000, "net_cash_from_financing_activities_continuing_operations": -24833000000, "net_cash_from_investing_activities": 5073000000, "net_cash_from_investing_activities_continuing_operations": 5073000000, "net_cash_from_operating_activities": 27867000000, "net_income": 23434000000, "other_financing_activities": -23599000000, "other_investing_activities": 8535000000, "other_operating_activities": 3637000000, "period_end": "2025-06-28", "purchase_of_property_plant_and_equipment": -3462000000, "short_term_debt_issuances_repayments": 3903000000, "tickers": [ "AAPL" ], "timeframe": "quarterly" } ], "status": "OK" } ``` --- # REST ## Stocks ### Float **Endpoint:** `GET /stocks/vX/float` **Description:** Retrieve the latest free float for a specified stock ticker. Free float represents the shares outstanding that are considered available for public trading, after accounting for shares held by strategic or long-term holders. Shares held by founders, officers and directors, employees, controlling shareholders, affiliated companies, private equity and venture capital firms, sovereign wealth funds, government entities, employee plans, trusts, restricted or locked-up holdings, and any shareholder owning 5% or more of total issued shares are not treated as part of the tradable supply. Shares held by pension funds, mutual funds, ETFs, hedge funds without board representation, depositary banks, and other broadly diversified investors are generally treated as part of the public free float. Free float reflects a stock’s effective tradable supply and is a key input for assessing liquidity, volatility, market impact, and ownership structure. Figures may reflect ownership changes with a reporting lag, since they are based on publicly available disclosures and ownership information rather than real-time trading activity. Use cases: liquidity analysis, volatility modeling, position sizing, market impact estimation, and ownership structure analysis. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | The primary ticker symbol for the stock. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `free_float_percent` | number | No | Percentage of total shares outstanding that are available for public trading, rounded to two decimal places. Value must be a floating point number. | | `free_float_percent.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `free_float_percent.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `free_float_percent.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `free_float_percent.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].effective_date` | string | The effective date of the free float measurement. | | `results[].free_float` | integer | Number of shares freely tradable in the market. Free float shares represent the portion of a company's outstanding shares that is freely tradable in the market, excluding any holdings considered strategic, controlling, or long term. This excludes insiders, directors, founders, 5 percent plus shareholders, cross holdings, government stakes except pensions, restricted or locked up shares, employee plans, and any entities with board influence, leaving only shares that are genuinely available for public trading. | | `results[].free_float_percent` | number | Percentage of total shares outstanding that are available for public trading, rounded to two decimal places. | | `results[].ticker` | string | The primary ticker symbol for the stock. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": 1, "results": [ { "effective_date": "2025-11-01", "free_float": 15000000000, "free_float_percent": 98.5, "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Stocks ### Income Statements **Endpoint:** `GET /stocks/financials/v1/income-statements` **Description:** Retrieve comprehensive income statement data for public companies, including key metrics such as revenue, expenses, and net income for various reporting periods. This dataset provides detailed financial performance data including revenue breakdowns, operating expenses, and profitability metrics across quarterly, annual, and trailing twelve-month periods. Use Cases: Profitability analysis, revenue trend analysis, expense management evaluation, earnings assessment. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `cik` | string | No | The company's Central Index Key (CIK), a unique identifier assigned by the U.S. Securities and Exchange Commission (SEC). You can look up a company’s CIK using the [SEC CIK Lookup tool](https://www.sec.gov/search-filings/cik-lookup). | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `tickers` | string | No | Filter for arrays that contain the value. | | `tickers.all_of` | string | No | Filter for arrays that contain all of the values. Multiple values can be specified by using a comma separated list. | | `tickers.any_of` | string | No | Filter for arrays that contain any of the values. Multiple values can be specified by using a comma separated list. | | `period_end` | string | No | The last date of the reporting period (formatted as YYYY-MM-DD). Value must be formatted 'yyyy-mm-dd'. | | `period_end.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `period_end.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date` | string | No | The date when the financial statement was filed with the SEC. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gt` | string | No | Filter greater than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.gte` | string | No | Filter greater than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lt` | string | No | Filter less than the value. Value must be formatted 'yyyy-mm-dd'. | | `filing_date.lte` | string | No | Filter less than or equal to the value. Value must be formatted 'yyyy-mm-dd'. | | `fiscal_year` | number | No | The fiscal year for the reporting period. Value must be a floating point number. | | `fiscal_year.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `fiscal_year.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `fiscal_year.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `fiscal_year.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `fiscal_quarter` | number | No | The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Value must be a floating point number. | | `fiscal_quarter.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `fiscal_quarter.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `fiscal_quarter.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `fiscal_quarter.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `timeframe` | string | No | The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. | | `timeframe.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `timeframe.gt` | string | No | Filter greater than the value. | | `timeframe.gte` | string | No | Filter greater than or equal to the value. | | `timeframe.lt` | string | No | Filter less than the value. | | `timeframe.lte` | string | No | Filter less than or equal to the value. | | `max_ticker` | string | No | Filter equal to the value. | | `max_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `max_ticker.gt` | string | No | Filter greater than the value. | | `max_ticker.gte` | string | No | Filter greater than or equal to the value. | | `max_ticker.lt` | string | No | Filter less than the value. | | `max_ticker.lte` | string | No | Filter less than or equal to the value. | | `min_ticker` | string | No | Filter equal to the value. | | `min_ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `min_ticker.gt` | string | No | Filter greater than the value. | | `min_ticker.gte` | string | No | Filter greater than or equal to the value. | | `min_ticker.lt` | string | No | Filter less than the value. | | `min_ticker.lte` | string | No | Filter less than or equal to the value. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].basic_earnings_per_share` | number | Earnings per share calculated using the weighted average number of basic shares outstanding. For TTM records, recalculated as TTM net income divided by average basic shares outstanding over the four quarters. | | `results[].basic_shares_outstanding` | number | Weighted average number of common shares outstanding during the period, used in basic EPS calculation. For TTM records, represents the average over the four most recent quarters. | | `results[].cik` | string | The company's Central Index Key (CIK), a unique identifier assigned by the U.S. Securities and Exchange Commission (SEC). You can look up a company’s CIK using the [SEC CIK Lookup tool](https://www.sec.gov/search-filings/cik-lookup). | | `results[].consolidated_net_income_loss` | number | Total net income or loss for the consolidated entity including all subsidiaries. | | `results[].cost_of_revenue` | number | Direct costs attributable to the production of goods or services sold, also known as cost of goods sold (COGS). | | `results[].depreciation_depletion_amortization` | number | Non-cash expenses representing the allocation of asset costs over their useful lives. | | `results[].diluted_earnings_per_share` | number | Earnings per share calculated using diluted shares outstanding, including the effect of potentially dilutive securities. For TTM records, recalculated as TTM net income divided by average diluted shares outstanding over the four quarters. | | `results[].diluted_shares_outstanding` | number | Weighted average number of shares outstanding including the dilutive effect of stock options, warrants, and convertible securities. For TTM records, represents the average over the four most recent quarters. | | `results[].discontinued_operations` | number | After-tax results from business segments that have been or will be disposed of. | | `results[].ebitda` | number | Earnings before interest, taxes, depreciation, and amortization, a measure of operating performance. | | `results[].equity_in_affiliates` | number | The company's share of income or losses from equity method investments in affiliated companies. | | `results[].extraordinary_items` | number | Unusual and infrequent gains or losses that are both unusual in nature and infrequent in occurrence. | | `results[].filing_date` | string | The date when the financial statement was filed with the SEC. | | `results[].fiscal_quarter` | number | The fiscal quarter number (1, 2, 3, or 4) for the reporting period. | | `results[].fiscal_year` | number | The fiscal year for the reporting period. | | `results[].gross_profit` | number | Revenue minus cost of revenue, representing profit before operating expenses. | | `results[].income_before_income_taxes` | number | Pre-tax income calculated as operating income plus total other income/expense. | | `results[].income_taxes` | number | Income tax expense or benefit for the period. | | `results[].interest_expense` | number | Cost of borrowed funds, including interest on debt and other financing obligations. | | `results[].interest_income` | number | Income earned from interest-bearing investments and cash equivalents. | | `results[].net_income_loss_attributable_common_shareholders` | number | Net income or loss available to common shareholders after preferred dividends and noncontrolling interests. | | `results[].noncontrolling_interest` | number | The portion of net income attributable to minority shareholders in consolidated subsidiaries. | | `results[].operating_income` | number | Income from operations calculated as gross profit minus total operating expenses, excluding non-operating items. | | `results[].other_income_expense` | number | Non-operating income and expenses not related to the company's core business operations. | | `results[].other_operating_expenses` | number | Operating expenses not classified in the main expense categories. | | `results[].period_end` | string | The last date of the reporting period (formatted as YYYY-MM-DD). | | `results[].preferred_stock_dividends_declared` | number | Dividends declared on preferred stock during the period. | | `results[].research_development` | number | Expenses incurred for research and development activities to create new products or improve existing ones. | | `results[].revenue` | number | Total revenue or net sales for the period, representing the company's gross income from operations. | | `results[].selling_general_administrative` | number | Expenses related to selling products and general administrative costs not directly tied to production. | | `results[].tickers` | array[string] | A list of ticker symbols under which the company is listed. Multiple symbols may indicate different share classes for the same company. | | `results[].timeframe` | string | The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. | | `results[].total_operating_expenses` | number | Sum of all operating expenses including cost of revenue, SG&A, R&D, depreciation, and other operating expenses. | | `results[].total_other_income_expense` | number | Net total of all non-operating income and expenses including interest income, interest expense, and other items. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "request_id": "5b3cc7c674b34fdd89034b74500bfab5", "results": [ { "basic_earnings_per_share": 1.57, "basic_shares_outstanding": 14902886000, "cik": "0000320193", "consolidated_net_income_loss": 23434000000, "cost_of_revenue": 50318000000, "diluted_earnings_per_share": 1.57, "diluted_shares_outstanding": 14948179000, "ebitda": 31032000000, "filing_date": "2025-08-01", "fiscal_quarter": 3, "fiscal_year": 2025, "gross_profit": 43718000000, "income_before_income_taxes": 28031000000, "income_taxes": 4597000000, "net_income_loss_attributable_common_shareholders": 23434000000, "operating_income": 28202000000, "other_income_expense": -171000000, "other_operating_expenses": 0, "period_end": "2025-06-28", "research_development": 8866000000, "revenue": 94036000000, "selling_general_administrative": 6650000000, "tickers": [ "AAPL" ], "timeframe": "quarterly", "total_operating_expenses": 15516000000, "total_other_income_expense": -171000000 } ], "status": "OK" } ``` --- # REST ## Stocks ### Ratios **Endpoint:** `GET /stocks/financials/v1/ratios` **Description:** Retrieve comprehensive financial ratios data providing key valuation, profitability, liquidity, and leverage metrics for public companies. This dataset combines data from income statements, balance sheets, and cash flow statements with daily stock prices to calculate ratios for the most recent trading day using trailing twelve months (TTM) financials. Use Cases: Company valuation, comparative analysis, financial health assessment, investment screening. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Stock ticker symbol for the company. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `cik` | string | No | Central Index Key (CIK) number assigned by the SEC to identify the company. | | `cik.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `cik.gt` | string | No | Filter greater than the value. | | `cik.gte` | string | No | Filter greater than or equal to the value. | | `cik.lt` | string | No | Filter less than the value. | | `cik.lte` | string | No | Filter less than or equal to the value. | | `price` | number | No | Stock price used in ratio calculations, typically the closing price for the given date. Value must be a floating point number. | | `price.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `price.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `price.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `price.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `average_volume` | number | No | Average trading volume over the last 30 trading days, providing context for liquidity. Value must be a floating point number. | | `average_volume.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `average_volume.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `average_volume.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `average_volume.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `market_cap` | number | No | Market capitalization, calculated as stock price multiplied by total shares outstanding. Value must be a floating point number. | | `market_cap.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `market_cap.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `market_cap.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `market_cap.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `earnings_per_share` | number | No | Earnings per share, calculated as net income available to common shareholders divided by weighted shares outstanding. Value must be a floating point number. | | `earnings_per_share.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `earnings_per_share.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `earnings_per_share.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `earnings_per_share.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `price_to_earnings` | number | No | Price-to-earnings ratio, calculated as stock price divided by earnings per share. Only calculated when earnings per share is positive. Value must be a floating point number. | | `price_to_earnings.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `price_to_earnings.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `price_to_earnings.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `price_to_earnings.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `price_to_book` | number | No | Price-to-book ratio, calculated as stock price divided by book value per share, comparing market value to book value. Value must be a floating point number. | | `price_to_book.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `price_to_book.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `price_to_book.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `price_to_book.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `price_to_sales` | number | No | Price-to-sales ratio, calculated as stock price divided by revenue per share, measuring valuation relative to sales. Value must be a floating point number. | | `price_to_sales.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `price_to_sales.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `price_to_sales.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `price_to_sales.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `price_to_cash_flow` | number | No | Price-to-cash-flow ratio, calculated as stock price divided by operating cash flow per share. Only calculated when operating cash flow per share is positive. Value must be a floating point number. | | `price_to_cash_flow.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `price_to_cash_flow.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `price_to_cash_flow.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `price_to_cash_flow.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `price_to_free_cash_flow` | number | No | Price-to-free-cash-flow ratio, calculated as stock price divided by free cash flow per share. Only calculated when free cash flow per share is positive. Value must be a floating point number. | | `price_to_free_cash_flow.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `price_to_free_cash_flow.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `price_to_free_cash_flow.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `price_to_free_cash_flow.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `dividend_yield` | number | No | Dividend yield, calculated as annual dividends per share divided by stock price, measuring the income return on investment. Value must be a floating point number. | | `dividend_yield.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `dividend_yield.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `dividend_yield.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `dividend_yield.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `return_on_assets` | number | No | Return on assets ratio, calculated as net income divided by total assets, measuring how efficiently a company uses its assets to generate profit. Value must be a floating point number. | | `return_on_assets.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `return_on_assets.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `return_on_assets.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `return_on_assets.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `return_on_equity` | number | No | Return on equity ratio, calculated as net income divided by total shareholders' equity, measuring profitability relative to shareholders' equity. Value must be a floating point number. | | `return_on_equity.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `return_on_equity.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `return_on_equity.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `return_on_equity.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `debt_to_equity` | number | No | Debt-to-equity ratio, calculated as total debt (current debt plus long-term debt) divided by total shareholders' equity, measuring financial leverage. Value must be a floating point number. | | `debt_to_equity.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `debt_to_equity.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `debt_to_equity.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `debt_to_equity.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `current` | number | No | Current ratio, calculated as total current assets divided by total current liabilities, measuring short-term liquidity. Value must be a floating point number. | | `current.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `current.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `current.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `current.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `quick` | number | No | Quick ratio (acid-test ratio), calculated as (current assets minus inventories) divided by current liabilities, measuring immediate liquidity. Value must be a floating point number. | | `quick.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `quick.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `quick.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `quick.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `cash` | number | No | Cash ratio, calculated as cash and cash equivalents divided by current liabilities, measuring the most liquid form of liquidity coverage. Value must be a floating point number. | | `cash.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `cash.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `cash.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `cash.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `ev_to_sales` | number | No | Enterprise value to sales ratio, calculated as enterprise value divided by revenue, measuring company valuation relative to sales. Value must be a floating point number. | | `ev_to_sales.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `ev_to_sales.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `ev_to_sales.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `ev_to_sales.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `ev_to_ebitda` | number | No | Enterprise value to EBITDA ratio, calculated as enterprise value divided by EBITDA, measuring company valuation relative to earnings before interest, taxes, depreciation, and amortization. Value must be a floating point number. | | `ev_to_ebitda.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `ev_to_ebitda.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `ev_to_ebitda.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `ev_to_ebitda.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `enterprise_value` | number | No | Enterprise value, calculated as market capitalization plus total debt minus cash and cash equivalents, representing total company value. Value must be a floating point number. | | `enterprise_value.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `enterprise_value.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `enterprise_value.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `enterprise_value.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `free_cash_flow` | number | No | Free cash flow, calculated as operating cash flow minus capital expenditures (purchase of property, plant, and equipment). Value must be a floating point number. | | `free_cash_flow.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `free_cash_flow.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `free_cash_flow.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `free_cash_flow.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].average_volume` | number | Average trading volume over the last 30 trading days, providing context for liquidity. | | `results[].cash` | number | Cash ratio, calculated as cash and cash equivalents divided by current liabilities, measuring the most liquid form of liquidity coverage. | | `results[].cik` | string | Central Index Key (CIK) number assigned by the SEC to identify the company. | | `results[].current` | number | Current ratio, calculated as total current assets divided by total current liabilities, measuring short-term liquidity. | | `results[].date` | string | Date for which the ratios are calculated, representing the trading date with available price data. | | `results[].debt_to_equity` | number | Debt-to-equity ratio, calculated as total debt (current debt plus long-term debt) divided by total shareholders' equity, measuring financial leverage. | | `results[].dividend_yield` | number | Dividend yield, calculated as annual dividends per share divided by stock price, measuring the income return on investment. | | `results[].earnings_per_share` | number | Earnings per share, calculated as net income available to common shareholders divided by weighted shares outstanding. | | `results[].enterprise_value` | number | Enterprise value, calculated as market capitalization plus total debt minus cash and cash equivalents, representing total company value. | | `results[].ev_to_ebitda` | number | Enterprise value to EBITDA ratio, calculated as enterprise value divided by EBITDA, measuring company valuation relative to earnings before interest, taxes, depreciation, and amortization. | | `results[].ev_to_sales` | number | Enterprise value to sales ratio, calculated as enterprise value divided by revenue, measuring company valuation relative to sales. | | `results[].free_cash_flow` | number | Free cash flow, calculated as operating cash flow minus capital expenditures (purchase of property, plant, and equipment). | | `results[].market_cap` | number | Market capitalization, calculated as stock price multiplied by total shares outstanding. | | `results[].price` | number | Stock price used in ratio calculations, typically the closing price for the given date. | | `results[].price_to_book` | number | Price-to-book ratio, calculated as stock price divided by book value per share, comparing market value to book value. | | `results[].price_to_cash_flow` | number | Price-to-cash-flow ratio, calculated as stock price divided by operating cash flow per share. Only calculated when operating cash flow per share is positive. | | `results[].price_to_earnings` | number | Price-to-earnings ratio, calculated as stock price divided by earnings per share. Only calculated when earnings per share is positive. | | `results[].price_to_free_cash_flow` | number | Price-to-free-cash-flow ratio, calculated as stock price divided by free cash flow per share. Only calculated when free cash flow per share is positive. | | `results[].price_to_sales` | number | Price-to-sales ratio, calculated as stock price divided by revenue per share, measuring valuation relative to sales. | | `results[].quick` | number | Quick ratio (acid-test ratio), calculated as (current assets minus inventories) divided by current liabilities, measuring immediate liquidity. | | `results[].return_on_assets` | number | Return on assets ratio, calculated as net income divided by total assets, measuring how efficiently a company uses its assets to generate profit. | | `results[].return_on_equity` | number | Return on equity ratio, calculated as net income divided by total shareholders' equity, measuring profitability relative to shareholders' equity. | | `results[].ticker` | string | Stock ticker symbol for the company. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": "8f5374516fec4a819070e53609f47fab", "results": [ { "average_volume": 47500000, "cash": 0.19, "cik": "320193", "current": 0.68, "date": "2024-09-19", "debt_to_equity": 1.52, "dividend_yield": 0.0044, "earnings_per_share": 6.57, "enterprise_value": 3555509835190, "ev_to_ebitda": 26.98, "ev_to_sales": 9.22, "free_cash_flow": 104339000000, "market_cap": 3479770835190, "price": 228.87, "price_to_book": 52.16, "price_to_cash_flow": 30.78, "price_to_earnings": 34.84, "price_to_free_cash_flow": 33.35, "price_to_sales": 9.02, "quick": 0.63, "return_on_assets": 0.3075, "return_on_equity": 1.5284, "ticker": "AAPL" } ], "status": "OK" } ``` --- # REST ## Stocks ### Short Interest **Endpoint:** `GET /stocks/v1/short-interest` **Description:** Retrieve aggregated short interest data reported to FINRA by broker-dealers for a specified stock ticker on a two-week cadence. Short interest represents the total number of shares sold short but not yet covered or closed out, serving as an indicator of market sentiment and potential price movements. High short interest can signal bearish sentiment or highlight opportunities such as potential short squeezes. This endpoint provides essential insights for investors monitoring market positioning and sentiment. Use Cases: Market sentiment analysis, short-squeeze prediction, risk management, trading strategy refinement. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | The primary ticker symbol for the stock. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `days_to_cover` | number | No | Calculated as short_interest divided by avg_daily_volume, representing the estimated number of days it would take to cover all short positions based on average trading volume. Value must be a floating point number. | | `days_to_cover.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be a floating point number. | | `days_to_cover.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `days_to_cover.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `days_to_cover.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `days_to_cover.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `settlement_date` | string | No | The date (formatted as YYYY-MM-DD) on which the short interest data is considered settled, typically based on exchange reporting schedules. | | `settlement_date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `settlement_date.gt` | string | No | Filter greater than the value. | | `settlement_date.gte` | string | No | Filter greater than or equal to the value. | | `settlement_date.lt` | string | No | Filter less than the value. | | `settlement_date.lte` | string | No | Filter less than or equal to the value. | | `avg_daily_volume` | integer | No | The average daily trading volume for the stock over a specified period, typically used to contextualize short interest. Value must be an integer. | | `avg_daily_volume.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be an integer. | | `avg_daily_volume.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `avg_daily_volume.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `avg_daily_volume.lt` | integer | No | Filter less than the value. Value must be an integer. | | `avg_daily_volume.lte` | integer | No | Filter less than or equal to the value. Value must be an integer. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].avg_daily_volume` | integer | The average daily trading volume for the stock over a specified period, typically used to contextualize short interest. | | `results[].days_to_cover` | number | Calculated as short_interest divided by avg_daily_volume, representing the estimated number of days it would take to cover all short positions based on average trading volume. | | `results[].settlement_date` | string | The date (formatted as YYYY-MM-DD) on which the short interest data is considered settled, typically based on exchange reporting schedules. | | `results[].short_interest` | integer | The total number of shares that have been sold short but have not yet been covered or closed out. | | `results[].ticker` | string | The primary ticker symbol for the stock. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "avg_daily_volume": 2340158, "days_to_cover": 1.67, "settlement_date": "2025-03-14", "short_interest": 3906231, "ticker": "A" } ], "status": "OK" } ``` --- # REST ## Stocks ### Short Volume **Endpoint:** `GET /stocks/v1/short-volume` **Description:** Retrieve daily aggregated short sale volume data reported to FINRA from off-exchange trading venues and alternative trading systems (ATS) for a specified stock ticker. Unlike short interest, which measures outstanding short positions at specific reporting intervals, short volume captures the daily trading activity of short sales. Monitoring short volume helps users detect immediate market sentiment shifts, analyze trading behavior, and identify trends in short-selling activity that may signal upcoming price movements. Use Cases: Intraday sentiment analysis, short-sale trend identification, liquidity analysis, trading strategy optimization. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | The primary ticker symbol for the stock. | | `ticker.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `ticker.gt` | string | No | Filter greater than the value. | | `ticker.gte` | string | No | Filter greater than or equal to the value. | | `ticker.lt` | string | No | Filter less than the value. | | `ticker.lte` | string | No | Filter less than or equal to the value. | | `date` | string | No | The date of trade activity reported in the format YYYY-MM-DD | | `date.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. | | `date.gt` | string | No | Filter greater than the value. | | `date.gte` | string | No | Filter greater than or equal to the value. | | `date.lt` | string | No | Filter less than the value. | | `date.lte` | string | No | Filter less than or equal to the value. | | `short_volume_ratio` | number | No | The percentage of total volume that was sold short. Calculated as (short_volume / total_volume) * 100. Value must be a floating point number. | | `short_volume_ratio.any_of` | string | No | Filter equal to any of the values. Multiple values can be specified by using a comma separated list. Value must be a floating point number. | | `short_volume_ratio.gt` | number | No | Filter greater than the value. Value must be a floating point number. | | `short_volume_ratio.gte` | number | No | Filter greater than or equal to the value. Value must be a floating point number. | | `short_volume_ratio.lt` | number | No | Filter less than the value. Value must be a floating point number. | | `short_volume_ratio.lte` | number | No | Filter less than or equal to the value. Value must be a floating point number. | | `limit` | integer | No | Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'. | | `sort` | string | No | A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | The results for this request. | | `results[].adf_short_volume` | integer | Short volume reported via the Alternative Display Facility (ADF), excluding exempt volume. | | `results[].adf_short_volume_exempt` | integer | Short volume reported via ADF that was marked as exempt. | | `results[].date` | string | The date of trade activity reported in the format YYYY-MM-DD | | `results[].exempt_volume` | number | Portion of short volume that was marked as exempt from regulation SHO. | | `results[].nasdaq_carteret_short_volume` | integer | Short volume reported from Nasdaq's Carteret facility, excluding exempt volume. | | `results[].nasdaq_carteret_short_volume_exempt` | integer | Short volume from Nasdaq Carteret that was marked as exempt. | | `results[].nasdaq_chicago_short_volume` | integer | Short volume reported from Nasdaq's Chicago facility, excluding exempt volume. | | `results[].nasdaq_chicago_short_volume_exempt` | integer | Short volume from Nasdaq Chicago that was marked as exempt. | | `results[].non_exempt_volume` | number | Portion of short volume that was not exempt from regulation SHO (i.e., short_volume - exempt_volume). | | `results[].nyse_short_volume` | integer | Short volume reported from NYSE facilities, excluding exempt volume. | | `results[].nyse_short_volume_exempt` | integer | Short volume from NYSE facilities that was marked as exempt. | | `results[].short_volume` | number | Total number of shares sold short across all venues for the ticker on the given date. | | `results[].short_volume_ratio` | number | The percentage of total volume that was sold short. Calculated as (short_volume / total_volume) * 100. | | `results[].ticker` | string | The primary ticker symbol for the stock. | | `results[].total_volume` | number | Total reported volume across all venues for the ticker on the given date. | | `status` | enum: OK | The status of this request's response. | ## Sample Response ```json { "count": 1, "request_id": 1, "results": [ { "adf_short_volume": 0, "adf_short_volume_exempt": 0, "date": "2025-03-25", "exempt_volume": 1, "nasdaq_carteret_short_volume": 179943, "nasdaq_carteret_short_volume_exempt": 1, "nasdaq_chicago_short_volume": 1, "nasdaq_chicago_short_volume_exempt": 0, "non_exempt_volume": 181218, "nyse_short_volume": 1275, "nyse_short_volume_exempt": 0, "short_volume": 181219, "short_volume_ratio": 31.57, "ticker": "A", "total_volume": 574084 } ], "status": "OK" } ``` --- # REST ## Stocks ### Condition Codes **Endpoint:** `GET /v3/reference/conditions` **Description:** Retrieve a unified and comprehensive list of trade and quote conditions from various upstream market data providers (e.g., CTA, UTP, OPRA, FINRA). Each condition identifies special circumstances associated with market data, such as trades occurring outside regular sessions or at averaged prices, and outlines how these conditions affect metrics like high, low, open, close, and volume. By examining these mapped conditions, users can accurately interpret the context of trades and quotes, apply appropriate filtering, and ensure that aggregated data correctly reflects eligible trading activity. Use Cases: Data interpretation, unified condition mapping, filtering and analysis, algorithmic adjustments, compliance and reporting. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter for conditions within a given asset class. | | `data_type` | string | No | Filter by data type. | | `id` | integer | No | Filter for conditions with a given ID. | | `sip` | string | No | Filter by SIP. If the condition contains a mapping for that SIP, the condition will be returned. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of conditions that match your query. | | `results[].abbreviation` | string | A commonly-used abbreviation for this condition. | | `results[].asset_class` | enum: stocks, options, crypto, fx | An identifier for a group of similar financial instruments. | | `results[].data_types` | array[string] | Data types that this condition applies to. | | `results[].description` | string | A short description of the semantics of this condition. | | `results[].exchange` | integer | If present, mapping this condition from a Massive code to a SIP symbol depends on this attribute. In other words, data with this condition attached comes exclusively from the given exchange. | | `results[].id` | integer | An identifier used by Massive for this condition. Unique per data type. | | `results[].legacy` | boolean | If true, this condition is from an old version of the SIPs' specs and no longer is used. Other conditions may or may not reuse the same symbol as this one. | | `results[].name` | string | The name of this condition. | | `results[].sip_mapping` | object | A comprehensive mapping that translates condition codes from individual SIPs (CTA, OPRA, UTP) to a unified code used by Massive. This facilitates consistent interpretation and application of market data conditions across different data streams, ensuring that users can accurately apply these conditions to their data analysis and reporting. | | `results[].type` | enum: sale_condition, quote_condition, sip_generated_flag, financial_status_indicator, short_sale_restriction_indicator, settlement_condition, market_condition, trade_thru_exempt | An identifier for a collection of related conditions. | | `results[].update_rules` | object | A list of aggregation rules. | | `status` | string | The status of this request's response. | --- # REST ## Stocks ### Exchanges **Endpoint:** `GET /v3/reference/exchanges` **Description:** Retrieve a list of known exchanges, including their identifiers, names, market types, and other relevant attributes. This information helps map exchange codes, understand market coverage, and integrate exchange details into applications. Use Cases: Data mapping, market coverage analysis, application development (e.g., display exchange options), and ensuring regulatory compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter by asset class. | | `locale` | string | No | Filter by locale. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].acronym` | string | A commonly used abbreviation for this exchange. | | `results[].asset_class` | enum: stocks, options, crypto, fx, futures | An identifier for a group of similar financial instruments. | | `results[].id` | integer | A unique identifier used by Massive for this exchange. | | `results[].locale` | enum: us, global | An identifier for a geographical location. | | `results[].mic` | string | The Market Identifier Code of this exchange (see ISO 10383). | | `results[].name` | string | Name of this exchange. | | `results[].operating_mic` | string | The MIC of the entity that operates this exchange. | | `results[].participant_id` | string | The ID used by SIP's to represent this exchange. | | `results[].type` | enum: exchange, TRF, SIP | Represents the type of exchange. | | `results[].url` | string | A link to this exchange's website, if one exists. | | `status` | string | The status of this request's response. | --- # REST ## Stocks ### Market Holidays **Endpoint:** `GET /v1/marketstatus/upcoming` **Description:** Retrieve upcoming market holidays and their corresponding open/close times. This endpoint is forward-looking only, listing future holidays that affect market hours. Use this data to plan ahead for trading activities and system operations. Use Cases: Trading schedule adjustments, integrated holiday calendars, operational planning (e.g., system maintenance), and notifying users about upcoming market closures. ## Response Attributes | Field | Type | Description | | --- | --- | --- | ## Sample Response ```json [ { "date": "2020-11-26", "exchange": "NYSE", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "NASDAQ", "name": "Thanksgiving", "status": "closed" }, { "date": "2020-11-26", "exchange": "OTC", "name": "Thanksgiving", "status": "closed" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NASDAQ", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" }, { "close": "2020-11-27T18:00:00.000Z", "date": "2020-11-27", "exchange": "NYSE", "name": "Thanksgiving", "open": "2020-11-27T14:30:00.000Z", "status": "early-close" } ] ``` --- # REST ## Stocks ### Market Status **Endpoint:** `GET /v1/marketstatus/now` **Description:** Retrieve the current trading status for various exchanges and overall financial markets. This endpoint provides real-time indicators of whether markets are open, closed, or operating in pre-market/after-hours sessions, along with timing details for the current or upcoming trading periods. Use Cases: Real-time monitoring, algorithm scheduling, UI updates, and operational planning. ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `afterHours` | boolean | Whether or not the market is in post-market hours. | | `currencies` | object | Contains the status of various currency markets. | | `currencies.crypto` | string | The status of the crypto market. | | `currencies.fx` | string | The status of the forex market. | | `earlyHours` | boolean | Whether or not the market is in pre-market hours. | | `exchanges` | object | Contains the status of different US stock exchanges (e.g., Nasdaq, NYSE). | | `exchanges.nasdaq` | string | The status of the Nasdaq market. | | `exchanges.nyse` | string | The status of the NYSE market. | | `exchanges.otc` | string | The status of the OTC market. | | `indicesGroups` | object | Contains the status of various index groups (e.g., MSCI, FTSE Russell). | | `indicesGroups.cccy` | string | The status of Cboe Streaming Market Indices Cryptocurrency ("CCCY") indices trading hours. | | `indicesGroups.cgi` | string | The status of Cboe Global Indices ("CGI") trading hours. | | `indicesGroups.dow_jones` | string | The status of Dow Jones indices trading hours | | `indicesGroups.ftse_russell` | string | The status of Financial Times Stock Exchange Group ("FTSE") Russell indices trading hours. | | `indicesGroups.msci` | string | The status of Morgan Stanley Capital International ("MSCI") indices trading hours. | | `indicesGroups.mstar` | string | The status of Morningstar ("MSTAR") indices trading hours. | | `indicesGroups.mstarc` | string | The status of Morningstar Customer ("MSTARC") indices trading hours. | | `indicesGroups.nasdaq` | string | The status of National Association of Securities Dealers Automated Quotations ("Nasdaq") indices trading hours. | | `indicesGroups.s_and_p` | string | The status of Standard & Poor's ("S&P") indices trading hours. | | `indicesGroups.societe_generale` | string | The status of Societe Generale indices trading hours. | | `market` | string | The status of the market as a whole. | | `serverTime` | string | The current time of the server, returned as a date-time in RFC3339 format. | ## Sample Response ```json { "afterHours": true, "currencies": { "crypto": "open", "fx": "open" }, "earlyHours": false, "exchanges": { "nasdaq": "extended-hours", "nyse": "extended-hours", "otc": "closed" }, "market": "extended-hours", "serverTime": "2020-11-10T17:37:37-05:00" } ``` --- # REST ## Stocks ### News **Endpoint:** `GET /v2/reference/news` **Description:** Retrieve the most recent news articles related to a specified ticker, along with summaries, source details, and sentiment analysis. This endpoint consolidates relevant financial news in one place, extracting associated tickers, assigning sentiment, and providing direct links to the original sources. By incorporating publisher information, article metadata, and sentiment reasoning, users can quickly gauge market sentiment, stay informed on company developments, and integrate news insights into their trading or research workflows. Use Cases: Market sentiment analysis, investment research, automated monitoring, and portfolio strategy refinement. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `published_utc` | N/A | No | Return results published on, before, or after this date. | | `ticker.gte` | string | No | Search by ticker. | | `ticker.gt` | string | No | Search by ticker. | | `ticker.lte` | string | No | Search by ticker. | | `ticker.lt` | string | No | Search by ticker. | | `published_utc.gte` | N/A | No | Search by published_utc. | | `published_utc.gt` | N/A | No | Search by published_utc. | | `published_utc.lte` | N/A | No | Search by published_utc. | | `published_utc.lt` | N/A | No | Search by published_utc. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].amp_url` | string | The mobile friendly Accelerated Mobile Page (AMP) URL. | | `results[].article_url` | string | A link to the news article. | | `results[].author` | string | The article's author. | | `results[].description` | string | A description of the article. | | `results[].id` | string | Unique identifier for the article. | | `results[].image_url` | string | The article's image URL. | | `results[].insights` | array[object] | The insights related to the article. | | `results[].keywords` | array[string] | The keywords associated with the article (which will vary depending on the publishing source). | | `results[].published_utc` | string | The UTC date and time when the article was published, formatted in RFC3339 standard (e.g. YYYY-MM-DDTHH:MM:SSZ). | | `results[].publisher` | object | Details the source of the news article, including the publisher's name, logo, and homepage URLs. This information helps users identify and access the original source of news content. | | `results[].tickers` | array[string] | The ticker symbols associated with the article. | | `results[].title` | string | The title of the news article. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "count": 1, "next_url": "https://api.massive.com:443/v2/reference/news?cursor=eyJsaW1pdCI6MSwic29ydCI6InB1Ymxpc2hlZF91dGMiLCJvcmRlciI6ImFzY2VuZGluZyIsInRpY2tlciI6e30sInB1Ymxpc2hlZF91dGMiOnsiZ3RlIjoiMjAyMS0wNC0yNiJ9LCJzZWFyY2hfYWZ0ZXIiOlsxNjE5NDA0Mzk3MDAwLG51bGxdfQ", "request_id": "831afdb0b8078549fed053476984947a", "results": [ { "amp_url": "https://m.uk.investing.com/news/stock-market-news/markets-are-underestimating-fed-cuts-ubs-3559968?ampMode=1", "article_url": "https://uk.investing.com/news/stock-market-news/markets-are-underestimating-fed-cuts-ubs-3559968", "author": "Sam Boughedda", "description": "UBS analysts warn that markets are underestimating the extent of future interest rate cuts by the Federal Reserve, as the weakening economy is likely to justify more cuts than currently anticipated.", "id": "8ec638777ca03b553ae516761c2a22ba2fdd2f37befae3ab6fdab74e9e5193eb", "image_url": "https://i-invdn-com.investing.com/news/LYNXNPEC4I0AL_L.jpg", "insights": [ { "sentiment": "positive", "sentiment_reasoning": "UBS analysts are providing a bullish outlook on the extent of future Federal Reserve rate cuts, suggesting that markets are underestimating the number of cuts that will occur.", "ticker": "UBS" } ], "keywords": [ "Federal Reserve", "interest rates", "economic data" ], "published_utc": "2024-06-24T18:33:53Z", "publisher": { "favicon_url": "https://s3.massive.com/public/assets/news/favicons/investing.ico", "homepage_url": "https://www.investing.com/", "logo_url": "https://s3.massive.com/public/assets/news/logos/investing.png", "name": "Investing.com" }, "tickers": [ "UBS" ], "title": "Markets are underestimating Fed cuts: UBS By Investing.com - Investing.com UK" } ], "status": "OK" } ``` --- # REST ## Stocks ### Full Market Snapshot **Endpoint:** `GET /v2/snapshot/locale/us/markets/stocks/tickers` **Description:** Retrieve a comprehensive snapshot of the entire U.S. stock market, covering over 10,000+ actively traded tickers in a single response. This endpoint consolidates key information like pricing, volume, and trade activity to provide a full-market-snapshot view, eliminating the need for multiple queries. Snapshot data is cleared daily at 3:30 AM EST and begins to repopulate as exchanges report new data, which can start as early as 4:00 AM EST. By accessing all tickers at once, users can efficiently monitor broad market conditions, perform bulk analyses, and power applications that require complete, current market information. Use Cases: Market overview, bulk data processing, heat maps/dashboards, automated monitoring. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `tickers` | array | No | A case-sensitive comma separated list of tickers to get snapshots for. For example, AAPL,TSLA,GOOG. Empty string defaults to querying all tickers. | | `include_otc` | boolean | No | Include OTC securities in the response. Default is false (don't include OTC securities). | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `status` | string | The status of this request's response. | | `tickers` | array[object] | An array of snapshot data for the specified tickers. | | `tickers[].day` | object | The most recent daily bar for this ticker. | | `tickers[].fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `tickers[].lastQuote` | object | The most recent quote for this ticker. This is only returned if your current plan includes quotes. | | `tickers[].lastTrade` | object | The most recent trade for this ticker. This is only returned if your current plan includes trades. | | `tickers[].min` | object | The most recent minute bar for this ticker. | | `tickers[].prevDay` | object | The previous day's bar for this ticker. | | `tickers[].ticker` | string | The exchange symbol that this item is traded under. | | `tickers[].todaysChange` | number | The value of the change from the previous day. | | `tickers[].todaysChangePerc` | number | The percentage change since the previous day. | | `tickers[].updated` | integer | The last updated timestamp. | ## Sample Response ```json { "count": 1, "status": "OK", "tickers": [ { "day": { "c": 20.506, "dv": "37216.0", "h": 20.64, "l": 20.506, "o": 20.64, "v": 37216, "vw": 20.616 }, "lastQuote": { "P": 20.6, "S": 22, "p": 20.5, "s": 13, "t": 1605192959994246100 }, "lastTrade": { "c": [ 14, 41 ], "ds": "2416.0", "i": "71675577320245", "p": 20.506, "s": 2416, "t": 1605192894630916600, "x": 4 }, "min": { "av": 37216, "c": 20.506, "dav": "37216.0", "dv": "5000.0", "h": 20.506, "l": 20.506, "n": 1, "o": 20.506, "t": 1684428600000, "v": 5000, "vw": 20.5105 }, "prevDay": { "c": 20.63, "h": 21, "l": 20.5, "o": 20.79, "v": 292738, "vw": 20.6939 }, "ticker": "BCAT", "todaysChange": -0.124, "todaysChangePerc": -0.601, "updated": 1605192894630916600 } ] } ``` --- # REST ## Stocks ### Single Ticker Snapshot **Endpoint:** `GET /v2/snapshot/locale/us/markets/stocks/tickers/{stocksTicker}` **Description:** Retrieve the most recent market data snapshot for a single ticker. This endpoint consolidates the latest trade, quote, and aggregated data (minute, day, and previous day) for the specified ticker. Snapshot data is cleared at 3:30 AM EST and begins updating as exchanges report new information, which can start as early as 4:00 AM EST. By focusing on a single ticker, users can closely monitor real-time developments and incorporate up-to-date information into trading strategies, alerts, or company-level reporting. Use Cases: Focused monitoring, real-time analysis, price alerts, investor relations. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stocksTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `status` | string | The status of this request's response. | | `request_id` | string | A request id assigned by the server. | | `ticker` | object | Contains the requested snapshot data for the specified ticker. | | `ticker.day` | object | The most recent daily bar for this ticker. | | `ticker.fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `ticker.lastQuote` | object | The most recent quote for this ticker. This is only returned if your current plan includes quotes. | | `ticker.lastTrade` | object | The most recent trade for this ticker. This is only returned if your current plan includes trades. | | `ticker.min` | object | The most recent minute bar for this ticker. | | `ticker.prevDay` | object | The previous day's bar for this ticker. | | `ticker.ticker` | string | The exchange symbol that this item is traded under. | | `ticker.todaysChange` | number | The value of the change from the previous day. | | `ticker.todaysChangePerc` | number | The percentage change since the previous day. | | `ticker.updated` | integer | The last updated timestamp. | ## Sample Response ```json { "request_id": "657e430f1ae768891f018e08e03598d8", "status": "OK", "ticker": { "day": { "c": 120.4229, "dv": "28727868.0", "h": 120.53, "l": 118.81, "o": 119.62, "v": 28727868, "vw": 119.725 }, "lastQuote": { "P": 120.47, "S": 4, "p": 120.46, "s": 8, "t": 1605195918507251700 }, "lastTrade": { "c": [ 14, 41 ], "ds": "236.0", "i": "4046", "p": 120.47, "s": 236, "t": 1605195918306274000, "x": 10 }, "min": { "av": 28724441, "c": 120.4201, "dav": "28724441.0", "dv": "270796.0", "h": 120.468, "l": 120.37, "n": 762, "o": 120.435, "t": 1684428720000, "v": 270796, "vw": 120.4129 }, "prevDay": { "c": 119.49, "h": 119.63, "l": 116.44, "o": 117.19, "v": 110597265, "vw": 118.4998 }, "ticker": "AAPL", "todaysChange": 0.98, "todaysChangePerc": 0.82, "updated": 1605195918306274000 } } ``` --- # REST ## Stocks ### Top Market Movers **Endpoint:** `GET /v2/snapshot/locale/us/markets/stocks/{direction}` **Description:** Retrieve snapshot data highlighting the top 20 gainers or losers in the U.S. stock market. Gainers are stocks with the largest percentage increase since the previous day’s close, and losers are those with the largest percentage decrease. To ensure meaningful insights, only tickers with a minimum trading volume of 10,000 are included. Snapshot data is cleared daily at 3:30 AM EST and begins repopulating as exchanges report new information, typically starting around 4:00 AM EST. By focusing on these market movers, users can quickly identify significant price shifts and monitor evolving market dynamics. Use Cases: Market movers identification, trading strategies, market sentiment analysis, portfolio adjustments. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `direction` | string | Yes | The direction of the snapshot results to return. | | `include_otc` | boolean | No | Include OTC securities in the response. Default is false (don't include OTC securities). | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `status` | string | The status of this request's response. | | `tickers` | array[object] | An array of snapshot data for the specified tickers. | | `tickers[].day` | object | The most recent daily bar for this ticker. | | `tickers[].fmv` | number | Fair market value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `tickers[].lastQuote` | object | The most recent quote for this ticker. This is only returned if your current plan includes quotes. | | `tickers[].lastTrade` | object | The most recent trade for this ticker. This is only returned if your current plan includes trades. | | `tickers[].min` | object | The most recent minute bar for this ticker. | | `tickers[].prevDay` | object | The previous day's bar for this ticker. | | `tickers[].ticker` | string | The exchange symbol that this item is traded under. | | `tickers[].todaysChange` | number | The value of the change from the previous day. | | `tickers[].todaysChangePerc` | number | The percentage change since the previous day. | | `tickers[].updated` | integer | The last updated timestamp. | ## Sample Response ```json { "status": "OK", "tickers": [ { "day": { "c": 14.2284, "dv": "133963.0", "h": 15.09, "l": 14.2, "o": 14.33, "v": 133963, "vw": 14.5311 }, "lastQuote": { "P": 14.44, "S": 11, "p": 14.2, "s": 25, "t": 1605195929997325600 }, "lastTrade": { "c": [ 63 ], "ds": "536.0", "i": "79372124707124", "p": 14.2284, "s": 536, "t": 1605195848258266000, "x": 4 }, "min": { "av": 133963, "c": 14.2284, "dav": "133963.0", "dv": "6108.0", "h": 14.325, "l": 14.2, "n": 5, "o": 14.28, "t": 1684428600000, "v": 6108, "vw": 14.2426 }, "prevDay": { "c": 0.73, "h": 0.799, "l": 0.73, "o": 0.75, "v": 1568097, "vw": 0.7721 }, "ticker": "PDS", "todaysChange": 13.498, "todaysChangePerc": 1849.096, "updated": 1605195848258266000 } ] } ``` --- # REST ## Stocks ### Unified Snapshot **Endpoint:** `GET /v3/snapshot` **Description:** Retrieve unified snapshots of market data for multiple asset classes including stocks, options, forex, and cryptocurrencies in a single request. This endpoint consolidates key metrics such as last trade, last quote, open, high, low, close, and volume for a comprehensive view of current market conditions. By aggregating data from various sources into one response, users can efficiently monitor, compare, and act on information spanning multiple markets and asset types. Use Cases: Cross-market analysis, diversified portfolio monitoring, global market insights, multi-asset trading strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Search a range of tickers lexicographically. | | `type` | string | No | Query by the type of asset. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `ticker.any_of` | string | No | Comma separated list of tickers, up to a maximum of 250. If no tickers are passed then all results will be returned in a paginated manner. Warning: The maximum number of characters allowed in a URL are subject to your technology stack. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 250. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].error` | string | The error while looking for this ticker. | | `results[].fmv` | number | Fair Market Value is only available on Business plans. It is our proprietary algorithm to generate a real-time, accurate, fair market value of a tradable security. For more information, contact us. | | `results[].fmv_last_updated` | integer | If Fair Market Value (FMV) is available, this field is the nanosecond timestamp of the last FMV calculation. | | `results[].last_minute` | object | The most recent minute aggregate for this stock. | | `results[].last_quote` | object | The most recent quote for this contract. This is only returned if your current plan includes quotes. | | `results[].last_trade` | object | The most recent quote for this contract. This is only returned if your current plan includes trades. | | `results[].market_status` | string | The market status for the market that trades this ticker. Possible values for stocks, options, crypto, and forex snapshots are open, closed, early_trading, or late_trading. Possible values for indices snapshots are regular_trading, closed, early_trading, and late_trading. | | `results[].message` | string | The error message while looking for this ticker. | | `results[].name` | string | The name of this contract. | | `results[].session` | object | Comprehensive trading session metrics, detailing price changes, trading volume, and key price points (open, close, high, low) for the asset within the current trading day. Includes specific changes during early, regular, and late trading periods to enable detailed performance analysis and trend tracking. | | `results[].ticker` | string | The ticker symbol for the asset. | | `results[].type` | enum: stocks, options, fx, crypto, indices | The asset class for this ticker. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "abc123", "results": [ { "break_even_price": 171.075, "details": { "contract_type": "call", "exercise_style": "american", "expiration_date": "2022-10-14", "shares_per_contract": 100, "strike_price": 5, "underlying_ticker": "NCLH" }, "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "greeks": { "delta": 0.5520187372272933, "gamma": 0.00706756515659829, "theta": -0.018532772783847958, "vega": 0.7274811132998142 }, "implied_volatility": 0.3048997097864957, "last_quote": { "ask": 21.25, "ask_exchange": 12, "ask_size": 110, "bid": 20.9, "bid_exchange": 10, "bid_size": 172, "last_updated": 1636573458756383500, "midpoint": 21.075, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "exchange": 316, "price": 0.05, "sip_timestamp": 1675280958783136800, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "NCLH $5 Call", "open_interest": 8921, "session": { "change": -0.05, "change_percent": -1.07, "close": 6.65, "decimal_volume": "67.0", "early_trading_change": -0.01, "early_trading_change_percent": -0.03, "high": 7.01, "late_trading_change": -0.4, "late_trading_change_percent": -0.02, "low": 5.42, "open": 6.7, "previous_close": 6.71, "regular_trading_change": -0.6, "regular_trading_change_percent": -0.5, "volume": 67 }, "ticker": "O:NCLH221014C00005000", "type": "options", "underlying_asset": { "change_to_break_even": 23.123999999999995, "last_updated": 1636573459862384600, "price": 147.951, "ticker": "AAPL", "timeframe": "REAL-TIME" } }, { "fmv": 0.05, "fmv_last_updated": 1636573458757383400, "last_minute": { "close": 412.05, "decimal_volume": "610.0", "high": 412.1, "low": 412.05, "open": 412.1, "transactions": 26, "volume": 610, "vwap": 412.0881 }, "last_quote": { "ask": 21.25, "ask_exchange": 300, "ask_size": 110, "bid": 20.9, "bid_exchange": 323, "bid_size": 172, "last_updated": 1636573458756383500, "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ 209 ], "decimal_size": "2.0", "exchange": 316, "id": "4064", "last_updated": 1675280958783136800, "price": 0.05, "size": 2, "timeframe": "REAL-TIME" }, "market_status": "closed", "name": "Apple Inc.", "session": { "change": -1.05, "change_percent": -4.67, "close": 21.4, "decimal_volume": "37.0", "early_trading_change": -0.39, "early_trading_change_percent": -0.07, "high": 22.49, "late_trading_change": 1.2, "late_trading_change_percent": 3.92, "low": 21.35, "open": 22.49, "previous_close": 22.45, "volume": 37 }, "ticker": "AAPL", "type": "stocks" }, { "error": "NOT_FOUND", "message": "Ticker not found.", "ticker": "TSLAAPL" } ], "status": "OK" } ``` --- # REST ## Stocks ### Exponential Moving Average (EMA) **Endpoint:** `GET /v1/indicators/ema/{stockTicker}` **Description:** Retrieve the Exponential Moving Average (EMA) for a specified ticker over a defined time range. The EMA places greater weight on recent prices, enabling quicker trend detection and more responsive signals. Use Cases: Trend identification, EMA crossover signals, dynamic support/resistance levels, and adjusting strategies based on recent market volatility. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stockTicker` | string | Yes | Specify a case-sensitive ticker symbol for which to get exponential moving average (EMA) data. For example, AAPL represents Apple Inc. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the exponential moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the exponential moving average (EMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the exponential moving average. i.e. 'close' will result in using close prices to calculate the exponential moving average (EMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the EMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/ema/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Stocks ### Moving Average Convergence/Divergence (MACD) **Endpoint:** `GET /v1/indicators/macd/{stockTicker}` **Description:** Retrieve the Moving Average Convergence/Divergence (MACD) for a specified ticker over a defined time range. MACD is a momentum indicator derived from two moving averages, helping to identify trend strength, direction, and potential trading signals. Use Cases: Momentum analysis, signal generation (crossover events), spotting overbought/oversold conditions, and confirming trend directions. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stockTicker` | string | Yes | Specify a case-sensitive ticker symbol for which to get moving average convergence/divergence (MACD) data. For example, AAPL represents Apple Inc. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the MACD are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `short_window` | integer | No | The short window size used to calculate MACD data. | | `long_window` | integer | No | The long window size used to calculate MACD data. | | `signal_window` | integer | No | The window size used to calculate the MACD signal line. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the MACD. i.e. 'close' will result in using close prices to calculate the MACD. | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the MACD indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Each entry in the values array represents MACD indicator data for a specific timestamp and includes: | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/macd/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "histogram": 38.3801666667, "signal": 106.9811666667, "timestamp": 1517562000016, "value": 145.3613333333 }, { "histogram": 41.098859136, "signal": 102.7386283473, "timestamp": 1517562001016, "value": 143.8374874833 } ] }, "status": "OK" } ``` --- # REST ## Stocks ### Relative Strength Index (RSI) **Endpoint:** `GET /v1/indicators/rsi/{stockTicker}` **Description:** Retrieve the Relative Strength Index (RSI) for a specified ticker over a defined time range. The RSI measures the speed and magnitude of price changes, oscillating between 0 and 100 to help identify overbought or oversold conditions. Use Cases: Overbought/oversold detection, divergence analysis, trend confirmation, and refining market entry/exit strategies. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stockTicker` | string | Yes | Specify a case-sensitive ticker symbol for which to get relative strength index (RSI) data. For example, AAPL represents Apple Inc. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the relative strength index are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the relative strength index (RSI). | | `series_type` | string | No | The price in the aggregate which will be used to calculate the relative strength index. i.e. 'close' will result in using close prices to calculate the relative strength index (RSI). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the RSI indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/rsi/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "url": "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 82.19 } ] }, "status": "OK" } ``` --- # REST ## Stocks ### Simple Moving Average (SMA) **Endpoint:** `GET /v1/indicators/sma/{stockTicker}` **Description:** Retrieve the Simple Moving Average (SMA) for a specified ticker over a defined time range. The SMA calculates the average price across a set number of periods, smoothing price fluctuations to reveal underlying trends and potential signals. Use Cases: Trend analysis, trading signal generation (e.g., SMA crossovers), identifying support/resistance, and refining entry/exit timing. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stockTicker` | string | Yes | Specify a case-sensitive ticker symbol for which to get simple moving average (SMA) data. For example, AAPL represents Apple Inc. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp. | | `timespan` | string | No | The size of the aggregate time window. | | `adjusted` | boolean | No | Whether or not the aggregates used to calculate the simple moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits. | | `window` | integer | No | The window size used to calculate the simple moving average (SMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average. | | `series_type` | string | No | The price in the aggregate which will be used to calculate the simple moving average. i.e. 'close' will result in using close prices to calculate the simple moving average (SMA). | | `expand_underlying` | boolean | No | Whether or not to include the aggregates used to calculate this indicator in the response. | | `order` | string | No | The order in which to return the results, ordered by timestamp. | | `limit` | integer | No | Limit the number of results returned, default is 10 and max is 5000 | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | object | The results of the SMA indicator calculation. | | `results.underlying` | object | The underlying aggregates used. | | `results.values` | array[object] | Timestamp or indicator value. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v1/indicators/sma/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": { "underlying": { "aggregates": [ { "c": 75.0875, "h": 75.15, "l": 73.7975, "n": 1, "o": 74.06, "t": 1577941200000, "v": 135647456, "vw": 74.6099 }, { "c": 74.3575, "h": 75.145, "l": 74.125, "n": 1, "o": 74.2875, "t": 1578027600000, "v": 146535512, "vw": 74.7026 } ], "url": "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/2003-01-01/2022-07-25" }, "values": [ { "timestamp": 1517562000016, "value": 140.139 } ] }, "status": "OK" } ``` --- # REST ## Stocks ### All Tickers **Endpoint:** `GET /v3/reference/tickers` **Description:** Retrieve a comprehensive list of ticker symbols supported by Massive across various asset classes (e.g., stocks, indices, forex, crypto). Each ticker entry provides essential details such as symbol, name, market, currency, and active status. Use Cases: Asset discovery, data integration, filtering/selection, and application development. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Specify a ticker symbol. Defaults to empty string which queries all tickers. | | `type` | string | No | Specify the type of the tickers. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). Defaults to empty string which queries all types. | | `market` | string | No | Filter by market type. By default all markets are included. | | `exchange` | string | No | Specify the asset's primary exchange Market Identifier Code (MIC) according to [ISO 10383](https://www.iso20022.org/market-identifier-codes). Defaults to empty string which queries all exchanges. | | `cusip` | string | No | Specify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes [at their website](https://www.cusip.com/identifiers.html#/CUSIP). Defaults to empty string which queries all CUSIPs. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `cik` | string | No | Specify the CIK of the asset you want to search for. Find more information about CIK codes [at their website](https://www.sec.gov/edgar/searchedgar/cik.htm). Defaults to empty string which queries all CIKs. | | `date` | string | No | Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date. | | `search` | string | No | Search for terms within the ticker and/or company name. | | `active` | boolean | No | Specify if the tickers returned should be actively traded on the queried date. Default is true. | | `ticker.gte` | string | No | Range by ticker. | | `ticker.gt` | string | No | Range by ticker. | | `ticker.lte` | string | No | Range by ticker. | | `ticker.lt` | string | No | Range by ticker. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 100 and max is 1000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of tickers that match your query. Note: Although you can query by CUSIP, due to legal reasons we do not return the CUSIP in the response. | | `results[].active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results[].base_currency_name` | string | The name of the currency that this asset is priced against. | | `results[].base_currency_symbol` | string | The ISO 4217 code of the currency that this asset is priced against. | | `results[].cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results[].composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].currency_name` | string | The name of the currency that this asset is traded with. | | `results[].currency_symbol` | string | The ISO 4217 code of the currency that this asset is traded with. | | `results[].delisted_utc` | string | The last date that the asset was traded. | | `results[].last_updated_utc` | string | The information is accurate up to this time. | | `results[].locale` | enum: us, global | The locale of the asset. | | `results[].market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results[].name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results[].primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results[].share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results[].ticker` | string | The exchange symbol that this item is traded under. | | `results[].type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `status` | string | The status of this request's response. | ## Sample Response ```json { "count": 1, "next_url": "https://api.massive.com/v3/reference/tickers?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "e70013d92930de90e089dc8fa098888e", "results": [ { "active": true, "cik": "0001090872", "composite_figi": "BBG000BWQYZ5", "currency_name": "usd", "last_updated_utc": "2021-04-25T00:00:00Z", "locale": "us", "market": "stocks", "name": "Agilent Technologies Inc.", "primary_exchange": "XNYS", "share_class_figi": "BBG001SCTQY4", "ticker": "A", "type": "CS" } ], "status": "OK" } ``` --- # REST ## Stocks ### Related Tickers **Endpoint:** `GET /v1/related-companies/{ticker}` **Description:** Retrieve a list of tickers related to a specified ticker, identified through an analysis of news coverage and returns data. This endpoint helps users discover peers, competitors, or thematically similar companies, aiding in comparative analysis, portfolio diversification, and market research. Use Cases: Peer identification, comparative analysis, portfolio diversification, market research. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | The ticker symbol to search. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].ticker` | string | A ticker related to the requested ticker. | | `status` | string | The status of this request's response. | | `ticker` | string | The ticker being queried. | ## Sample Response ```json { "request_id": "31d59dda-80e5-4721-8496-d0d32a654afe", "results": [ { "ticker": "MSFT" }, { "ticker": "GOOGL" }, { "ticker": "AMZN" }, { "ticker": "FB" }, { "ticker": "TSLA" }, { "ticker": "NVDA" }, { "ticker": "INTC" }, { "ticker": "ADBE" }, { "ticker": "NFLX" }, { "ticker": "PYPL" } ], "status": "OK", "stock_symbol": "AAPL" } ``` --- # REST ## Stocks ### Ticker Overview **Endpoint:** `GET /v3/reference/tickers/{ticker}` **Description:** Retrieve comprehensive details for a single ticker supported by Massive that is active as-of a given date. This endpoint offers a deep look into a company’s fundamental attributes, including its primary exchange, standardized identifiers (CIK, composite FIGI, share class FIGI), market capitalization, industry classification, and key dates. Users also gain access to branding assets (e.g., logos, icons), enabling them to enrich applications and analyses with visually consistent, contextually relevant information. For information on delisted tickers, use the [All Tickers](/docs/rest/stocks/tickers/all-tickers) endpoint with `active=false`. Use Cases: Company research, data integration, application enhancement, due diligence & compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `date` | string | No | Specify a point in time to get information about the ticker available on that date. When retrieving information from SEC filings, we compare this date with the period of report date on the SEC filing. For example, consider an SEC filing submitted by AAPL on 2019-07-31, with a period of report date ending on 2019-06-29. That means that the filing was submitted on 2019-07-31, but the filing was created based on information from 2019-06-29. If you were to query for AAPL details on 2019-06-29, the ticker details would include information from the SEC filing. Defaults to the most recent available date. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request id assigned by the server. | | `results` | object | Ticker with details. | | `results.active` | boolean | Whether or not the asset is actively traded. False means the asset has been delisted. | | `results.address` | object | Company headquarters address details. | | `results.branding` | object | Provides URLs aiding in visual identification. | | `results.cik` | string | The CIK number for this ticker. Find more information [here](https://en.wikipedia.org/wiki/Central_Index_Key). | | `results.composite_figi` | string | The composite OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.currency_name` | string | The name of the currency that this asset is traded with. | | `results.delisted_utc` | string | The last date that the asset was traded. | | `results.description` | string | A description of the company and what they do/offer. | | `results.homepage_url` | string | The URL of the company's website homepage. | | `results.list_date` | string | The date that the symbol was first publicly listed in the format YYYY-MM-DD. | | `results.locale` | enum: us, global | The locale of the asset. | | `results.market` | enum: stocks, crypto, fx, otc, indices | The market type of the asset. | | `results.market_cap` | number | The most recent close price of the ticker multiplied by weighted outstanding shares. | | `results.name` | string | The name of the asset. For stocks/equities this will be the companies registered name. For crypto/fx this will be the name of the currency or coin pair. | | `results.phone_number` | string | The phone number for the company behind this ticker. | | `results.primary_exchange` | string | The ISO code of the primary listing exchange for this asset. | | `results.round_lot` | number | Round lot size of this security. | | `results.share_class_figi` | string | The share Class OpenFIGI number for this ticker. Find more information [here](https://www.openfigi.com/about/figi) | | `results.share_class_shares_outstanding` | number | The recorded number of outstanding shares for this particular share class. | | `results.sic_code` | string | The standard industrial classification code for this ticker. For a list of SIC Codes, see the SEC's SIC Code List. | | `results.sic_description` | string | A description of this ticker's SIC code. | | `results.ticker` | string | The exchange symbol that this item is traded under. | | `results.ticker_root` | string | The root of a specified ticker. For example, the root of BRK.A is BRK. | | `results.ticker_suffix` | string | The suffix of a specified ticker. For example, the suffix of BRK.A is A. | | `results.total_employees` | number | The approximate number of employees for the company. | | `results.type` | string | The type of the asset. Find the types that we support via our [Ticker Types API](https://massive.com/docs/rest/stocks/tickers/ticker-types). | | `results.weighted_shares_outstanding` | number | The shares outstanding calculated assuming all shares of other share classes are converted to this share class. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "31d59dda-80e5-4721-8496-d0d32a654afe", "results": { "active": true, "address": { "address1": "One Apple Park Way", "city": "Cupertino", "postal_code": "95014", "state": "CA" }, "branding": { "icon_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_icon.png", "logo_url": "https://api.massive.com/v1/reference/company-branding/d3d3LmFwcGxlLmNvbQ/images/2022-01-10_logo.svg" }, "cik": "0000320193", "composite_figi": "BBG000B9XRY4", "currency_name": "usd", "description": "Apple designs a wide variety of consumer electronic devices, including smartphones (iPhone), tablets (iPad), PCs (Mac), smartwatches (Apple Watch), AirPods, and TV boxes (Apple TV), among others. The iPhone makes up the majority of Apple's total revenue. In addition, Apple offers its customers a variety of services such as Apple Music, iCloud, Apple Care, Apple TV+, Apple Arcade, Apple Card, and Apple Pay, among others. Apple's products run internally developed software and semiconductors, and the firm is well known for its integration of hardware, software and services. Apple's products are distributed online as well as through company-owned stores and third-party retailers. The company generates roughly 40% of its revenue from the Americas, with the remainder earned internationally.", "homepage_url": "https://www.apple.com", "list_date": "1980-12-12", "locale": "us", "market": "stocks", "market_cap": 2771126040150, "name": "Apple Inc.", "phone_number": "(408) 996-1010", "primary_exchange": "XNAS", "round_lot": 100, "share_class_figi": "BBG001S5N8V8", "share_class_shares_outstanding": 16406400000, "sic_code": "3571", "sic_description": "ELECTRONIC COMPUTERS", "ticker": "AAPL", "ticker_root": "AAPL", "total_employees": 154000, "type": "CS", "weighted_shares_outstanding": 16334371000 }, "status": "OK" } ``` --- # REST ## Stocks ### Ticker Types **Endpoint:** `GET /v3/reference/tickers/types` **Description:** Retrieve a list of all ticker types supported by Massive. This endpoint categorizes tickers across asset classes, markets, and instruments, helping users understand the different classifications and their attributes. Use Cases: Data classification, filtering mechanisms, educational reference, system integration. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `asset_class` | string | No | Filter by asset class. | | `locale` | string | No | Filter by locale. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `count` | integer | The total number of results for this request. | | `request_id` | string | A request ID assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].asset_class` | enum: stocks, options, crypto, fx, indices | An identifier for a group of similar financial instruments. | | `results[].code` | string | A code used by Massive to refer to this ticker type. | | `results[].description` | string | A short description of this ticker type. | | `results[].locale` | enum: us, global | An identifier for a geographical location. | | `status` | string | The status of this request's response. | --- # REST ## Stocks ### Last Quote **Endpoint:** `GET /v2/last/nbbo/{stocksTicker}` **Description:** Retrieve the most recent National Best Bid and Offer (NBBO) quote for a specified stock ticker, including the latest bid/ask prices, sizes, exchange details, and timestamp. This endpoint supports monitoring current market conditions and updating platforms or applications with near-term quote information, allowing users to evaluate liquidity, track spreads, and make more informed decisions. Use Cases: Price display, spread analysis, market monitoring. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stocksTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `request_id` | string | A request id assigned by the server. | | `results` | object | N/A | | `results.P` | number | The ask price. | | `results.S` | integer | The total number of shares available for sale at the current ask price. | | `results.T` | string | The exchange symbol that this item is traded under. | | `results.X` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `results.c` | array[integer] | A list of condition codes. | | `results.f` | integer | The nanosecond accuracy TRF(Trade Reporting Facility) Unix Timestamp. This is the timestamp of when the trade reporting facility received this message. | | `results.i` | array[integer] | A list of indicator codes. | | `results.p` | number | The bid price. | | `results.q` | integer | The sequence number represents the sequence in which message events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11). | | `results.s` | integer | The total number of shares that buyers want to purchase at the current bid price. | | `results.t` | integer | The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this message from the exchange which produced it. | | `results.x` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `results.y` | integer | The nanosecond accuracy Participant/Exchange Unix Timestamp. This is the timestamp of when the quote was actually generated at the exchange. | | `results.z` | integer | There are 3 tapes which define which exchange the ticker is listed on. These are integers in our objects which represent the letter of the alphabet. Eg: 1 = A, 2 = B, 3 = C. * Tape A is NYSE listed securities * Tape B is NYSE ARCA / NYSE American * Tape C is NASDAQ | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "b84e24636301f19f88e0dfbf9a45ed5c", "results": { "P": 127.98, "S": 7, "T": "AAPL", "X": 19, "p": 127.96, "q": 83480742, "s": 1, "t": 1617827221349730300, "x": 11, "y": 1617827221349366000, "z": 3 }, "status": "OK" } ``` --- # REST ## Stocks ### Last Trade **Endpoint:** `GET /v2/last/trade/{stocksTicker}` **Description:** Retrieve the latest available trade for a specified stock ticker, including details such as price, size, exchange, and timestamp. This endpoint supports monitoring recent trading activity and updating dashboards or applications with the most current trade information, providing timely insights into ongoing market conditions. Use Cases: Trade monitoring, price updates, market snapshot. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stocksTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `request_id` | string | A request id assigned by the server. | | `results` | object | N/A | | `results.T` | string | The exchange symbol that this item is traded under. | | `results.c` | array[integer] | A list of condition codes. | | `results.ds` | string | The size of the trade including the fractional component. This is represented as a decimal string. | | `results.e` | integer | The trade correction indicator. | | `results.f` | integer | The nanosecond accuracy TRF(Trade Reporting Facility) Unix Timestamp. This is the timestamp of when the trade reporting facility received this message. | | `results.i` | string | The Trade ID which uniquely identifies a trade. These are unique per combination of ticker, exchange, and TRF. For example: A trade for AAPL executed on NYSE and a trade for AAPL executed on NASDAQ could potentially have the same Trade ID. | | `results.p` | number | The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00. | | `results.q` | integer | The sequence number represents the sequence in which message events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11). | | `results.r` | integer | The ID for the Trade Reporting Facility where the trade took place. | | `results.s` | number | The size of a trade (also known as volume). | | `results.t` | integer | The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this message from the exchange which produced it. | | `results.x` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `results.y` | integer | The nanosecond accuracy Participant/Exchange Unix Timestamp. This is the timestamp of when the quote was actually generated at the exchange. | | `results.z` | integer | There are 3 tapes which define which exchange the ticker is listed on. These are integers in our objects which represent the letter of the alphabet. Eg: 1 = A, 2 = B, 3 = C. * Tape A is NYSE listed securities * Tape B is NYSE ARCA / NYSE American * Tape C is NASDAQ | | `status` | string | The status of this request's response. | ## Sample Response ```json { "request_id": "f05562305bd26ced64b98ed68b3c5d96", "results": { "T": "AAPL", "c": [ 37 ], "ds": "25.0", "f": 1617901342969796400, "i": "118749", "p": 129.8473, "q": 3135876, "r": 202, "s": 25, "t": 1617901342969834000, "x": 4, "y": 1617901342968000000, "z": 3 }, "status": "OK" } ``` --- # REST ## Stocks ### Quotes **Endpoint:** `GET /v3/quotes/{stockTicker}` **Description:** Retrieve National Best Bid and Offer (NBBO) quotes for a specified stock ticker over a defined time range. Each record includes the prevailing best bid/ask prices, sizes, exchanges, and timestamps, reflecting the top-of-book quote environment at each moment. By examining this historical quote data, users can analyze price movements, evaluate liquidity at the NBBO level, and enhance trading strategies or research efforts. Use Cases: Historical quote analysis, liquidity evaluation, algorithmic backtesting, trading strategy refinement. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stockTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `timestamp` | string | No | Query by timestamp. Either a date with the format YYYY-MM-DD or a nanosecond timestamp. | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 1000 and max is 50000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].ask_exchange` | integer | The ask exchange ID | | `results[].ask_price` | number | The ask price. | | `results[].ask_size` | number | The total number of shares available for sale at the current ask price. | | `results[].bid_exchange` | integer | The bid exchange ID | | `results[].bid_price` | number | The bid price. | | `results[].bid_size` | number | The total number of shares that buyers want to purchase at the current bid price. | | `results[].conditions` | array[integer] | A list of condition codes. | | `results[].indicators` | array[integer] | A list of indicator codes. | | `results[].participant_timestamp` | integer | The nanosecond accuracy Participant/Exchange Unix Timestamp. This is the timestamp of when the quote was actually generated at the exchange. | | `results[].sequence_number` | integer | The sequence number represents the sequence in which quote events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11). Values reset after each trading session/day. | | `results[].sip_timestamp` | integer | The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this quote from the exchange which produced it. | | `results[].tape` | integer | There are 3 tapes which define which exchange the ticker is listed on. These are integers in our objects which represent the letter of the alphabet. Eg: 1 = A, 2 = B, 3 = C. * Tape A is NYSE listed securities * Tape B is NYSE ARCA / NYSE American * Tape C is NASDAQ | | `results[].trf_timestamp` | integer | The nanosecond accuracy TRF (Trade Reporting Facility) Unix Timestamp. This is the timestamp of when the trade reporting facility received this quote. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v3/quotes/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "ask_exchange": 0, "ask_price": 0, "ask_size": 0, "bid_exchange": 11, "bid_price": 102.7, "bid_size": 60, "conditions": [ 1 ], "participant_timestamp": 1517562000065321200, "sequence_number": 2060, "sip_timestamp": 1517562000065700400, "tape": 3 }, { "ask_exchange": 0, "ask_price": 0, "ask_size": 0, "bid_exchange": 11, "bid_price": 170, "bid_size": 2, "conditions": [ 1 ], "participant_timestamp": 1517562000065408300, "sequence_number": 2061, "sip_timestamp": 1517562000065791500, "tape": 3 } ], "status": "OK" } ``` --- # REST ## Stocks ### Trades **Endpoint:** `GET /v3/trades/{stockTicker}` **Description:** Retrieve comprehensive, tick-level trade data for a specified stock ticker within a defined time range. Each record includes price, size, exchange, trade conditions, and precise timestamp information. This granular data is foundational for constructing aggregated bars and performing in-depth analyses, as it captures every eligible trade that contributes to calculations of open, high, low, and close (OHLC) values. By leveraging these trades, users can refine their understanding of intraday price movements, test and optimize algorithmic strategies, and ensure compliance by maintaining an auditable record of market activity. Use Cases: Intraday analysis, algorithmic trading, market microstructure research, data integrity and compliance. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `stockTicker` | string | Yes | Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. | | `timestamp` | string | No | Query by trade timestamp. Either a date with the format YYYY-MM-DD or a nanosecond timestamp. | | `timestamp.gte` | string | No | Range by timestamp. | | `timestamp.gt` | string | No | Range by timestamp. | | `timestamp.lte` | string | No | Range by timestamp. | | `timestamp.lt` | string | No | Range by timestamp. | | `order` | string | No | Order results based on the `sort` field. | | `limit` | integer | No | Limit the number of results returned, default is 1000 and max is 50000. | | `sort` | string | No | Sort field used for ordering. | ## Response Attributes | Field | Type | Description | | --- | --- | --- | | `next_url` | string | If present, this value can be used to fetch the next page of data. | | `request_id` | string | A request id assigned by the server. | | `results` | array[object] | An array of results containing the requested data. | | `results[].conditions` | array[integer] | A list of condition codes. | | `results[].correction` | integer | The trade correction indicator. | | `results[].decimal_size` | string | The size of the trade including the fractional component. This is represented as a decimal string. | | `results[].exchange` | integer | The exchange ID. See Exchanges for Massive's mapping of exchange IDs. | | `results[].id` | string | The Trade ID which uniquely identifies a trade. These are unique per combination of ticker, exchange, and TRF. For example: A trade for AAPL executed on NYSE and a trade for AAPL executed on NASDAQ could potentially have the same Trade ID. | | `results[].participant_timestamp` | integer | The nanosecond accuracy Participant/Exchange Unix Timestamp. This is the timestamp of when the trade was actually generated at the exchange. | | `results[].price` | number | The price of the trade. This is the actual dollar value per whole share of this trade. A trade of 100 shares with a price of $2.00 would be worth a total dollar value of $200.00. | | `results[].sequence_number` | integer | The sequence number represents the sequence in which trade events happened. These are increasing and unique per ticker symbol, but will not always be sequential (e.g., 1, 2, 6, 9, 10, 11). Values reset after each trading session/day. | | `results[].sip_timestamp` | integer | The nanosecond accuracy SIP Unix Timestamp. This is the timestamp of when the SIP received this trade from the exchange which produced it. | | `results[].size` | number | The size of a trade (also known as volume). | | `results[].tape` | integer | There are 3 tapes which define which exchange the ticker is listed on. These are integers in our objects which represent the letter of the alphabet. Eg: 1 = A, 2 = B, 3 = C. * Tape A is NYSE listed securities * Tape B is NYSE ARCA / NYSE American * Tape C is NASDAQ | | `results[].trf_id` | integer | The ID for the Trade Reporting Facility where the trade took place. | | `results[].trf_timestamp` | integer | The nanosecond accuracy TRF (Trade Reporting Facility) Unix Timestamp. This is the timestamp of when the trade reporting facility received this trade. | | `status` | string | The status of this request's response. | ## Sample Response ```json { "next_url": "https://api.massive.com/v3/trades/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3", "results": [ { "conditions": [ 12, 41 ], "decimal_size": "100.0", "exchange": 11, "id": "1", "participant_timestamp": 1517562000015577000, "price": 171.55, "sequence_number": 1063, "sip_timestamp": 1517562000016036600, "size": 100, "tape": 3 }, { "conditions": [ 12, 41 ], "decimal_size": "100.0", "exchange": 11, "id": "2", "participant_timestamp": 1517562000015577600, "price": 171.55, "sequence_number": 1064, "sip_timestamp": 1517562000016038100, "size": 100, "tape": 3 } ], "status": "OK" } ``` ---