# REST API ## Aggregates # 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" } ``` --- ## Corporate Actions # 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" } ``` --- ## Filings # REST ## Stocks ### 10-K Sections **Endpoint:** `GET /stocks/filings/10-K/vX/sections` **Description:** Plain-text content of specific sections from SEC filings. Currently supports the Risk Factors and Business sections, providing clean, structured text extracted directly from the filing. Use Cases: NLP pipelines, text extraction, research automation, topic analysis, building summaries or similarity models. ## 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 '100' if not specified. The maximum allowed limit is '9999'. | | `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 ### Risk Categories **Endpoint:** `GET /stocks/taxonomies/vX/risk-factors` **Description:** The full taxonomy used to classify risk factors in the Risk Factors API. This includes the complete set of standardized categories applied across filings. Use Cases: Building classifiers, mapping models to risk categories, UI filters, category-level analytics. ## 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. 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" } ``` --- ## Fundamentals # 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. | | `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[].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 ### Financials (Deprecated) **Endpoint:** `GET /vX/reference/financials` **Description:** Retrieve historical financial data for a specified stock ticker, derived from company SEC filings and extracted via XBRL. This experimental endpoint provides a wide range of financial metrics, including income statements, balance sheets, cash flow statements, and comprehensive income figures. By examining these standardized, machine-readable financial details, users can conduct in-depth fundamental analysis, track corporate performance trends, and compare financials across different reporting periods. Use Cases: Fundamental analysis, trend identification, cross-company comparisons, research & modeling. ## Query Parameters | Parameter | Type | Required | Description | | --- | --- | --- | --- | | `ticker` | string | No | Query by company ticker. | | `cik` | string | No | Query by central index key (CIK) Number | | `company_name` | string | No | Query by company name. | | `sic` | string | No | Query by standard industrial classification (SIC) | | `filing_date` | string | No | Query by the date when the filing with financials data was filed in YYYY-MM-DD format. Best used when querying over date ranges to find financials based on filings that happen in a time period. Examples: To get financials based on filings that have happened after January 1, 2009 use the query param filing_date.gte=2009-01-01 To get financials based on filings that happened in the year 2009 use the query params filing_date.gte=2009-01-01&filing_date.lt=2010-01-01 | | `period_of_report_date` | string | No | The period of report for the filing with financials data in YYYY-MM-DD format. | | `timeframe` | string | No | Query by timeframe. Annual financials originate from 10-K filings, and quarterly financials originate from 10-Q filings. Note: Most companies do not file quarterly reports for Q4 and instead include those financials in their annual report, so some companies my not return quarterly financials for Q4 | | `include_sources` | boolean | No | Whether or not to include the `xpath` and `formula` attributes for each financial data point. See the `xpath` and `formula` response attributes for more info. False by default. | | `company_name.search` | string | No | Search by company_name. | | `filing_date.gte` | string | No | Search by filing_date. | | `filing_date.gt` | string | No | Search by filing_date. | | `filing_date.lte` | string | No | Search by filing_date. | | `filing_date.lt` | string | No | Search by filing_date. | | `period_of_report_date.gte` | string | No | Search by period_of_report_date. | | `period_of_report_date.gt` | string | No | Search by period_of_report_date. | | `period_of_report_date.lte` | string | No | Search by period_of_report_date. | | `period_of_report_date.lt` | string | No | Search by period_of_report_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 100. | | `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[].acceptance_datetime` | string | The datetime (EST timezone) the filing was accepted by EDGAR in YYYYMMDDHHMMSS format. | | `results[].cik` | string | The CIK number for the company. | | `results[].company_name` | string | The company name. | | `results[].end_date` | string | The end date of the period that these financials cover in YYYYMMDD format. | | `results[].filing_date` | string | The date that the SEC filing which these financials were derived from was made available. Note that this is not necessarily the date when this information became public, as some companies may publish a press release before filing with the SEC. | | `results[].financials` | object | Structured financial statements with detailed data points and metadata. | | `results[].fiscal_period` | string | Fiscal period of the report according to the company (Q1, Q2, Q3, Q4, or FY). | | `results[].fiscal_year` | string | Fiscal year of the report according to the company. | | `results[].sic` | string | The Standard Industrial Classification (SIC) code for the company. | | `results[].source_filing_file_url` | string | The URL of the specific XBRL instance document within the SEC filing that these financials were derived from. | | `results[].source_filing_url` | string | The URL of the SEC filing that these financials were derived from. | | `results[].start_date` | string | The start date of the period that these financials cover in YYYYMMDD format. | | `results[].tickers` | array[string] | The list of ticker symbols for the company. | | `results[].timeframe` | string | The timeframe of the report (quarterly, annual or ttm). | | `status` | string | The status of this request's response. | ## Sample Response ```json { "count": 1, "next_url": "https://api.massive.com/vX/reference/financials?", "request_id": "55eb92ed43b25568ab0cce159830ea34", "results": [ { "cik": "0001650729", "company_name": "SiteOne Landscape Supply, Inc.", "end_date": "2022-04-03", "filing_date": "2022-05-04", "financials": { "balance_sheet": { "assets": { "label": "Assets", "order": 100, "unit": "USD", "value": 2407400000 }, "current_assets": { "label": "Current Assets", "order": 200, "unit": "USD", "value": 1385900000 }, "current_liabilities": { "label": "Current Liabilities", "order": 700, "unit": "USD", "value": 597500000 }, "equity": { "label": "Equity", "order": 1400, "unit": "USD", "value": 1099200000 }, "equity_attributable_to_noncontrolling_interest": { "label": "Equity Attributable To Noncontrolling Interest", "order": 1500, "unit": "USD", "value": 0 }, "equity_attributable_to_parent": { "label": "Equity Attributable To Parent", "order": 1600, "unit": "USD", "value": 1099200000 }, "liabilities": { "label": "Liabilities", "order": 600, "unit": "USD", "value": 1308200000 }, "liabilities_and_equity": { "label": "Liabilities And Equity", "order": 1900, "unit": "USD", "value": 2407400000 }, "noncurrent_assets": { "label": "Noncurrent Assets", "order": 300, "unit": "USD", "value": 1021500000 }, "noncurrent_liabilities": { "label": "Noncurrent Liabilities", "order": 800, "unit": "USD", "value": 710700000 } }, "cash_flow_statement": { "exchange_gains_losses": { "label": "Exchange Gains/Losses", "order": 1000, "unit": "USD", "value": 100000 }, "net_cash_flow": { "label": "Net Cash Flow", "order": 1100, "unit": "USD", "value": -8600000 }, "net_cash_flow_continuing": { "label": "Net Cash Flow, Continuing", "order": 1200, "unit": "USD", "value": -8700000 }, "net_cash_flow_from_financing_activities": { "label": "Net Cash Flow From Financing Activities", "order": 700, "unit": "USD", "value": 150600000 }, "net_cash_flow_from_financing_activities_continuing": { "label": "Net Cash Flow From Financing Activities, Continuing", "order": 800, "unit": "USD", "value": 150600000 }, "net_cash_flow_from_investing_activities": { "label": "Net Cash Flow From Investing Activities", "order": 400, "unit": "USD", "value": -41000000 }, "net_cash_flow_from_investing_activities_continuing": { "label": "Net Cash Flow From Investing Activities, Continuing", "order": 500, "unit": "USD", "value": -41000000 }, "net_cash_flow_from_operating_activities": { "label": "Net Cash Flow From Operating Activities", "order": 100, "unit": "USD", "value": -118300000 }, "net_cash_flow_from_operating_activities_continuing": { "label": "Net Cash Flow From Operating Activities, Continuing", "order": 200, "unit": "USD", "value": -118300000 } }, "comprehensive_income": { "comprehensive_income_loss": { "label": "Comprehensive Income/Loss", "order": 100, "unit": "USD", "value": 40500000 }, "comprehensive_income_loss_attributable_to_noncontrolling_interest": { "label": "Comprehensive Income/Loss Attributable To Noncontrolling Interest", "order": 200, "unit": "USD", "value": 0 }, "comprehensive_income_loss_attributable_to_parent": { "label": "Comprehensive Income/Loss Attributable To Parent", "order": 300, "unit": "USD", "value": 40500000 }, "other_comprehensive_income_loss": { "label": "Other Comprehensive Income/Loss", "order": 400, "unit": "USD", "value": 40500000 }, "other_comprehensive_income_loss_attributable_to_parent": { "label": "Other Comprehensive Income/Loss Attributable To Parent", "order": 600, "unit": "USD", "value": 8200000 } }, "income_statement": { "basic_earnings_per_share": { "label": "Basic Earnings Per Share", "order": 4200, "unit": "USD / shares", "value": 0.72 }, "benefits_costs_expenses": { "label": "Benefits Costs and Expenses", "order": 200, "unit": "USD", "value": 768400000 }, "cost_of_revenue": { "label": "Cost Of Revenue", "order": 300, "unit": "USD", "value": 536100000 }, "costs_and_expenses": { "label": "Costs And Expenses", "order": 600, "unit": "USD", "value": 768400000 }, "diluted_earnings_per_share": { "label": "Diluted Earnings Per Share", "order": 4300, "unit": "USD / shares", "value": 0.7 }, "gross_profit": { "label": "Gross Profit", "order": 800, "unit": "USD", "value": 269200000 }, "income_loss_from_continuing_operations_after_tax": { "label": "Income/Loss From Continuing Operations After Tax", "order": 1400, "unit": "USD", "value": 32300000 }, "income_loss_from_continuing_operations_before_tax": { "label": "Income/Loss From Continuing Operations Before Tax", "order": 1500, "unit": "USD", "value": 36900000 }, "income_tax_expense_benefit": { "label": "Income Tax Expense/Benefit", "order": 2200, "unit": "USD", "value": 4600000 }, "interest_expense_operating": { "label": "Interest Expense, Operating", "order": 2700, "unit": "USD", "value": 4300000 }, "net_income_loss": { "label": "Net Income/Loss", "order": 3200, "unit": "USD", "value": 32300000 }, "net_income_loss_attributable_to_noncontrolling_interest": { "label": "Net Income/Loss Attributable To Noncontrolling Interest", "order": 3300, "unit": "USD", "value": 0 }, "net_income_loss_attributable_to_parent": { "label": "Net Income/Loss Attributable To Parent", "order": 3500, "unit": "USD", "value": 32300000 }, "net_income_loss_available_to_common_stockholders_basic": { "label": "Net Income/Loss Available To Common Stockholders, Basic", "order": 3700, "unit": "USD", "value": 32300000 }, "operating_expenses": { "label": "Operating Expenses", "order": 1000, "unit": "USD", "value": 228000000 }, "operating_income_loss": { "label": "Operating Income/Loss", "order": 1100, "unit": "USD", "value": 41200000 }, "participating_securities_distributed_and_undistributed_earnings_loss_basic": { "label": "Participating Securities, Distributed And Undistributed Earnings/Loss, Basic", "order": 3800, "unit": "USD", "value": 0 }, "preferred_stock_dividends_and_other_adjustments": { "label": "Preferred Stock Dividends And Other Adjustments", "order": 3900, "unit": "USD", "value": 0 }, "revenues": { "label": "Revenues", "order": 100, "unit": "USD", "value": 805300000 } } }, "fiscal_period": "Q1", "fiscal_year": "2022", "source_filing_file_url": "https://api.massive.com/v1/reference/sec/filings/0001650729-22-000010/files/site-20220403_htm.xml", "source_filing_url": "https://api.massive.com/v1/reference/sec/filings/0001650729-22-000010", "start_date": "2022-01-03" } ], "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 bi-monthly aggregated short interest data reported to FINRA by broker-dealers for a specified stock ticker. 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. | | `total_volume` | integer | No | Total reported volume across all venues for the ticker on the given date. Value must be an integer. | | `total_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. | | `total_volume.gt` | integer | No | Filter greater than the value. Value must be an integer. | | `total_volume.gte` | integer | No | Filter greater than or equal to the value. Value must be an integer. | | `total_volume.lt` | integer | No | Filter less than the value. Value must be an integer. | | `total_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[].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` | integer | 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` | integer | 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` | integer | 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` | integer | 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" } ``` --- ## Market Operations # 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" } ``` --- ## News # 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" } ``` --- ## Snapshots # 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, "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 ], "i": "71675577320245", "p": 20.506, "s": 2416, "t": 1605192894630916600, "x": 4 }, "min": { "av": 37216, "c": 20.506, "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, "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 ], "i": "4046", "p": 120.47, "s": 236, "t": 1605195918306274000, "x": 10 }, "min": { "av": 28724441, "c": 120.4201, "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, "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 ], "i": "79372124707124", "p": 14.2284, "s": 536, "t": 1605195848258266000, "x": 4 }, "min": { "av": 133963, "c": 14.2284, "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[].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_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[].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[].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[].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[].underlying_asset` | object | Information on the underlying stock for this options contract. The market data returned depends on your current stocks plan. | | `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, "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, "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 ], "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, "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" } ``` --- ## Technical Indicators # 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" } ``` --- ## Tickers # REST ## Stocks ### All Listings **Endpoint:** `GET /stocks/vX/listings` ## Response Attributes | Field | Type | Description | | --- | --- | --- | --- # 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 ### Listing Overview **Endpoint:** `GET /stocks/vX/listing/{identifier_type}/{identifier}` ## Response Attributes | Field | Type | Description | | --- | --- | --- | --- # REST ## Stocks ### Listing Updates **Endpoint:** `GET /stocks/vX/listings/updates` ## Response Attributes | Field | Type | Description | | --- | --- | --- | --- # 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. 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. 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. | --- ## Trades Quotes # 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.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 ], "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[].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 ], "exchange": 11, "id": "1", "participant_timestamp": 1517562000015577000, "price": 171.55, "sequence_number": 1063, "sip_timestamp": 1517562000016036600, "size": 100, "tape": 3 }, { "conditions": [ 12, 41 ], "exchange": 11, "id": "2", "participant_timestamp": 1517562000015577600, "price": 171.55, "sequence_number": 1064, "sip_timestamp": 1517562000016038100, "size": 100, "tape": 3 } ], "status": "OK" } ``` ---