Struct ReferenceGroup
- Namespace
- MassiveDotNet.Rest
- Assembly
- MassiveDotNet.Rest.dll
Reference data across asset classes: tickers, news, corporate actions, exchanges, conditions, SEC filings, and financials. Reached through Reference.
public readonly struct ReferenceGroup
- Inherited Members
Remarks
This is a struct wrapping the shared transport, so navigating to a group costs no allocation. Endpoint methods live in the generated half of this partial type. The one hand-written member is DownloadFilingFileAsync(string, string, Stream, CancellationToken), which the description cannot generate because it declares JSON where the service serves a document (decision D25).
Methods
DownloadFilingFileAsync(string, string, Stream, CancellationToken)
Downloads one file within an SEC filing, copying its content to
destination unchanged.
public Task DownloadFilingFileAsync(string filingId, string fileId, Stream destination, CancellationToken cancellationToken = default)
Parameters
filingIdstringThe filing's identifier, as Id reports it.
fileIdstringThe file's identifier, as Id reports it.
destinationStreamThe stream the file is written to. The caller keeps ownership of it.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task
A task that completes once the whole file has been written.
Remarks
The description declares a JSON metadata object at this route, which
GetFilingFileAsync(string, string, CancellationToken) retrieves as declared; the service serves the file itself,
which is what this method is for (decision D25). The bytes are copied as sent, whatever
their type: ListFilingFilesAsync(string, RangeFilter<long>?, RangeFilter<string>?, SortOrder?, int?, string?, CancellationToken) names each file's type and size, so the
caller knows what it asked for. The URI comes from the same generated builder the declared
method uses, so the two cannot drift apart. No content type is inspected, so if the service
ever stops drifting and starts serving the declared JSON object at this route, this method
copies that object's own bytes to destination without error; GetFilingFileAsync(string, string, CancellationToken) is what pins the drift and starts succeeding, rather than
throwing, on that day, but this method carries no equivalent signal.
Exceptions
- ArgumentException
filingIdorfileIdis empty or whitespace.- ArgumentNullException
An argument is null.
- MassiveApiException
The server responded with an error status.
Enumerate10KSectionsAsync(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves standardized sections of 10-K filings, filtered by filer, section, filing date, and period end, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<TenKSection> Enumerate10KSectionsAsync(Filter<string>? cik = null, Filter<string>? ticker = null, SetFilter<string>? section = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<LocalDate>? periodEnd = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
sectionSetFilter<string>?Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
periodEndRangeFilter<LocalDate>?Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<TenKSection>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use List10KSectionsAsync(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. section takes the identifiers the description
names, business and risk_factors, singly or as a set. The date filters are bare
strings in the description whose prose says YYYY-MM-DD, so they bind LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
Enumerate10KSectionsVx0Async(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves standardized sections of 10-K filings from the vX_0 revision of the route, filtered by filer, section, filing date, and period end, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<TenKSection> Enumerate10KSectionsVx0Async(Filter<string>? cik = null, Filter<string>? ticker = null, SetFilter<string>? section = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<LocalDate>? periodEnd = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
sectionSetFilter<string>?Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
periodEndRangeFilter<LocalDate>?Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<TenKSection>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use List10KSectionsVx0Async(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. The description declares
this vX_0 revision beside the vX one, and the service answered a plain-text 404
for it on 2026-09-03; it stays mapped as declared (decision D21) and carries its version segment
in its name because the vX revision is the served one (decision D26). The segment marks
it experimental (decision D23); opt in with MASSIVE0001. The parameters and the payload
are those of the vX revision.
Exceptions
- MassiveApiException
The server responded with an error status.
Enumerate13FHoldingsAsync(SetFilter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves the holdings reported on 13-F filings, filtered by the filing institution and the filing date, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<ThirteenFHolding> Enumerate13FHoldingsAsync(SetFilter<string>? filerCik = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
filerCikSetFilter<string>?SEC Central Index Key (10 digits, zero-padded) of the filing entity. Accepts an exact value or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<ThirteenFHolding>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use List13FHoldingsAsync(SetFilter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. filerCik is the institution's CIK, singly or as a
set. filingDate is a bare string in the description whose prose says
YYYY-MM-DD, so it binds LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
Enumerate8KDisclosuresAsync(SetFilter<string>?, ArrayFilter<string>?, Filter<LocalDate>?, string?, int?, string?, CancellationToken)
Retrieves classified disclosures from 8-K filings, filtered by filer, ticker, filing date, and the most specific category, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<EightKDisclosure> Enumerate8KDisclosuresAsync(SetFilter<string>? cik = null, ArrayFilter<string>? tickers = null, Filter<LocalDate>? filingDate = null, string? tertiaryCategory = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikSetFilter<string>?SEC Central Index Key of the filer (10 digits, zero-padded). Accepts an exact value or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
filingDateFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value, a range, or a set of values.
tertiaryCategorystringMost specific disclosure category (e.g., 'quarterly_results'). Filtering on this column must use an exact match. See the full taxonomy at /stocks/taxonomies/vX/disclosures.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<EightKDisclosure>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use List8KDisclosuresAsync(SetFilter<string>?, ArrayFilter<string>?, Filter<LocalDate>?, string?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. The route's vX
segment marks it experimental (decision D18); opt in with MASSIVE0001. Every filter is
optional and defaults to no constraint. tickers filters an array field: pass
a plain value for rows that contain it, or an ArrayFilter factory for any or all
of several. filingDate is a bare string in the description whose prose says
YYYY-MM-DD, so it binds LocalDate from the map (D-R9). tertiaryCategory is an exact match against the disclosure taxonomy.
Exceptions
- MassiveApiException
The server responded with an error status.
Enumerate8KTextAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves the item text of 8-K filings, filtered by filer, form type, and filing date, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<EightKText> Enumerate8KTextAsync(Filter<string>? cik = null, Filter<string>? ticker = null, Filter<string>? formType = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
formTypeFilter<string>?SEC form type (e.g., '8-K', '8-K/A' for amendments). Accepts an exact value, a range, or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<EightKText>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use List8KTextAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. filingDate is a bare string in the description
whose prose says YYYY-MM-DD, so it binds LocalDate from the map
(D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateBalanceSheetsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves balance sheets for US companies, filtered by company, by period end and filing dates, and by fiscal period, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<BalanceSheet> EnumerateBalanceSheetsAsync(Filter<string>? cik = null, ArrayFilter<string>? tickers = null, RangeFilter<LocalDate>? periodEnd = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<long>? fiscalYear = null, RangeFilter<long>? fiscalQuarter = null, Filter<string>? timeframe = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<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. Accepts an exact value, a range, or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
periodEndRangeFilter<LocalDate>?The last date of the reporting period, representing the specific point in time when the balance sheet snapshot was taken. Accepts an exact value or a range.
filingDateRangeFilter<LocalDate>?The date of the most recent SEC filing that included this period's data. This is not necessarily the date this period was originally filed. Because SEC filings restate comparative data for prior periods, multiple records can share the same filing_date. For example, an annual 10-K reports three years of results, and a 10-Q includes prior period comparatives. To find the original filing date for a specific 10-K or 10-Q, use the SEC EDGAR filings index endpoint (/stocks/filings/vX/index). Accepts an exact value or a range.
fiscalYearRangeFilter<long>?The fiscal year for the reporting period. Accepts an exact value or a range.
fiscalQuarterRangeFilter<long>?The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.
timeframeFilter<string>?The reporting period type. Possible values include: quarterly, annual. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<BalanceSheet>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListBalanceSheetsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. Every filter is optional and
defaults to no constraint. periodEnd and filingDate are
bare strings in the description whose prose gives the ISO calendar form, so they take LocalDate here (D-R9). timeframe is quarterly or
annual. tickers matches the ticker array a statement is reported
under, whose own description says only that it filters arrays. fiscalYear and
fiscalQuarter filter a long where FiscalYear is an int, because the description types the parameter
and the property differently.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateCashFlowStatementsAsync(Filter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, ArrayFilter<string>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves cash flow statements for US companies, filtered by company, by period end and filing dates, and by fiscal period, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<CashFlowStatement> EnumerateCashFlowStatementsAsync(Filter<string>? cik = null, RangeFilter<LocalDate>? periodEnd = null, RangeFilter<LocalDate>? filingDate = null, ArrayFilter<string>? tickers = null, RangeFilter<long>? fiscalYear = null, RangeFilter<long>? fiscalQuarter = null, Filter<string>? timeframe = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<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. Accepts an exact value, a range, or a set of values.
periodEndRangeFilter<LocalDate>?The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.
filingDateRangeFilter<LocalDate>?The date of the most recent SEC filing that included this period's data. This is not necessarily the date this period was originally filed. Because SEC filings restate comparative data for prior periods, multiple records can share the same filing_date. For example, an annual 10-K reports three years of results, and a 10-Q includes prior period comparatives. To find the original filing date for a specific 10-K or 10-Q, use the SEC EDGAR filings index endpoint (/stocks/filings/vX/index). Accepts an exact value or a range.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
fiscalYearRangeFilter<long>?The fiscal year for the reporting period. Accepts an exact value or a range.
fiscalQuarterRangeFilter<long>?The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.
timeframeFilter<string>?The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<CashFlowStatement>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListCashFlowStatementsAsync(Filter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, ArrayFilter<string>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. Every filter is optional and
defaults to no constraint. periodEnd and filingDate are
bare strings in the description whose prose gives the ISO calendar form, so they take LocalDate here (D-R9). timeframe is quarterly or
annual. tickers matches the ticker array a statement is reported
under, whose own description says only that it filters arrays.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateConditionsAsync(MarketType?, string?, int?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves the trade and quote condition codes, with each one's SIP mappings and its effect on aggregates, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<Condition> EnumerateConditionsAsync(MarketType? assetClass = null, string? dataType = null, int? id = null, string? sip = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
assetClassMarketType?Filter for conditions within a given asset class.
dataTypestringFilter by data type.
idint?Filter for conditions with a given ID.
sipstringFilter by SIP. If the condition contains a mapping for that SIP, the condition will be returned.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<Condition>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListConditionsAsync(MarketType?, string?, int?, string?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. Every filter is optional and defaults
to no constraint. assetClass is a MarketType; the description
declares four of its members here and the server rejects the rest. dataType
is trade, bbo, or nbbo; sip is CTA, UTP,
or OPRA.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateDisclosureTaxonomyAsync(Filter<string>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves the disclosure taxonomy: the categories 8-K disclosures are classified into, filtered by version and by level, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<DisclosureTaxonomyEntry> EnumerateDisclosureTaxonomyAsync(Filter<string>? taxonomy = null, Filter<string>? primaryCategory = null, Filter<string>? secondaryCategory = null, Filter<string>? tertiaryCategory = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
taxonomyFilter<string>?Taxonomy version that defines this classification (e.g., '1.0'). Accepts an exact value, a range, or a set of values.
primaryCategoryFilter<string>?Top-level disclosure category. Accepts an exact value, a range, or a set of values.
secondaryCategoryFilter<string>?Mid-level disclosure category. Accepts an exact value, a range, or a set of values.
tertiaryCategoryFilter<string>?Most specific disclosure category. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<DisclosureTaxonomyEntry>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListDisclosureTaxonomyAsync(Filter<string>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. The route's vX
segment marks it experimental (decision D18); opt in with MASSIVE0001. Every filter is
optional and defaults to no constraint. taxonomy is the version, a string
such as 1.0 on this route.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateDividendsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, RangeFilter<double>?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves cash dividends from the v3 reference route, filtered by ticker, by any of the four dates that govern a dividend, by amount, and by type, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<ReferenceDividend> EnumerateDividendsAsync(RangeFilter<string>? ticker = null, RangeFilter<LocalDate>? exDividendDate = null, RangeFilter<LocalDate>? recordDate = null, RangeFilter<LocalDate>? declarationDate = null, RangeFilter<LocalDate>? payDate = null, int? frequency = null, RangeFilter<double>? cashAmount = null, string? dividendType = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.
exDividendDateRangeFilter<LocalDate>?Query by ex-dividend date with the format YYYY-MM-DD. Accepts an exact value or a range.
recordDateRangeFilter<LocalDate>?Query by record date with the format YYYY-MM-DD. Accepts an exact value or a range.
declarationDateRangeFilter<LocalDate>?Query by declaration date with the format YYYY-MM-DD. Accepts an exact value or a range.
payDateRangeFilter<LocalDate>?Query by pay date with the format YYYY-MM-DD. Accepts an exact value or a range.
frequencyint?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).
cashAmountRangeFilter<double>?Query by the cash amount of the dividend. Accepts an exact value or a range.
dividendTypestringQuery 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.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<ReferenceDividend>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListDividendsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, RangeFilter<double>?, string?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. Every filter is optional and defaults
to no constraint. Pass a plain value for equality or a RangeFilter factory for a
range. The date filters carry format: date in the description and bind LocalDate on their own, while the response's date properties are bare strings
the map retypes to LocalDate (D-R9). ListDividendsAsync(Filter<string>?, RangeFilter<LocalDate>?, RangeFilter<long>?, SetFilter<string>?, int?, string?, CancellationToken) is the newer stocks route with a wider row; this one is
kept because the description declares it.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateFilingFilesAsync(string, RangeFilter<long>?, RangeFilter<string>?, SortOrder?, int?, string?, CancellationToken)
Retrieves the files that make up one SEC filing, filtered by sequence number and file name, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<FilingFile> EnumerateFilingFilesAsync(string filingId, RangeFilter<long>? sequence = null, RangeFilter<string>? filename = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
filingIdstringSelect by filing id.
sequenceRangeFilter<long>?Query by file sequence number. Accepts an exact value or a range.
filenameRangeFilter<string>?Query by file name. Accepts an exact value or a range.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<FilingFile>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListFilingFilesAsync(string, RangeFilter<long>?, RangeFilter<string>?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. Every filter is optional and defaults
to no constraint. Each row names the file's type and size, which is what a caller consults
before retrieving one.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateFilingIndexAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves the index of SEC filings, filtered by filer, form type, and filing date, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<FilingIndexEntry> EnumerateFilingIndexAsync(Filter<string>? cik = null, Filter<string>? ticker = null, Filter<string>? formType = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (CIK) identifying the filing entity. Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the filing entity, if available. Accepts an exact value, a range, or a set of values.
formTypeFilter<string>?SEC form type (e.g., '10-K', '10-Q', '8-K', 'S-1', '4', etc.). Accepts an exact value, a range, or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '1000' if not specified. The maximum allowed limit is '10000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<FilingIndexEntry>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListFilingIndexAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. filingDate is a bare string in the description
whose prose says YYYY-MM-DD, so it binds LocalDate from the map
(D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateFilingsAsync(string?, RangeFilter<string>?, RangeFilter<string>?, bool?, string?, string?, string?, string?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves SEC filings, filtered by form type, by filing and report dates, by the presence of XBRL, and by the filing company's name, CIK, ticker, and SIC code, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<Filing> EnumerateFilingsAsync(string? type = null, RangeFilter<string>? filingDate = null, RangeFilter<string>? periodOfReportDate = null, bool? hasXbrl = null, string? companyName = null, string? companyCik = null, string? companyTicker = null, string? companySic = null, string? companyNameSearch = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
typestringQuery by filing type.
filingDateRangeFilter<string>?Query by filing date. Accepts an exact value or a range.
periodOfReportDateRangeFilter<string>?Query by period of report. Accepts an exact value or a range.
hasXbrlbool?If true, query only for filings with an XBRL instance file. If false, query for filings without an XBRL instance file. If this parameter is not provided, query for filings with or without XBRL instance files.
companyNamestringQuery by entity company name.
companyCikstringQuery by entity company CIK.
companyTickerstringQuery by entity company ticker.
companySicstringQuery by entity company SIC.
companyNameSearchstringSearch by entities.company_data.name.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<Filing>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListFilingsAsync(string?, RangeFilter<string>?, RangeFilter<string>?, bool?, string?, string?, string?, string?, string?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. Every filter is optional and defaults to no
constraint. The date filters take the compact form the route reads, yyyyMMdd, as strings:
the ISO form a LocalDate renders is accepted by the server and silently
misread, so it is not bindable here (D-R9). The company filters are the description's dotted
entities.company_data parameters, rendered under those names; companyNameSearch is a text search where companyName is an exact
match.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateFinancialsAsync(string?, string?, string?, string?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, string?, bool?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves financial statements derived from SEC filings, filtered by company, by filing and report dates, and by timeframe, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<FinancialReport> EnumerateFinancialsAsync(string? ticker = null, string? cik = null, string? companyName = null, string? sic = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<LocalDate>? periodOfReportDate = null, string? timeframe = null, bool? includeSources = null, string? companyNameSearch = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerstringQuery by company ticker.
cikstringQuery by central index key (CIK) Number
companyNamestringQuery by company name.
sicstringQuery by standard industrial classification (SIC)
filingDateRangeFilter<LocalDate>?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. Accepts an exact value or a range.
periodOfReportDateRangeFilter<LocalDate>?The period of report for the filing with financials data in YYYY-MM-DD format. Accepts an exact value or a range.
timeframestringQuery 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
includeSourcesbool?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.
companyNameSearchstringSearch by company_name.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 100.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<FinancialReport>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListFinancialsAsync(string?, string?, string?, string?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, string?, bool?, string?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. timeframe is annual, quarterly, or
ttm. includeSources asks for the XPath and Formula of every data
point. companyNameSearch is a text search where companyName is an exact match; both render under the description's wire names.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateFloatAsync(Filter<string>?, RangeFilter<double>?, int?, string?, CancellationToken)
Retrieves the free float of US stocks, filtered by ticker and by the share of outstanding stock that floats, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<ShareFloat> EnumerateFloatAsync(Filter<string>? ticker = null, RangeFilter<double>? freeFloatPercent = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.
freeFloatPercentRangeFilter<double>?Percentage of total shares outstanding that are available for public trading, rounded to two decimal places. Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<ShareFloat>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListFloatAsync(Filter<string>?, RangeFilter<double>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateForm3FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves initial statements of beneficial ownership, form 3, filtered by issuer, reporting owner, ticker, form type, and filing date, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<Form3Filing> EnumerateForm3FilingsAsync(SetFilter<string>? issuerCik = null, SetFilter<string>? ownerCik = null, ArrayFilter<string>? tickers = null, string? formType = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
issuerCikSetFilter<string>?SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.
ownerCikSetFilter<string>?SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
formTypestringSEC form type ('3' for initial filing, '3/A' for amendments).
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<Form3Filing>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListForm3FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. tickers filters an array field: pass a plain value
for rows that contain it, or an ArrayFilter factory for any or all of several.
formType is 3 or 3/A. filingDate is a bare
string in the description whose prose says YYYY-MM-DD, so it binds LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateForm4FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, string?, int?, string?, CancellationToken)
Retrieves statements of changes in beneficial ownership, form 4, filtered by issuer, reporting owner, ticker, form type, filing date, and transaction code, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<Form4Filing> EnumerateForm4FilingsAsync(SetFilter<string>? issuerCik = null, SetFilter<string>? ownerCik = null, ArrayFilter<string>? tickers = null, string? formType = null, RangeFilter<LocalDate>? filingDate = null, string? transactionCode = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
issuerCikSetFilter<string>?SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.
ownerCikSetFilter<string>?SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
formTypestringSEC form type ('4' for standard filing, '4/A' for amendments).
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
transactionCodestringSEC transaction code indicating the type of transaction (e.g., 'P' for purchase, 'S' for sale, 'A' for grant/award, 'M' for exercise/conversion).
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<Form4Filing>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListForm4FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, string?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. tickers filters an array field: pass a plain value
for rows that contain it, or an ArrayFilter factory for any or all of several.
formType is 4 or 4/A; transactionCode is the
SEC's one-letter code, such as P for a purchase or S for a sale. filingDate is a bare string in the description whose prose says YYYY-MM-DD, so
it binds LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateIncomeStatementsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves income statements for US companies, filtered by company, by period end and filing dates, and by fiscal period, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<IncomeStatement> EnumerateIncomeStatementsAsync(Filter<string>? cik = null, ArrayFilter<string>? tickers = null, RangeFilter<LocalDate>? periodEnd = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<long>? fiscalYear = null, RangeFilter<long>? fiscalQuarter = null, Filter<string>? timeframe = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<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. Accepts an exact value, a range, or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
periodEndRangeFilter<LocalDate>?The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.
filingDateRangeFilter<LocalDate>?The date of the most recent SEC filing that included this period's data. This is not necessarily the date this period was originally filed. Because SEC filings restate comparative data for prior periods, multiple records can share the same filing_date. For example, an annual 10-K reports three years of results, and a 10-Q includes prior period comparatives. To find the original filing date for a specific 10-K or 10-Q, use the SEC EDGAR filings index endpoint (/stocks/filings/vX/index). Accepts an exact value or a range.
fiscalYearRangeFilter<long>?The fiscal year for the reporting period. Accepts an exact value or a range.
fiscalQuarterRangeFilter<long>?The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.
timeframeFilter<string>?The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<IncomeStatement>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListIncomeStatementsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. Every filter is optional and
defaults to no constraint. periodEnd and filingDate are
bare strings in the description whose prose gives the ISO calendar form, so they take LocalDate here (D-R9). timeframe is quarterly or
annual. tickers matches the ticker array a statement is reported
under, whose own description says only that it filters arrays.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateIposAsync(string?, string?, string?, RangeFilter<LocalDate>?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves initial public offerings, past and upcoming, filtered by ticker, identifier, listing date, and status, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<Ipo> EnumerateIposAsync(string? ticker = null, string? usCode = null, string? isin = null, RangeFilter<LocalDate>? listingDate = null, string? ipoStatus = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerstringSpecify a case-sensitive ticker symbol. For example, TSLA represents Tesla Inc.
usCodestringSpecify 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.
isinstringSpecify an International Securities Identification Number (ISIN). This is a unique twelve-digit code that is assigned to every security issuance in the world.
listingDateRangeFilter<LocalDate>?Specify a listing date. This is the first trading date for the newly listed entity. Accepts an exact value or a range.
ipoStatusstringSpecify an IPO status.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<Ipo>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListIposAsync(string?, string?, string?, RangeFilter<LocalDate>?, string?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. This is the served revision and
takes the plain name; ListIposV1Async(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<DateOrNanoseconds>?, SetFilter<string>?, int?, string?, CancellationToken) is the v1 route the description also
declares (decision D26). ipoStatus is one of direct_listing_process,
history, new, pending, postponed, rumor, or withdrawn.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateIposV1Async(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<DateOrNanoseconds>?, SetFilter<string>?, int?, string?, CancellationToken)
Retrieves initial public offerings from the v1 reference route, with comparator filters on ticker, identifiers, listing date, and status, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<IpoV1> EnumerateIposV1Async(Filter<string>? ticker = null, Filter<string>? usCode = null, Filter<string>? isin = null, RangeFilter<DateOrNanoseconds>? listingDate = null, SetFilter<string>? ipoStatus = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The ticker symbol of the IPO event. Accepts an exact value, a range, or a set of values.
usCodeFilter<string>?Nine-character alphanumeric code that uniquely identifies a financial security in North America. Accepts an exact value, a range, or a set of values.
isinFilter<string>?International Securities Identification Number. This is a unique twelve-digit code that is assigned to every security issuance in the world. Accepts an exact value, a range, or a set of values.
listingDateRangeFilter<DateOrNanoseconds>?First trading date for the newly listed entity. Accepts an exact value or a range.
ipoStatusSetFilter<string>?The status of the IPO. Accepts an exact value or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '1000'.
sortstringA comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'listing_date' if not specified. The sort order defaults to 'desc' if not specified.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<IpoV1>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListIposV1Async(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<DateOrNanoseconds>?, SetFilter<string>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. The description declares this route beside
ListIposAsync(string?, string?, string?, RangeFilter<LocalDate>?, string?, SortOrder?, int?, string?, CancellationToken), and the service answered a plain-text 404 for it on 2026-09-03; it
stays mapped as declared (decision D21) and carries its version segment in its name because the
vX revision is the served one (decision D26). listingDate takes a
calendar date or an Instant, rendered as Unix nanoseconds (decision D20).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateNewsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, SortOrder?, int?, string?, CancellationToken)
Retrieves recent news articles associated with a ticker, with each article's publisher and per-ticker sentiment insights, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<NewsArticle> EnumerateNewsAsync(RangeFilter<string>? ticker = null, RangeFilter<LocalDate>? publishedUtc = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.
publishedUtcRangeFilter<LocalDate>?Return results published on, before, or after this date. Accepts an exact value or a range.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<NewsArticle>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListNewsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. Filter by ticker for one
symbol or a lexical range, and by publishedUtc for a calendar-date window.
Results sort by published_utc only; set order to choose the direction.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateOptionsContractsAsync(RangeFilter<string>?, string?, ContractType?, RangeFilter<LocalDate>?, LocalDate?, RangeFilter<double>?, bool?, SortOrder?, int?, string?, CancellationToken)
Retrieves options contracts, filtered by underlying, type, expiration, strike, and whether they have expired, as of a chosen date, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<OptionsContract> EnumerateOptionsContractsAsync(RangeFilter<string>? underlyingTicker = null, string? ticker = null, ContractType? contractType = null, RangeFilter<LocalDate>? expirationDate = null, LocalDate? asOf = null, RangeFilter<double>? strikePrice = null, bool? expired = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
underlyingTickerRangeFilter<string>?Query for contracts relating to an underlying stock ticker. Accepts an exact value or a range.
tickerstringThis parameter has been deprecated. To search by specific options ticker, use the Options Contract endpoint here.
contractTypeContractType?Query by the type of contract.
expirationDateRangeFilter<LocalDate>?Query by contract expiration with date format YYYY-MM-DD. Accepts an exact value or a range.
asOfLocalDate?Specify a point in time for contracts as of this date with format YYYY-MM-DD. Defaults to today's date.
strikePriceRangeFilter<double>?Query by strike price of a contract. Accepts an exact value or a range.
expiredbool?Query for expired contracts. Default is false.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<OptionsContract>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListOptionsContractsAsync(RangeFilter<string>?, string?, ContractType?, RangeFilter<LocalDate>?, LocalDate?, RangeFilter<double>?, bool?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. Every filter is optional and
defaults to no constraint. contractType is a ContractType.
ticker is a parameter the description itself calls deprecated; use GetOptionsContractAsync(string, LocalDate?, CancellationToken) to fetch one contract by its ticker. asOf
and the expiration filter are bare strings in the description and take LocalDate here (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateRatiosAsync(Filter<string>?, Filter<string>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, int?, string?, CancellationToken)
Retrieves computed financial ratios for US stocks, filtered by ticker or company and by any of the ratios themselves, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<FinancialRatios> EnumerateRatiosAsync(Filter<string>? ticker = null, Filter<string>? cik = null, RangeFilter<double>? price = null, RangeFilter<double>? averageVolume = null, RangeFilter<double>? marketCap = null, RangeFilter<double>? earningsPerShare = null, RangeFilter<double>? priceToEarnings = null, RangeFilter<double>? priceToBook = null, RangeFilter<double>? priceToSales = null, RangeFilter<double>? priceToCashFlow = null, RangeFilter<double>? priceToFreeCashFlow = null, RangeFilter<double>? dividendYield = null, RangeFilter<double>? returnOnAssets = null, RangeFilter<double>? returnOnEquity = null, RangeFilter<double>? debtToEquity = null, RangeFilter<double>? currentRatio = null, RangeFilter<double>? quickRatio = null, RangeFilter<double>? cashRatio = null, RangeFilter<double>? evToSales = null, RangeFilter<double>? evToEbitda = null, RangeFilter<double>? enterpriseValue = null, RangeFilter<double>? freeCashFlow = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
cikFilter<string>?Central Index Key (CIK) number assigned by the SEC to identify the company. Accepts an exact value, a range, or a set of values.
priceRangeFilter<double>?Stock price used in ratio calculations, typically the closing price for the given date. Accepts an exact value or a range.
averageVolumeRangeFilter<double>?Average trading volume over the last 30 trading days, providing context for liquidity. Accepts an exact value or a range.
marketCapRangeFilter<double>?Market capitalization, calculated as stock price multiplied by total shares outstanding. Accepts an exact value or a range.
earningsPerShareRangeFilter<double>?Earnings per share, calculated as trailing twelve months (TTM) net income available to common shareholders divided by point-in-time shares outstanding as of the price date, assuming all shares of other share classes are converted to this share class. This is not weighted average basic or diluted shares outstanding, so this value will not match the reported basic or diluted EPS on the income statements endpoint. Accepts an exact value or a range.
priceToEarningsRangeFilter<double>?Price-to-earnings ratio, calculated as stock price divided by earnings per share. Only calculated when earnings per share is positive. Accepts an exact value or a range.
priceToBookRangeFilter<double>?Price-to-book ratio, calculated as stock price divided by book value per share, comparing market value to book value. Accepts an exact value or a range.
priceToSalesRangeFilter<double>?Price-to-sales ratio, calculated as stock price divided by revenue per share, measuring valuation relative to sales. Accepts an exact value or a range.
priceToCashFlowRangeFilter<double>?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. Accepts an exact value or a range.
priceToFreeCashFlowRangeFilter<double>?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. Accepts an exact value or a range.
dividendYieldRangeFilter<double>?Dividend yield, calculated as annual dividends per share divided by stock price, measuring the income return on investment. Accepts an exact value or a range.
returnOnAssetsRangeFilter<double>?Return on assets ratio, calculated as net income divided by total assets, measuring how efficiently a company uses its assets to generate profit. Accepts an exact value or a range.
returnOnEquityRangeFilter<double>?Return on equity ratio, calculated as net income divided by total shareholders' equity, measuring profitability relative to shareholders' equity. Accepts an exact value or a range.
debtToEquityRangeFilter<double>?Debt-to-equity ratio, calculated as total debt (current debt plus long-term debt) divided by total shareholders' equity, measuring financial leverage. Accepts an exact value or a range.
currentRatioRangeFilter<double>?Current ratio, calculated as total current assets divided by total current liabilities, measuring short-term liquidity. Accepts an exact value or a range.
quickRatioRangeFilter<double>?Quick ratio (acid-test ratio), calculated as (current assets minus inventories) divided by current liabilities, measuring immediate liquidity. Accepts an exact value or a range.
cashRatioRangeFilter<double>?Cash ratio, calculated as cash and cash equivalents divided by current liabilities, measuring the most liquid form of liquidity coverage. Accepts an exact value or a range.
evToSalesRangeFilter<double>?Enterprise value to sales ratio, calculated as enterprise value divided by revenue, measuring company valuation relative to sales. Accepts an exact value or a range.
evToEbitdaRangeFilter<double>?Enterprise value to EBITDA ratio, calculated as enterprise value divided by EBITDA, measuring company valuation relative to earnings before interest, taxes, depreciation, and amortization. Accepts an exact value or a range.
enterpriseValueRangeFilter<double>?Enterprise value, calculated as market capitalization plus total debt minus cash and cash equivalents, representing total company value. Accepts an exact value or a range.
freeCashFlowRangeFilter<double>?Free cash flow, calculated as operating cash flow minus capital expenditures (purchase of property, plant, and equipment). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<FinancialRatios>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListRatiosAsync(Filter<string>?, Filter<string>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. Every filter is optional and defaults to no
constraint, and every ratio the response carries is also a filter, so a screen reads as the row
does: priceToEarnings: RangeFilter.Lt(15). currentRatio, quickRatio, and cashRatio render under the wire's bare
current, quick, and cash. The endpoint catalog advertises .any_of on
every numeric field; the description declares it on ticker and cik alone, and the description is the contract (D21).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateRiskFactorTaxonomyAsync(RangeFilter<double>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves the risk-factor taxonomy: the categories risk factors are classified into, filtered by version and by level, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<RiskFactorTaxonomyEntry> EnumerateRiskFactorTaxonomyAsync(RangeFilter<double>? taxonomy = null, Filter<string>? primaryCategory = null, Filter<string>? secondaryCategory = null, Filter<string>? tertiaryCategory = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
taxonomyRangeFilter<double>?Version identifier (e.g., '1.0', '1.1') for the taxonomy. Accepts an exact value or a range.
primaryCategoryFilter<string>?Top-level risk category. Accepts an exact value, a range, or a set of values.
secondaryCategoryFilter<string>?Mid-level risk category. Accepts an exact value, a range, or a set of values.
tertiaryCategoryFilter<string>?Most specific risk classification. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<RiskFactorTaxonomyEntry>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListRiskFactorTaxonomyAsync(RangeFilter<double>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. The route's vX
segment marks it experimental (decision D18); opt in with MASSIVE0001. Every filter is
optional and defaults to no constraint. taxonomy is the version, a number on
this route where the disclosure taxonomy takes a string.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateRiskFactorsAsync(Filter<LocalDate>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves classified risk factors from filings, filtered by filing date and filer, enumerating every page as a single lazy sequence.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public IAsyncEnumerable<RiskFactor> EnumerateRiskFactorsAsync(Filter<LocalDate>? filingDate = null, Filter<string>? ticker = null, Filter<string>? cik = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
filingDateFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<RiskFactor>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListRiskFactorsAsync(Filter<LocalDate>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. The route's vX segment marks it
experimental (decision D18); opt in with MASSIVE0001. Every filter is optional and
defaults to no constraint. filingDate is a bare string in the description
whose prose says YYYY-MM-DD, so it binds LocalDate from the map
(D-R9); it carries the full comparator set, so a set of dates is accepted too.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateShortInterestAsync(Filter<string>?, Filter<double>?, Filter<LocalDate>?, Filter<long>?, int?, string?, CancellationToken)
Retrieves short interest reports for US stocks, filtered by ticker, settlement date, days to cover, and average daily volume, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<ShortInterest> EnumerateShortInterestAsync(Filter<string>? ticker = null, Filter<double>? daysToCover = null, Filter<LocalDate>? settlementDate = null, Filter<long>? avgDailyVolume = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.
daysToCoverFilter<double>?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. Accepts an exact value, a range, or a set of values.
settlementDateFilter<LocalDate>?The date (formatted as YYYY-MM-DD) on which the short interest data is considered settled, typically based on exchange reporting schedules. Accepts an exact value, a range, or a set of values.
avgDailyVolumeFilter<long>?The average daily trading volume for the stock over a specified period, typically used to contextualize short interest. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<ShortInterest>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListShortInterestAsync(Filter<string>?, Filter<double>?, Filter<LocalDate>?, Filter<long>?, int?, string?, CancellationToken) to retrieve a single page instead. limit
sizes each page rather than the traversal, so lowering it issues more requests rather than
returning fewer items; bound the sequence with Take instead. Every filter is optional and
defaults to no constraint. Pass a plain value for equality, a RangeFilter factory
for a range, or SetFilter for a set. settlementDate is a bare
string in the description and takes LocalDate here (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateShortVolumeAsync(Filter<string>?, Filter<LocalDate>?, Filter<double>?, int?, string?, CancellationToken)
Retrieves daily short sale volume for US stocks, by venue, filtered by ticker, date, and short volume ratio, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<ShortVolume> EnumerateShortVolumeAsync(Filter<string>? ticker = null, Filter<LocalDate>? date = null, Filter<double>? shortVolumeRatio = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.
dateFilter<LocalDate>?The date of trade activity reported in the format YYYY-MM-DD. Accepts an exact value, a range, or a set of values.
shortVolumeRatioFilter<double>?The percentage of total volume that was sold short. Calculated as (short_volume / total_volume)
-
- Accepts an exact value, a range, or a set of values.
-
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<ShortVolume>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListShortVolumeAsync(Filter<string>?, Filter<LocalDate>?, Filter<double>?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes
each page rather than the traversal, so lowering it issues more requests rather than returning
fewer items; bound the sequence with Take instead. Every filter is optional and defaults
to no constraint. Pass a plain value for equality, a RangeFilter factory for a
range, or SetFilter for a set. date is a bare string in the
description and takes LocalDate here (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateSplitsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, bool?, SortOrder?, int?, string?, CancellationToken)
Retrieves stock splits from the v3 reference route, filtered by ticker, execution date, and direction, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<ReferenceSplit> EnumerateSplitsAsync(RangeFilter<string>? ticker = null, RangeFilter<LocalDate>? executionDate = null, bool? reverseSplit = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.
executionDateRangeFilter<LocalDate>?Query by execution date with the format YYYY-MM-DD. Accepts an exact value or a range.
reverseSplitbool?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.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<ReferenceSplit>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListSplitsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, bool?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. Every filter is optional and defaults to no
constraint. reverseSplit selects splits whose ratio reduces the share count.
ListSplitsAsync(Filter<string>?, RangeFilter<LocalDate>?, SetFilter<string>?, int?, string?, CancellationToken) is the newer stocks route with a wider row; this one
is kept because the description declares it.
Exceptions
- MassiveApiException
The server responded with an error status.
EnumerateTickersAsync(RangeFilter<string>?, string?, MarketType?, string?, string?, string?, LocalDate?, string?, bool?, SortOrder?, int?, string?, CancellationToken)
Retrieves the tickers the platform supports across every asset class, with each one's name, market, and identifiers, enumerating every page as a single lazy sequence.
public IAsyncEnumerable<TickerSummary> EnumerateTickersAsync(RangeFilter<string>? ticker = null, string? type = null, MarketType? market = null, string? exchange = null, string? cusip = null, string? cik = null, LocalDate? date = null, string? search = null, bool? active = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a ticker symbol. Defaults to empty string which queries all tickers. Accepts an exact value or a range.
typestringSpecify the type of the tickers. Find the types that we support via our Ticker Types API. Defaults to empty string which queries all types.
marketMarketType?Filter by market type. By default all markets are included.
exchangestringSpecify the asset's primary exchange Market Identifier Code (MIC) according to ISO 10383. Defaults to empty string which queries all exchanges.
cusipstringSpecify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes at their website. 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.
cikstringSpecify the CIK of the asset you want to search for. Find more information about CIK codes at their website. Defaults to empty string which queries all CIKs.
dateLocalDate?Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date.
searchstringSearch for terms within the ticker and/or company name.
activebool?Specify if the tickers returned should be actively traded on the queried date. Default is true.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 100 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the traversal.
Returns
- IAsyncEnumerable<TickerSummary>
Every
resultsitem across every page.
Remarks
Walks every page, requesting the next only once the previous one has been consumed. Use ListTickersAsync(RangeFilter<string>?, string?, MarketType?, string?, string?, string?, LocalDate?, string?, bool?, SortOrder?, int?, string?, CancellationToken) to retrieve a single page instead. limit sizes each
page rather than the traversal, so lowering it issues more requests rather than returning fewer
items; bound the sequence with Take instead. Every filter is optional and defaults to no
constraint. ticker takes a plain symbol or a lexical range; market is a MarketType; type takes a code from ListTickerTypesAsync(MarketType?, string?, CancellationToken), whose set that operation owns. date asks for
the tickers as they stood on a calendar date.
Exceptions
- MassiveApiException
The server responded with an error status.
GetFilingAsync(string, CancellationToken)
Retrieves one SEC filing by its identifier.
public Task<Filing> GetFilingAsync(string filingId, CancellationToken cancellationToken = default)
Parameters
filingIdstringSelect by filing id.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
Remarks
filingId is the accession number, as Id reports it. The
description does not flag the path parameter required; the generator reads every path parameter
as required, since a segment cannot be left out of a route (D-R3). A filing the service does not
know answers 404, which surfaces as a MassiveApiException.
Exceptions
- MassiveApiException
The server responded with an error status, or with a success that carried no payload.
GetFilingFileAsync(string, string, CancellationToken)
Retrieves the metadata object the description declares for one file within an SEC filing.
public Task<FilingFile> GetFilingFileAsync(string filingId, string fileId, CancellationToken cancellationToken = default)
Parameters
filingIdstringSelect by filing id.
fileIdstringSelect by file id.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<FilingFile>
The response body, deserialized as one object.
Remarks
Generated as the description declares it (decision D21). The service serves the file's own
content at this route, text/html for a filing document, rather than the declared JSON
object, so on 2026-09-03 this method threw a MassiveApiException whose inner
exception is the deserialization failure; that flips the day the service or the description
moves. Use DownloadFilingFileAsync(string, string, Stream, CancellationToken) to retrieve the file (decision D25).
Exceptions
- MassiveApiException
The server responded with an error status, or with a success that carried no payload.
GetMarketStatusAsync(CancellationToken)
Retrieves the current trading status of the markets: overall, per exchange, for the currency markets, and for each index group.
public Task<MarketStatus> GetMarketStatusAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MarketStatus>
The response body, deserialized as one object.
Remarks
The body is the payload, with no envelope, so the response carries no request id (decision D17). Pair with ListMarketHolidaysAsync(CancellationToken) for what is coming rather than what is now.
Exceptions
- MassiveApiException
The server responded with an error status, or with a success that carried no payload.
GetOptionsContractAsync(string, LocalDate?, CancellationToken)
Retrieves one options contract by its ticker, as of a chosen date.
public Task<OptionsContract> GetOptionsContractAsync(string optionsTicker, LocalDate? asOf = null, CancellationToken cancellationToken = default)
Parameters
optionsTickerstringQuery for a contract by options ticker. You can learn more about the structure of options tickers here.
asOfLocalDate?Specify a point in time for the contract as of this date with format YYYY-MM-DD. Defaults to today's date.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<OptionsContract>
The
resultsobject from the response.
Remarks
optionsTicker is the O:-prefixed contract symbol; the colon is
percent-escaped in the path. A contract the service does not know answers 404, which surfaces as
a MassiveApiException.
Exceptions
- MassiveApiException
The server responded with an error status, or with a success that carried no payload.
GetTickerAsync(string, LocalDate?, CancellationToken)
Retrieves the details of one ticker: its identity, the company's profile, address, and branding, and its share counts.
public Task<TickerDetails> GetTickerAsync(string ticker, LocalDate? date = null, CancellationToken cancellationToken = default)
Parameters
tickerstringSpecify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc.
dateLocalDate?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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<TickerDetails>
The
resultsobject from the response.
Remarks
date asks for the ticker as it stood on a calendar date; the default is the
most recent. A ticker the service does not know answers 404, which surfaces as a MassiveApiException.
Exceptions
- MassiveApiException
The server responded with an error status, or with a success that carried no payload.
GetTickerEventsAsync(string, string?, CancellationToken)
Retrieves the identifier history of one asset: its current name and the ticker changes that led to it.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<TickerEvents> GetTickerEventsAsync(string id, string? types = null, CancellationToken cancellationToken = default)
Parameters
idstringIdentifier 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.
typesstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<TickerEvents>
The
resultsobject from the response.
Remarks
The route's vX segment marks it experimental (decision D18); opt in with
MASSIVE0001. id is a ticker, a CUSIP, or a composite FIGI. types is a comma-separated list of event types, of which the description names only
ticker_change. The event rows' EventType reads as absent on
today's wire (D-R10).
Exceptions
- MassiveApiException
The server responded with an error status, or with a success that carried no payload.
List10KSectionsAsync(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves standardized sections of 10-K filings, filtered by filer, section, filing date, and period end.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<TenKSection>> List10KSectionsAsync(Filter<string>? cik = null, Filter<string>? ticker = null, SetFilter<string>? section = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<LocalDate>? periodEnd = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
sectionSetFilter<string>?Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
periodEndRangeFilter<LocalDate>?Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<TenKSection>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use Enumerate10KSectionsAsync(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
section takes the identifiers the description names, business and
risk_factors, singly or as a set. The date filters are bare strings in the description
whose prose says YYYY-MM-DD, so they bind LocalDate from the map
(D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
List10KSectionsVx0Async(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves standardized sections of 10-K filings from the vX_0 revision of the route, filtered by filer, section, filing date, and period end.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<TenKSection>> List10KSectionsVx0Async(Filter<string>? cik = null, Filter<string>? ticker = null, SetFilter<string>? section = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<LocalDate>? periodEnd = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
sectionSetFilter<string>?Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
periodEndRangeFilter<LocalDate>?Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<TenKSection>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use Enumerate10KSectionsVx0Async(Filter<string>?, Filter<string>?, SetFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The description declares this vX_0 revision beside the
vX one, and the service answered a plain-text 404 for it on 2026-09-03; it stays mapped
as declared (decision D21) and carries its version segment in its name because the vX
revision is the served one (decision D26). The segment marks it experimental (decision D23); opt
in with MASSIVE0001. The parameters and the payload are those of the vX revision.
Exceptions
- MassiveApiException
The server responded with an error status.
List13FHoldingsAsync(SetFilter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves the holdings reported on 13-F filings, filtered by the filing institution and the filing date.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<ThirteenFHolding>> List13FHoldingsAsync(SetFilter<string>? filerCik = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
filerCikSetFilter<string>?SEC Central Index Key (10 digits, zero-padded) of the filing entity. Accepts an exact value or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<ThirteenFHolding>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use Enumerate13FHoldingsAsync(SetFilter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
filerCik is the institution's CIK, singly or as a set. filingDate is a bare string in the description whose prose says YYYY-MM-DD, so
it binds LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
List8KDisclosuresAsync(SetFilter<string>?, ArrayFilter<string>?, Filter<LocalDate>?, string?, int?, string?, CancellationToken)
Retrieves classified disclosures from 8-K filings, filtered by filer, ticker, filing date, and the most specific category.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<EightKDisclosure>> List8KDisclosuresAsync(SetFilter<string>? cik = null, ArrayFilter<string>? tickers = null, Filter<LocalDate>? filingDate = null, string? tertiaryCategory = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikSetFilter<string>?SEC Central Index Key of the filer (10 digits, zero-padded). Accepts an exact value or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
filingDateFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value, a range, or a set of values.
tertiaryCategorystringMost specific disclosure category (e.g., 'quarterly_results'). Filtering on this column must use an exact match. See the full taxonomy at /stocks/taxonomies/vX/disclosures.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<EightKDisclosure>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use Enumerate8KDisclosuresAsync(SetFilter<string>?, ArrayFilter<string>?, Filter<LocalDate>?, string?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
tickers filters an array field: pass a plain value for rows that contain it,
or an ArrayFilter factory for any or all of several. filingDate
is a bare string in the description whose prose says YYYY-MM-DD, so it binds LocalDate from the map (D-R9). tertiaryCategory is an exact
match against the disclosure taxonomy.
Exceptions
- MassiveApiException
The server responded with an error status.
List8KTextAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves the item text of 8-K filings, filtered by filer, form type, and filing date.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<EightKText>> List8KTextAsync(Filter<string>? cik = null, Filter<string>? ticker = null, Filter<string>? formType = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
formTypeFilter<string>?SEC form type (e.g., '8-K', '8-K/A' for amendments). Accepts an exact value, a range, or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<EightKText>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use Enumerate8KTextAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. The route's vX segment marks it experimental (decision D18);
opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
filingDate is a bare string in the description whose prose says
YYYY-MM-DD, so it binds LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
ListBalanceSheetsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves balance sheets for US companies, filtered by company, by period end and filing dates, and by fiscal period.
public Task<MassivePage<BalanceSheet>> ListBalanceSheetsAsync(Filter<string>? cik = null, ArrayFilter<string>? tickers = null, RangeFilter<LocalDate>? periodEnd = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<long>? fiscalYear = null, RangeFilter<long>? fiscalQuarter = null, Filter<string>? timeframe = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<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. Accepts an exact value, a range, or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
periodEndRangeFilter<LocalDate>?The last date of the reporting period, representing the specific point in time when the balance sheet snapshot was taken. Accepts an exact value or a range.
filingDateRangeFilter<LocalDate>?The date of the most recent SEC filing that included this period's data. This is not necessarily the date this period was originally filed. Because SEC filings restate comparative data for prior periods, multiple records can share the same filing_date. For example, an annual 10-K reports three years of results, and a 10-Q includes prior period comparatives. To find the original filing date for a specific 10-K or 10-Q, use the SEC EDGAR filings index endpoint (/stocks/filings/vX/index). Accepts an exact value or a range.
fiscalYearRangeFilter<long>?The fiscal year for the reporting period. Accepts an exact value or a range.
fiscalQuarterRangeFilter<long>?The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.
timeframeFilter<string>?The reporting period type. Possible values include: quarterly, annual. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<BalanceSheet>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateBalanceSheetsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. Every filter is optional and defaults to no constraint.
periodEnd and filingDate are bare strings in the
description whose prose gives the ISO calendar form, so they take LocalDate here (D-R9). timeframe is quarterly or
annual. tickers matches the ticker array a statement is reported
under, whose own description says only that it filters arrays. fiscalYear and
fiscalQuarter filter a long where FiscalYear is an int, because the description types the parameter
and the property differently.
Exceptions
- MassiveApiException
The server responded with an error status.
ListCashFlowStatementsAsync(Filter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, ArrayFilter<string>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves cash flow statements for US companies, filtered by company, by period end and filing dates, and by fiscal period.
public Task<MassivePage<CashFlowStatement>> ListCashFlowStatementsAsync(Filter<string>? cik = null, RangeFilter<LocalDate>? periodEnd = null, RangeFilter<LocalDate>? filingDate = null, ArrayFilter<string>? tickers = null, RangeFilter<long>? fiscalYear = null, RangeFilter<long>? fiscalQuarter = null, Filter<string>? timeframe = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<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. Accepts an exact value, a range, or a set of values.
periodEndRangeFilter<LocalDate>?The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.
filingDateRangeFilter<LocalDate>?The date of the most recent SEC filing that included this period's data. This is not necessarily the date this period was originally filed. Because SEC filings restate comparative data for prior periods, multiple records can share the same filing_date. For example, an annual 10-K reports three years of results, and a 10-Q includes prior period comparatives. To find the original filing date for a specific 10-K or 10-Q, use the SEC EDGAR filings index endpoint (/stocks/filings/vX/index). Accepts an exact value or a range.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
fiscalYearRangeFilter<long>?The fiscal year for the reporting period. Accepts an exact value or a range.
fiscalQuarterRangeFilter<long>?The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.
timeframeFilter<string>?The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<CashFlowStatement>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateCashFlowStatementsAsync(Filter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, ArrayFilter<string>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken) to walk every
page without handling cursors yourself. Every filter is optional and defaults to no constraint.
periodEnd and filingDate are bare strings in the
description whose prose gives the ISO calendar form, so they take LocalDate here (D-R9). timeframe is quarterly or
annual. tickers matches the ticker array a statement is reported
under, whose own description says only that it filters arrays.
Exceptions
- MassiveApiException
The server responded with an error status.
ListConditionsAsync(MarketType?, string?, int?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves the trade and quote condition codes, with each one's SIP mappings and its effect on aggregates.
public Task<MassivePage<Condition>> ListConditionsAsync(MarketType? assetClass = null, string? dataType = null, int? id = null, string? sip = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
assetClassMarketType?Filter for conditions within a given asset class.
dataTypestringFilter by data type.
idint?Filter for conditions with a given ID.
sipstringFilter by SIP. If the condition contains a mapping for that SIP, the condition will be returned.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<Condition>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateConditionsAsync(MarketType?, string?, int?, string?, SortOrder?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. Every filter is optional and defaults to no constraint.
assetClass is a MarketType; the description declares four of
its members here and the server rejects the rest. dataType is trade,
bbo, or nbbo; sip is CTA, UTP, or OPRA.
Exceptions
- MassiveApiException
The server responded with an error status.
ListDisclosureTaxonomyAsync(Filter<string>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves the disclosure taxonomy: the categories 8-K disclosures are classified into, filtered by version and by level.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<DisclosureTaxonomyEntry>> ListDisclosureTaxonomyAsync(Filter<string>? taxonomy = null, Filter<string>? primaryCategory = null, Filter<string>? secondaryCategory = null, Filter<string>? tertiaryCategory = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
taxonomyFilter<string>?Taxonomy version that defines this classification (e.g., '1.0'). Accepts an exact value, a range, or a set of values.
primaryCategoryFilter<string>?Top-level disclosure category. Accepts an exact value, a range, or a set of values.
secondaryCategoryFilter<string>?Mid-level disclosure category. Accepts an exact value, a range, or a set of values.
tertiaryCategoryFilter<string>?Most specific disclosure category. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<DisclosureTaxonomyEntry>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateDisclosureTaxonomyAsync(Filter<string>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken) to walk every
page without handling cursors yourself. The route's vX segment marks it experimental
(decision D18); opt in with MASSIVE0001. Every filter is optional and defaults to no
constraint. taxonomy is the version, a string such as 1.0 on this
route.
Exceptions
- MassiveApiException
The server responded with an error status.
ListDividendsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, RangeFilter<double>?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves cash dividends from the v3 reference route, filtered by ticker, by any of the four dates that govern a dividend, by amount, and by type.
public Task<MassivePage<ReferenceDividend>> ListDividendsAsync(RangeFilter<string>? ticker = null, RangeFilter<LocalDate>? exDividendDate = null, RangeFilter<LocalDate>? recordDate = null, RangeFilter<LocalDate>? declarationDate = null, RangeFilter<LocalDate>? payDate = null, int? frequency = null, RangeFilter<double>? cashAmount = null, string? dividendType = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.
exDividendDateRangeFilter<LocalDate>?Query by ex-dividend date with the format YYYY-MM-DD. Accepts an exact value or a range.
recordDateRangeFilter<LocalDate>?Query by record date with the format YYYY-MM-DD. Accepts an exact value or a range.
declarationDateRangeFilter<LocalDate>?Query by declaration date with the format YYYY-MM-DD. Accepts an exact value or a range.
payDateRangeFilter<LocalDate>?Query by pay date with the format YYYY-MM-DD. Accepts an exact value or a range.
frequencyint?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).
cashAmountRangeFilter<double>?Query by the cash amount of the dividend. Accepts an exact value or a range.
dividendTypestringQuery 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.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<ReferenceDividend>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateDividendsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, int?, RangeFilter<double>?, string?, SortOrder?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. Every filter is optional and defaults to no constraint. Pass
a plain value for equality or a RangeFilter factory for a range. The date filters
carry format: date in the description and bind LocalDate on their
own, while the response's date properties are bare strings the map retypes to LocalDate (D-R9). ListDividendsAsync(Filter<string>?, RangeFilter<LocalDate>?, RangeFilter<long>?, SetFilter<string>?, int?, string?, CancellationToken) is the newer
stocks route with a wider row; this one is kept because the description declares it.
Exceptions
- MassiveApiException
The server responded with an error status.
ListExchangesAsync(MarketType?, string?, CancellationToken)
Retrieves the exchanges, trade reporting facilities, and SIPs the platform knows, optionally for one asset class and locale.
public Task<Exchange[]> ListExchangesAsync(MarketType? assetClass = null, string? locale = null, CancellationToken cancellationToken = default)
Parameters
assetClassMarketType?Filter by asset class.
localestringFilter by locale.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
Remarks
The list does not page. assetClass is a MarketType; the
description declares five of its members here and the server rejects the rest.
Exceptions
- MassiveApiException
The server responded with an error status.
ListFilingFilesAsync(string, RangeFilter<long>?, RangeFilter<string>?, SortOrder?, int?, string?, CancellationToken)
Retrieves the files that make up one SEC filing, filtered by sequence number and file name.
public Task<MassivePage<FilingFile>> ListFilingFilesAsync(string filingId, RangeFilter<long>? sequence = null, RangeFilter<string>? filename = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
filingIdstringSelect by filing id.
sequenceRangeFilter<long>?Query by file sequence number. Accepts an exact value or a range.
filenameRangeFilter<string>?Query by file name. Accepts an exact value or a range.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<FilingFile>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateFilingFilesAsync(string, RangeFilter<long>?, RangeFilter<string>?, SortOrder?, int?, string?, CancellationToken) to walk every page without handling cursors yourself. Every filter is optional and defaults to no constraint. Each row names the file's type and size, which is what a caller consults before retrieving one.
Exceptions
- MassiveApiException
The server responded with an error status.
ListFilingIndexAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves the index of SEC filings, filtered by filer, form type, and filing date.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<FilingIndexEntry>> ListFilingIndexAsync(Filter<string>? cik = null, Filter<string>? ticker = null, Filter<string>? formType = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<string>?SEC Central Index Key (CIK) identifying the filing entity. Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the filing entity, if available. Accepts an exact value, a range, or a set of values.
formTypeFilter<string>?SEC form type (e.g., '10-K', '10-Q', '8-K', 'S-1', '4', etc.). Accepts an exact value, a range, or a set of values.
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '1000' if not specified. The maximum allowed limit is '10000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<FilingIndexEntry>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateFilingIndexAsync(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
filingDate is a bare string in the description whose prose says
YYYY-MM-DD, so it binds LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
ListFilingsAsync(string?, RangeFilter<string>?, RangeFilter<string>?, bool?, string?, string?, string?, string?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves SEC filings, filtered by form type, by filing and report dates, by the presence of XBRL, and by the filing company's name, CIK, ticker, and SIC code.
public Task<MassivePage<Filing>> ListFilingsAsync(string? type = null, RangeFilter<string>? filingDate = null, RangeFilter<string>? periodOfReportDate = null, bool? hasXbrl = null, string? companyName = null, string? companyCik = null, string? companyTicker = null, string? companySic = null, string? companyNameSearch = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
typestringQuery by filing type.
filingDateRangeFilter<string>?Query by filing date. Accepts an exact value or a range.
periodOfReportDateRangeFilter<string>?Query by period of report. Accepts an exact value or a range.
hasXbrlbool?If true, query only for filings with an XBRL instance file. If false, query for filings without an XBRL instance file. If this parameter is not provided, query for filings with or without XBRL instance files.
companyNamestringQuery by entity company name.
companyCikstringQuery by entity company CIK.
companyTickerstringQuery by entity company ticker.
companySicstringQuery by entity company SIC.
companyNameSearchstringSearch by entities.company_data.name.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<Filing>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateFilingsAsync(string?, RangeFilter<string>?, RangeFilter<string>?, bool?, string?, string?, string?, string?, string?, SortOrder?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. Every filter is optional and defaults to no constraint. The date
filters take the compact form the route reads, yyyyMMdd, as strings: the ISO form a LocalDate renders is accepted by the server and silently misread, so it is not
bindable here (D-R9). The company filters are the description's dotted
entities.company_data parameters, rendered under those names; companyNameSearch is a text search where companyName is an exact
match.
Exceptions
- MassiveApiException
The server responded with an error status.
ListFinancialsAsync(string?, string?, string?, string?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, string?, bool?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves financial statements derived from SEC filings, filtered by company, by filing and report dates, and by timeframe.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<FinancialReport>> ListFinancialsAsync(string? ticker = null, string? cik = null, string? companyName = null, string? sic = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<LocalDate>? periodOfReportDate = null, string? timeframe = null, bool? includeSources = null, string? companyNameSearch = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerstringQuery by company ticker.
cikstringQuery by central index key (CIK) Number
companyNamestringQuery by company name.
sicstringQuery by standard industrial classification (SIC)
filingDateRangeFilter<LocalDate>?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. Accepts an exact value or a range.
periodOfReportDateRangeFilter<LocalDate>?The period of report for the filing with financials data in YYYY-MM-DD format. Accepts an exact value or a range.
timeframestringQuery 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
includeSourcesbool?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.
companyNameSearchstringSearch by company_name.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 100.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<FinancialReport>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateFinancialsAsync(string?, string?, string?, string?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, string?, bool?, string?, SortOrder?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
timeframe is annual, quarterly, or ttm. includeSources asks for the XPath and Formula of every data point. companyNameSearch is
a text search where companyName is an exact match; both render under the
description's wire names.
Exceptions
- MassiveApiException
The server responded with an error status.
ListFloatAsync(Filter<string>?, RangeFilter<double>?, int?, string?, CancellationToken)
Retrieves the free float of US stocks, filtered by ticker and by the share of outstanding stock that floats.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<ShareFloat>> ListFloatAsync(Filter<string>? ticker = null, RangeFilter<double>? freeFloatPercent = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.
freeFloatPercentRangeFilter<double>?Percentage of total shares outstanding that are available for public trading, rounded to two decimal places. Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<ShareFloat>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateFloatAsync(Filter<string>?, RangeFilter<double>?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. The route's vX segment marks it experimental (decision D18);
opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
Exceptions
- MassiveApiException
The server responded with an error status.
ListForm3FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, int?, string?, CancellationToken)
Retrieves initial statements of beneficial ownership, form 3, filtered by issuer, reporting owner, ticker, form type, and filing date.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<Form3Filing>> ListForm3FilingsAsync(SetFilter<string>? issuerCik = null, SetFilter<string>? ownerCik = null, ArrayFilter<string>? tickers = null, string? formType = null, RangeFilter<LocalDate>? filingDate = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
issuerCikSetFilter<string>?SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.
ownerCikSetFilter<string>?SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
formTypestringSEC form type ('3' for initial filing, '3/A' for amendments).
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<Form3Filing>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateForm3FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
tickers filters an array field: pass a plain value for rows that contain it,
or an ArrayFilter factory for any or all of several. formType
is 3 or 3/A. filingDate is a bare string in the description
whose prose says YYYY-MM-DD, so it binds LocalDate from the map
(D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
ListForm4FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, string?, int?, string?, CancellationToken)
Retrieves statements of changes in beneficial ownership, form 4, filtered by issuer, reporting owner, ticker, form type, filing date, and transaction code.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<Form4Filing>> ListForm4FilingsAsync(SetFilter<string>? issuerCik = null, SetFilter<string>? ownerCik = null, ArrayFilter<string>? tickers = null, string? formType = null, RangeFilter<LocalDate>? filingDate = null, string? transactionCode = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
issuerCikSetFilter<string>?SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.
ownerCikSetFilter<string>?SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
formTypestringSEC form type ('4' for standard filing, '4/A' for amendments).
filingDateRangeFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.
transactionCodestringSEC transaction code indicating the type of transaction (e.g., 'P' for purchase, 'S' for sale, 'A' for grant/award, 'M' for exercise/conversion).
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<Form4Filing>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateForm4FilingsAsync(SetFilter<string>?, SetFilter<string>?, ArrayFilter<string>?, string?, RangeFilter<LocalDate>?, string?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
tickers filters an array field: pass a plain value for rows that contain it,
or an ArrayFilter factory for any or all of several. formType
is 4 or 4/A; transactionCode is the SEC's one-letter code, such
as P for a purchase or S for a sale. filingDate is a bare
string in the description whose prose says YYYY-MM-DD, so it binds LocalDate from the map (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
ListIncomeStatementsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves income statements for US companies, filtered by company, by period end and filing dates, and by fiscal period.
public Task<MassivePage<IncomeStatement>> ListIncomeStatementsAsync(Filter<string>? cik = null, ArrayFilter<string>? tickers = null, RangeFilter<LocalDate>? periodEnd = null, RangeFilter<LocalDate>? filingDate = null, RangeFilter<long>? fiscalYear = null, RangeFilter<long>? fiscalQuarter = null, Filter<string>? timeframe = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
cikFilter<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. Accepts an exact value, a range, or a set of values.
tickersArrayFilter<string>?Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.
periodEndRangeFilter<LocalDate>?The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.
filingDateRangeFilter<LocalDate>?The date of the most recent SEC filing that included this period's data. This is not necessarily the date this period was originally filed. Because SEC filings restate comparative data for prior periods, multiple records can share the same filing_date. For example, an annual 10-K reports three years of results, and a 10-Q includes prior period comparatives. To find the original filing date for a specific 10-K or 10-Q, use the SEC EDGAR filings index endpoint (/stocks/filings/vX/index). Accepts an exact value or a range.
fiscalYearRangeFilter<long>?The fiscal year for the reporting period. Accepts an exact value or a range.
fiscalQuarterRangeFilter<long>?The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.
timeframeFilter<string>?The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<IncomeStatement>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateIncomeStatementsAsync(Filter<string>?, ArrayFilter<string>?, RangeFilter<LocalDate>?, RangeFilter<LocalDate>?, RangeFilter<long>?, RangeFilter<long>?, Filter<string>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. Every filter is optional and defaults to no constraint.
periodEnd and filingDate are bare strings in the
description whose prose gives the ISO calendar form, so they take LocalDate here (D-R9). timeframe is quarterly or
annual. tickers matches the ticker array a statement is reported
under, whose own description says only that it filters arrays.
Exceptions
- MassiveApiException
The server responded with an error status.
ListIposAsync(string?, string?, string?, RangeFilter<LocalDate>?, string?, SortOrder?, int?, string?, CancellationToken)
Retrieves initial public offerings, past and upcoming, filtered by ticker, identifier, listing date, and status.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<Ipo>> ListIposAsync(string? ticker = null, string? usCode = null, string? isin = null, RangeFilter<LocalDate>? listingDate = null, string? ipoStatus = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerstringSpecify a case-sensitive ticker symbol. For example, TSLA represents Tesla Inc.
usCodestringSpecify 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.
isinstringSpecify an International Securities Identification Number (ISIN). This is a unique twelve-digit code that is assigned to every security issuance in the world.
listingDateRangeFilter<LocalDate>?Specify a listing date. This is the first trading date for the newly listed entity. Accepts an exact value or a range.
ipoStatusstringSpecify an IPO status.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<Ipo>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateIposAsync(string?, string?, string?, RangeFilter<LocalDate>?, string?, SortOrder?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. The route's vX segment marks it experimental (decision D18);
opt in with MASSIVE0001. This is the served revision and takes the plain name; ListIposV1Async(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<DateOrNanoseconds>?, SetFilter<string>?, int?, string?, CancellationToken) is the v1 route the description also declares (decision D26).
ipoStatus is one of direct_listing_process, history,
new, pending, postponed, rumor, or withdrawn.
Exceptions
- MassiveApiException
The server responded with an error status.
ListIposV1Async(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<DateOrNanoseconds>?, SetFilter<string>?, int?, string?, CancellationToken)
Retrieves initial public offerings from the v1 reference route, with comparator filters on ticker, identifiers, listing date, and status.
public Task<MassivePage<IpoV1>> ListIposV1Async(Filter<string>? ticker = null, Filter<string>? usCode = null, Filter<string>? isin = null, RangeFilter<DateOrNanoseconds>? listingDate = null, SetFilter<string>? ipoStatus = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The ticker symbol of the IPO event. Accepts an exact value, a range, or a set of values.
usCodeFilter<string>?Nine-character alphanumeric code that uniquely identifies a financial security in North America. Accepts an exact value, a range, or a set of values.
isinFilter<string>?International Securities Identification Number. This is a unique twelve-digit code that is assigned to every security issuance in the world. Accepts an exact value, a range, or a set of values.
listingDateRangeFilter<DateOrNanoseconds>?First trading date for the newly listed entity. Accepts an exact value or a range.
ipoStatusSetFilter<string>?The status of the IPO. Accepts an exact value or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '1000'.
sortstringA comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'listing_date' if not specified. The sort order defaults to 'desc' if not specified.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<IpoV1>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateIposV1Async(Filter<string>?, Filter<string>?, Filter<string>?, RangeFilter<DateOrNanoseconds>?, SetFilter<string>?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. The description declares this route beside ListIposAsync(string?, string?, string?, RangeFilter<LocalDate>?, string?, SortOrder?, int?, string?, CancellationToken), and the service answered a plain-text 404 for it on 2026-09-03; it stays
mapped as declared (decision D21) and carries its version segment in its name because the
vX revision is the served one (decision D26). listingDate takes a
calendar date or an Instant, rendered as Unix nanoseconds (decision D20).
Exceptions
- MassiveApiException
The server responded with an error status.
ListMarketHolidaysAsync(CancellationToken)
Retrieves upcoming market holidays and early closes, one entry per exchange.
public Task<MarketHoliday[]> ListMarketHolidaysAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MarketHoliday[]>
The response body, an array that is empty when the server returned none.
Exceptions
- MassiveApiException
The server responded with an error status.
ListNewsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, SortOrder?, int?, string?, CancellationToken)
Retrieves recent news articles associated with a ticker, with each article's publisher and per-ticker sentiment insights.
public Task<MassivePage<NewsArticle>> ListNewsAsync(RangeFilter<string>? ticker = null, RangeFilter<LocalDate>? publishedUtc = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.
publishedUtcRangeFilter<LocalDate>?Return results published on, before, or after this date. Accepts an exact value or a range.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<NewsArticle>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateNewsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, SortOrder?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. Filter by ticker for one symbol or a lexical
range, and by publishedUtc for a calendar-date window. Results sort by
published_utc only; set order to choose the direction.
Exceptions
- MassiveApiException
The server responded with an error status.
ListOptionsContractsAsync(RangeFilter<string>?, string?, ContractType?, RangeFilter<LocalDate>?, LocalDate?, RangeFilter<double>?, bool?, SortOrder?, int?, string?, CancellationToken)
Retrieves options contracts, filtered by underlying, type, expiration, strike, and whether they have expired, as of a chosen date.
public Task<MassivePage<OptionsContract>> ListOptionsContractsAsync(RangeFilter<string>? underlyingTicker = null, string? ticker = null, ContractType? contractType = null, RangeFilter<LocalDate>? expirationDate = null, LocalDate? asOf = null, RangeFilter<double>? strikePrice = null, bool? expired = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
underlyingTickerRangeFilter<string>?Query for contracts relating to an underlying stock ticker. Accepts an exact value or a range.
tickerstringThis parameter has been deprecated. To search by specific options ticker, use the Options Contract endpoint here.
contractTypeContractType?Query by the type of contract.
expirationDateRangeFilter<LocalDate>?Query by contract expiration with date format YYYY-MM-DD. Accepts an exact value or a range.
asOfLocalDate?Specify a point in time for contracts as of this date with format YYYY-MM-DD. Defaults to today's date.
strikePriceRangeFilter<double>?Query by strike price of a contract. Accepts an exact value or a range.
expiredbool?Query for expired contracts. Default is false.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<OptionsContract>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateOptionsContractsAsync(RangeFilter<string>?, string?, ContractType?, RangeFilter<LocalDate>?, LocalDate?, RangeFilter<double>?, bool?, SortOrder?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. Every filter is optional and defaults to no constraint.
contractType is a ContractType. ticker is a
parameter the description itself calls deprecated; use GetOptionsContractAsync(string, LocalDate?, CancellationToken) to
fetch one contract by its ticker. asOf and the expiration filter are bare
strings in the description and take LocalDate here (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
ListRatiosAsync(Filter<string>?, Filter<string>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, int?, string?, CancellationToken)
Retrieves computed financial ratios for US stocks, filtered by ticker or company and by any of the ratios themselves.
public Task<MassivePage<FinancialRatios>> ListRatiosAsync(Filter<string>? ticker = null, Filter<string>? cik = null, RangeFilter<double>? price = null, RangeFilter<double>? averageVolume = null, RangeFilter<double>? marketCap = null, RangeFilter<double>? earningsPerShare = null, RangeFilter<double>? priceToEarnings = null, RangeFilter<double>? priceToBook = null, RangeFilter<double>? priceToSales = null, RangeFilter<double>? priceToCashFlow = null, RangeFilter<double>? priceToFreeCashFlow = null, RangeFilter<double>? dividendYield = null, RangeFilter<double>? returnOnAssets = null, RangeFilter<double>? returnOnEquity = null, RangeFilter<double>? debtToEquity = null, RangeFilter<double>? currentRatio = null, RangeFilter<double>? quickRatio = null, RangeFilter<double>? cashRatio = null, RangeFilter<double>? evToSales = null, RangeFilter<double>? evToEbitda = null, RangeFilter<double>? enterpriseValue = null, RangeFilter<double>? freeCashFlow = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
cikFilter<string>?Central Index Key (CIK) number assigned by the SEC to identify the company. Accepts an exact value, a range, or a set of values.
priceRangeFilter<double>?Stock price used in ratio calculations, typically the closing price for the given date. Accepts an exact value or a range.
averageVolumeRangeFilter<double>?Average trading volume over the last 30 trading days, providing context for liquidity. Accepts an exact value or a range.
marketCapRangeFilter<double>?Market capitalization, calculated as stock price multiplied by total shares outstanding. Accepts an exact value or a range.
earningsPerShareRangeFilter<double>?Earnings per share, calculated as trailing twelve months (TTM) net income available to common shareholders divided by point-in-time shares outstanding as of the price date, assuming all shares of other share classes are converted to this share class. This is not weighted average basic or diluted shares outstanding, so this value will not match the reported basic or diluted EPS on the income statements endpoint. Accepts an exact value or a range.
priceToEarningsRangeFilter<double>?Price-to-earnings ratio, calculated as stock price divided by earnings per share. Only calculated when earnings per share is positive. Accepts an exact value or a range.
priceToBookRangeFilter<double>?Price-to-book ratio, calculated as stock price divided by book value per share, comparing market value to book value. Accepts an exact value or a range.
priceToSalesRangeFilter<double>?Price-to-sales ratio, calculated as stock price divided by revenue per share, measuring valuation relative to sales. Accepts an exact value or a range.
priceToCashFlowRangeFilter<double>?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. Accepts an exact value or a range.
priceToFreeCashFlowRangeFilter<double>?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. Accepts an exact value or a range.
dividendYieldRangeFilter<double>?Dividend yield, calculated as annual dividends per share divided by stock price, measuring the income return on investment. Accepts an exact value or a range.
returnOnAssetsRangeFilter<double>?Return on assets ratio, calculated as net income divided by total assets, measuring how efficiently a company uses its assets to generate profit. Accepts an exact value or a range.
returnOnEquityRangeFilter<double>?Return on equity ratio, calculated as net income divided by total shareholders' equity, measuring profitability relative to shareholders' equity. Accepts an exact value or a range.
debtToEquityRangeFilter<double>?Debt-to-equity ratio, calculated as total debt (current debt plus long-term debt) divided by total shareholders' equity, measuring financial leverage. Accepts an exact value or a range.
currentRatioRangeFilter<double>?Current ratio, calculated as total current assets divided by total current liabilities, measuring short-term liquidity. Accepts an exact value or a range.
quickRatioRangeFilter<double>?Quick ratio (acid-test ratio), calculated as (current assets minus inventories) divided by current liabilities, measuring immediate liquidity. Accepts an exact value or a range.
cashRatioRangeFilter<double>?Cash ratio, calculated as cash and cash equivalents divided by current liabilities, measuring the most liquid form of liquidity coverage. Accepts an exact value or a range.
evToSalesRangeFilter<double>?Enterprise value to sales ratio, calculated as enterprise value divided by revenue, measuring company valuation relative to sales. Accepts an exact value or a range.
evToEbitdaRangeFilter<double>?Enterprise value to EBITDA ratio, calculated as enterprise value divided by EBITDA, measuring company valuation relative to earnings before interest, taxes, depreciation, and amortization. Accepts an exact value or a range.
enterpriseValueRangeFilter<double>?Enterprise value, calculated as market capitalization plus total debt minus cash and cash equivalents, representing total company value. Accepts an exact value or a range.
freeCashFlowRangeFilter<double>?Free cash flow, calculated as operating cash flow minus capital expenditures (purchase of property, plant, and equipment). Accepts an exact value or a range.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<FinancialRatios>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateRatiosAsync(Filter<string>?, Filter<string>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, RangeFilter<double>?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. Every filter is optional and defaults to no constraint, and every
ratio the response carries is also a filter, so a screen reads as the row does:
priceToEarnings: RangeFilter.Lt(15). currentRatio, quickRatio, and cashRatio render under the wire's bare
current, quick, and cash. The endpoint catalog advertises .any_of on
every numeric field; the description declares it on ticker and cik alone, and the description is the contract (D21).
Exceptions
- MassiveApiException
The server responded with an error status.
ListRelatedCompaniesAsync(string, CancellationToken)
Retrieves the tickers of companies related to the one given, as judged by news coverage and return correlation.
public Task<RelatedCompany[]> ListRelatedCompaniesAsync(string ticker, CancellationToken cancellationToken = default)
Parameters
tickerstringThe ticker symbol to search.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<RelatedCompany[]>
The
resultsarray from the response, empty when the server returned none.
Remarks
The list does not page. Only the ticker of each related company is reported; GetTickerAsync(string, LocalDate?, CancellationToken) fetches the rest.
Exceptions
- MassiveApiException
The server responded with an error status.
ListRiskFactorTaxonomyAsync(RangeFilter<double>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves the risk-factor taxonomy: the categories risk factors are classified into, filtered by version and by level.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<RiskFactorTaxonomyEntry>> ListRiskFactorTaxonomyAsync(RangeFilter<double>? taxonomy = null, Filter<string>? primaryCategory = null, Filter<string>? secondaryCategory = null, Filter<string>? tertiaryCategory = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
taxonomyRangeFilter<double>?Version identifier (e.g., '1.0', '1.1') for the taxonomy. Accepts an exact value or a range.
primaryCategoryFilter<string>?Top-level risk category. Accepts an exact value, a range, or a set of values.
secondaryCategoryFilter<string>?Mid-level risk category. Accepts an exact value, a range, or a set of values.
tertiaryCategoryFilter<string>?Most specific risk classification. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<RiskFactorTaxonomyEntry>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateRiskFactorTaxonomyAsync(RangeFilter<double>?, Filter<string>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken) to walk every
page without handling cursors yourself. The route's vX segment marks it experimental
(decision D18); opt in with MASSIVE0001. Every filter is optional and defaults to no
constraint. taxonomy is the version, a number on this route where the
disclosure taxonomy takes a string.
Exceptions
- MassiveApiException
The server responded with an error status.
ListRiskFactorsAsync(Filter<LocalDate>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken)
Retrieves classified risk factors from filings, filtered by filing date and filer.
[Experimental("MASSIVE0001", Message = "Massive marks this operation experimental: it may change or be removed without notice. Suppress MASSIVE0001 to opt in.")]
public Task<MassivePage<RiskFactor>> ListRiskFactorsAsync(Filter<LocalDate>? filingDate = null, Filter<string>? ticker = null, Filter<string>? cik = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
filingDateFilter<LocalDate>?Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value, a range, or a set of values.
tickerFilter<string>?Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.
cikFilter<string>?SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<RiskFactor>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateRiskFactorsAsync(Filter<LocalDate>?, Filter<string>?, Filter<string>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. The route's vX segment marks it experimental (decision
D18); opt in with MASSIVE0001. Every filter is optional and defaults to no constraint.
filingDate is a bare string in the description whose prose says
YYYY-MM-DD, so it binds LocalDate from the map (D-R9); it carries
the full comparator set, so a set of dates is accepted too.
Exceptions
- MassiveApiException
The server responded with an error status.
ListShortInterestAsync(Filter<string>?, Filter<double>?, Filter<LocalDate>?, Filter<long>?, int?, string?, CancellationToken)
Retrieves short interest reports for US stocks, filtered by ticker, settlement date, days to cover, and average daily volume.
public Task<MassivePage<ShortInterest>> ListShortInterestAsync(Filter<string>? ticker = null, Filter<double>? daysToCover = null, Filter<LocalDate>? settlementDate = null, Filter<long>? avgDailyVolume = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.
daysToCoverFilter<double>?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. Accepts an exact value, a range, or a set of values.
settlementDateFilter<LocalDate>?The date (formatted as YYYY-MM-DD) on which the short interest data is considered settled, typically based on exchange reporting schedules. Accepts an exact value, a range, or a set of values.
avgDailyVolumeFilter<long>?The average daily trading volume for the stock over a specified period, typically used to contextualize short interest. Accepts an exact value, a range, or a set of values.
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<ShortInterest>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateShortInterestAsync(Filter<string>?, Filter<double>?, Filter<LocalDate>?, Filter<long>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. Every filter is optional and defaults to no constraint. Pass
a plain value for equality, a RangeFilter factory for a range, or SetFilter for a set. settlementDate is a bare string in the
description and takes LocalDate here (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
ListShortVolumeAsync(Filter<string>?, Filter<LocalDate>?, Filter<double>?, int?, string?, CancellationToken)
Retrieves daily short sale volume for US stocks, by venue, filtered by ticker, date, and short volume ratio.
public Task<MassivePage<ShortVolume>> ListShortVolumeAsync(Filter<string>? ticker = null, Filter<LocalDate>? date = null, Filter<double>? shortVolumeRatio = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerFilter<string>?The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.
dateFilter<LocalDate>?The date of trade activity reported in the format YYYY-MM-DD. Accepts an exact value, a range, or a set of values.
shortVolumeRatioFilter<double>?The percentage of total volume that was sold short. Calculated as (short_volume / total_volume)
-
- Accepts an exact value, a range, or a set of values.
-
limitint?Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.
sortstringA 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.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<ShortVolume>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateShortVolumeAsync(Filter<string>?, Filter<LocalDate>?, Filter<double>?, int?, string?, CancellationToken) to walk every page
without handling cursors yourself. Every filter is optional and defaults to no constraint. Pass
a plain value for equality, a RangeFilter factory for a range, or SetFilter for a set. date is a bare string in the description and
takes LocalDate here (D-R9).
Exceptions
- MassiveApiException
The server responded with an error status.
ListSplitsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, bool?, SortOrder?, int?, string?, CancellationToken)
Retrieves stock splits from the v3 reference route, filtered by ticker, execution date, and direction.
public Task<MassivePage<ReferenceSplit>> ListSplitsAsync(RangeFilter<string>? ticker = null, RangeFilter<LocalDate>? executionDate = null, bool? reverseSplit = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.
executionDateRangeFilter<LocalDate>?Query by execution date with the format YYYY-MM-DD. Accepts an exact value or a range.
reverseSplitbool?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.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 10 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<ReferenceSplit>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateSplitsAsync(RangeFilter<string>?, RangeFilter<LocalDate>?, bool?, SortOrder?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. Every filter is optional and defaults to no constraint. reverseSplit selects splits whose ratio reduces the share count. ListSplitsAsync(Filter<string>?, RangeFilter<LocalDate>?, SetFilter<string>?, int?, string?, CancellationToken) is the newer stocks route with a wider row; this one is
kept because the description declares it.
Exceptions
- MassiveApiException
The server responded with an error status.
ListTickerTypesAsync(MarketType?, string?, CancellationToken)
Retrieves the ticker types the platform recognises, optionally for one asset class and locale.
public Task<TickerType[]> ListTickerTypesAsync(MarketType? assetClass = null, string? locale = null, CancellationToken cancellationToken = default)
Parameters
assetClassMarketType?Filter by asset class.
localestringFilter by locale.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<TickerType[]>
The
resultsarray from the response, empty when the server returned none.
Remarks
The list is short and does not page. Its codes are what ListTickersAsync(RangeFilter<string>?, string?, MarketType?, string?, string?, string?, LocalDate?, string?, bool?, SortOrder?, int?, string?, CancellationToken) accepts
for its type parameter.
Exceptions
- MassiveApiException
The server responded with an error status.
ListTickersAsync(RangeFilter<string>?, string?, MarketType?, string?, string?, string?, LocalDate?, string?, bool?, SortOrder?, int?, string?, CancellationToken)
Retrieves the tickers the platform supports across every asset class, with each one's name, market, and identifiers.
public Task<MassivePage<TickerSummary>> ListTickersAsync(RangeFilter<string>? ticker = null, string? type = null, MarketType? market = null, string? exchange = null, string? cusip = null, string? cik = null, LocalDate? date = null, string? search = null, bool? active = null, SortOrder? order = null, int? limit = null, string? sort = null, CancellationToken cancellationToken = default)
Parameters
tickerRangeFilter<string>?Specify a ticker symbol. Defaults to empty string which queries all tickers. Accepts an exact value or a range.
typestringSpecify the type of the tickers. Find the types that we support via our Ticker Types API. Defaults to empty string which queries all types.
marketMarketType?Filter by market type. By default all markets are included.
exchangestringSpecify the asset's primary exchange Market Identifier Code (MIC) according to ISO 10383. Defaults to empty string which queries all exchanges.
cusipstringSpecify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes at their website. 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.
cikstringSpecify the CIK of the asset you want to search for. Find more information about CIK codes at their website. Defaults to empty string which queries all CIKs.
dateLocalDate?Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date.
searchstringSearch for terms within the ticker and/or company name.
activebool?Specify if the tickers returned should be actively traded on the queried date. Default is true.
orderSortOrder?Order results based on the sort field.
limitint?Limit the number of results returned, default is 100 and max is 1000.
sortstringSort field used for ordering.
cancellationTokenCancellationTokenA token to cancel the request.
Returns
- Task<MassivePage<TickerSummary>>
A single page of
results, reporting whether more exist.
Remarks
Returns the first page only. Use EnumerateTickersAsync(RangeFilter<string>?, string?, MarketType?, string?, string?, string?, LocalDate?, string?, bool?, SortOrder?, int?, string?, CancellationToken) to walk every page without
handling cursors yourself. Every filter is optional and defaults to no constraint. ticker takes a plain symbol or a lexical range; market is a MarketType; type takes a code from ListTickerTypesAsync(MarketType?, string?, CancellationToken), whose set that operation owns. date asks for
the tickers as they stood on a calendar date.
Exceptions
- MassiveApiException
The server responded with an error status.