Table of Contents

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

filingId string

The filing's identifier, as Id reports it.

fileId string

The file's identifier, as Id reports it.

destination Stream

The stream the file is written to. The caller keeps ownership of it.

cancellationToken CancellationToken

A 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

filingId or fileId is 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

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

section SetFilter<string>?

Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

periodEnd RangeFilter<LocalDate>?

Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<TenKSection>

Every results item 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

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

section SetFilter<string>?

Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

periodEnd RangeFilter<LocalDate>?

Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<TenKSection>

Every results item 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

filerCik SetFilter<string>?

SEC Central Index Key (10 digits, zero-padded) of the filing entity. Accepts an exact value or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<ThirteenFHolding>

Every results item 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

cik SetFilter<string>?

SEC Central Index Key of the filer (10 digits, zero-padded). Accepts an exact value or a set of values.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

filingDate Filter<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.

tertiaryCategory string

Most 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.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<EightKDisclosure>

Every results item 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

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

formType Filter<string>?

SEC form type (e.g., '8-K', '8-K/A' for amendments). Accepts an exact value, a range, or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<EightKText>

Every results item 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

cik Filter<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.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

periodEnd RangeFilter<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.

filingDate RangeFilter<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.

fiscalYear RangeFilter<long>?

The fiscal year for the reporting period. Accepts an exact value or a range.

fiscalQuarter RangeFilter<long>?

The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.

timeframe Filter<string>?

The reporting period type. Possible values include: quarterly, annual. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<BalanceSheet>

Every results item 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

cik Filter<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.

periodEnd RangeFilter<LocalDate>?

The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.

filingDate RangeFilter<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.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

fiscalYear RangeFilter<long>?

The fiscal year for the reporting period. Accepts an exact value or a range.

fiscalQuarter RangeFilter<long>?

The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.

timeframe Filter<string>?

The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<CashFlowStatement>

Every results item 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

assetClass MarketType?

Filter for conditions within a given asset class.

dataType string

Filter by data type.

id int?

Filter for conditions with a given ID.

sip string

Filter by SIP. If the condition contains a mapping for that SIP, the condition will be returned.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<Condition>

Every results item 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

taxonomy Filter<string>?

Taxonomy version that defines this classification (e.g., '1.0'). Accepts an exact value, a range, or a set of values.

primaryCategory Filter<string>?

Top-level disclosure category. Accepts an exact value, a range, or a set of values.

secondaryCategory Filter<string>?

Mid-level disclosure category. Accepts an exact value, a range, or a set of values.

tertiaryCategory Filter<string>?

Most specific disclosure category. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'taxonomy' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<DisclosureTaxonomyEntry>

Every results item 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

ticker RangeFilter<string>?

Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.

exDividendDate RangeFilter<LocalDate>?

Query by ex-dividend date with the format YYYY-MM-DD. Accepts an exact value or a range.

recordDate RangeFilter<LocalDate>?

Query by record date with the format YYYY-MM-DD. Accepts an exact value or a range.

declarationDate RangeFilter<LocalDate>?

Query by declaration date with the format YYYY-MM-DD. Accepts an exact value or a range.

payDate RangeFilter<LocalDate>?

Query by pay date with the format YYYY-MM-DD. Accepts an exact value or a range.

frequency int?

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).

cashAmount RangeFilter<double>?

Query by the cash amount of the dividend. Accepts an exact value or a range.

dividendType string

Query by the type of dividend. Dividends that have been paid and/or are expected to be paid on consistent schedules are denoted as CD. Special Cash dividends that have been paid that are infrequent or unusual, and/or can not be expected to occur in the future are denoted as SC.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<ReferenceDividend>

Every results item 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

filingId string

Select by filing id.

sequence RangeFilter<long>?

Query by file sequence number. Accepts an exact value or a range.

filename RangeFilter<string>?

Query by file name. Accepts an exact value or a range.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<FilingFile>

Every results item 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

cik Filter<string>?

SEC Central Index Key (CIK) identifying the filing entity. Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the filing entity, if available. Accepts an exact value, a range, or a set of values.

formType Filter<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.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '1000' if not specified. The maximum allowed limit is '10000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<FilingIndexEntry>

Every results item 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

type string

Query by filing type.

filingDate RangeFilter<string>?

Query by filing date. Accepts an exact value or a range.

periodOfReportDate RangeFilter<string>?

Query by period of report. Accepts an exact value or a range.

hasXbrl bool?

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.

companyName string

Query by entity company name.

companyCik string

Query by entity company CIK.

companyTicker string

Query by entity company ticker.

companySic string

Query by entity company SIC.

companyNameSearch string

Search by entities.company_data.name.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<Filing>

Every results item 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

ticker string

Query by company ticker.

cik string

Query by central index key (CIK) Number

companyName string

Query by company name.

sic string

Query by standard industrial classification (SIC)

filingDate RangeFilter<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.

periodOfReportDate RangeFilter<LocalDate>?

The period of report for the filing with financials data in YYYY-MM-DD format. Accepts an exact value or a range.

timeframe string

Query by timeframe. Annual financials originate from 10-K filings, and quarterly financials originate from 10-Q filings. Note: Most companies do not file quarterly reports for Q4 and instead include those financials in their annual report, so some companies my not return quarterly financials for Q4

includeSources bool?

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.

companyNameSearch string

Search by company_name.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 100.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<FinancialReport>

Every results item 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

ticker Filter<string>?

The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.

freeFloatPercent RangeFilter<double>?

Percentage of total shares outstanding that are available for public trading, rounded to two decimal places. Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<ShareFloat>

Every results item 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

issuerCik SetFilter<string>?

SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.

ownerCik SetFilter<string>?

SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

formType string

SEC form type ('3' for initial filing, '3/A' for amendments).

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<Form3Filing>

Every results item 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

issuerCik SetFilter<string>?

SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.

ownerCik SetFilter<string>?

SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

formType string

SEC form type ('4' for standard filing, '4/A' for amendments).

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

transactionCode string

SEC transaction code indicating the type of transaction (e.g., 'P' for purchase, 'S' for sale, 'A' for grant/award, 'M' for exercise/conversion).

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<Form4Filing>

Every results item 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

cik Filter<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.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

periodEnd RangeFilter<LocalDate>?

The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.

filingDate RangeFilter<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.

fiscalYear RangeFilter<long>?

The fiscal year for the reporting period. Accepts an exact value or a range.

fiscalQuarter RangeFilter<long>?

The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.

timeframe Filter<string>?

The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<IncomeStatement>

Every results item 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

ticker string

Specify a case-sensitive ticker symbol. For example, TSLA represents Tesla Inc.

usCode string

Specify a us_code. This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades.

isin string

Specify an International Securities Identification Number (ISIN). This is a unique twelve-digit code that is assigned to every security issuance in the world.

listingDate RangeFilter<LocalDate>?

Specify a listing date. This is the first trading date for the newly listed entity. Accepts an exact value or a range.

ipoStatus string

Specify an IPO status.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<Ipo>

Every results item 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

ticker Filter<string>?

The ticker symbol of the IPO event. Accepts an exact value, a range, or a set of values.

usCode Filter<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.

isin Filter<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.

listingDate RangeFilter<DateOrNanoseconds>?

First trading date for the newly listed entity. Accepts an exact value or a range.

ipoStatus SetFilter<string>?

The status of the IPO. Accepts an exact value or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '1000'.

sort string

A 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.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<IpoV1>

Every results item 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

ticker RangeFilter<string>?

Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.

publishedUtc RangeFilter<LocalDate>?

Return results published on, before, or after this date. Accepts an exact value or a range.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<NewsArticle>

Every results item 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

underlyingTicker RangeFilter<string>?

Query for contracts relating to an underlying stock ticker. Accepts an exact value or a range.

ticker string

This parameter has been deprecated. To search by specific options ticker, use the Options Contract endpoint here.

contractType ContractType?

Query by the type of contract.

expirationDate RangeFilter<LocalDate>?

Query by contract expiration with date format YYYY-MM-DD. Accepts an exact value or a range.

asOf LocalDate?

Specify a point in time for contracts as of this date with format YYYY-MM-DD. Defaults to today's date.

strikePrice RangeFilter<double>?

Query by strike price of a contract. Accepts an exact value or a range.

expired bool?

Query for expired contracts. Default is false.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<OptionsContract>

Every results item 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

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

cik Filter<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.

price RangeFilter<double>?

Stock price used in ratio calculations, typically the closing price for the given date. Accepts an exact value or a range.

averageVolume RangeFilter<double>?

Average trading volume over the last 30 trading days, providing context for liquidity. Accepts an exact value or a range.

marketCap RangeFilter<double>?

Market capitalization, calculated as stock price multiplied by total shares outstanding. Accepts an exact value or a range.

earningsPerShare RangeFilter<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.

priceToEarnings RangeFilter<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.

priceToBook RangeFilter<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.

priceToSales RangeFilter<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.

priceToCashFlow RangeFilter<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.

priceToFreeCashFlow RangeFilter<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.

dividendYield RangeFilter<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.

returnOnAssets RangeFilter<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.

returnOnEquity RangeFilter<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.

debtToEquity RangeFilter<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.

currentRatio RangeFilter<double>?

Current ratio, calculated as total current assets divided by total current liabilities, measuring short-term liquidity. Accepts an exact value or a range.

quickRatio RangeFilter<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.

cashRatio RangeFilter<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.

evToSales RangeFilter<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.

evToEbitda RangeFilter<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.

enterpriseValue RangeFilter<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.

freeCashFlow RangeFilter<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.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<FinancialRatios>

Every results item 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

taxonomy RangeFilter<double>?

Version identifier (e.g., '1.0', '1.1') for the taxonomy. Accepts an exact value or a range.

primaryCategory Filter<string>?

Top-level risk category. Accepts an exact value, a range, or a set of values.

secondaryCategory Filter<string>?

Mid-level risk category. Accepts an exact value, a range, or a set of values.

tertiaryCategory Filter<string>?

Most specific risk classification. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'taxonomy' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<RiskFactorTaxonomyEntry>

Every results item 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

filingDate Filter<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.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<RiskFactor>

Every results item 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

ticker Filter<string>?

The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.

daysToCover Filter<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.

settlementDate Filter<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.

avgDailyVolume Filter<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.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<ShortInterest>

Every results item 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

ticker Filter<string>?

The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.

date Filter<LocalDate>?

The date of trade activity reported in the format YYYY-MM-DD. Accepts an exact value, a range, or a set of values.

shortVolumeRatio Filter<double>?

The percentage of total volume that was sold short. Calculated as (short_volume / total_volume)

    1. Accepts an exact value, a range, or a set of values.
limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<ShortVolume>

Every results item 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

ticker RangeFilter<string>?

Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.

executionDate RangeFilter<LocalDate>?

Query by execution date with the format YYYY-MM-DD. Accepts an exact value or a range.

reverseSplit bool?

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.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<ReferenceSplit>

Every results item 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

ticker RangeFilter<string>?

Specify a ticker symbol. Defaults to empty string which queries all tickers. Accepts an exact value or a range.

type string

Specify the type of the tickers. Find the types that we support via our Ticker Types API. Defaults to empty string which queries all types.

market MarketType?

Filter by market type. By default all markets are included.

exchange string

Specify the asset's primary exchange Market Identifier Code (MIC) according to ISO 10383. Defaults to empty string which queries all exchanges.

cusip string

Specify 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.

cik string

Specify 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.

date LocalDate?

Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date.

search string

Search for terms within the ticker and/or company name.

active bool?

Specify if the tickers returned should be actively traded on the queried date. Default is true.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 100 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A token to cancel the traversal.

Returns

IAsyncEnumerable<TickerSummary>

Every results item 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

filingId string

Select by filing id.

cancellationToken CancellationToken

A token to cancel the request.

Returns

Task<Filing>

The results object from the response.

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

filingId string

Select by filing id.

fileId string

Select by file id.

cancellationToken CancellationToken

A 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

cancellationToken CancellationToken

A 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

optionsTicker string

Query for a contract by options ticker. You can learn more about the structure of options tickers here.

asOf LocalDate?

Specify a point in time for the contract as of this date with format YYYY-MM-DD. Defaults to today's date.

cancellationToken CancellationToken

A token to cancel the request.

Returns

Task<OptionsContract>

The results object 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

ticker string

Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc.

date LocalDate?

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.

cancellationToken CancellationToken

A token to cancel the request.

Returns

Task<TickerDetails>

The results object 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

id string

Identifier of an asset, which can be a Ticker, CUSIP, or Composite FIGI. Specify a case-sensitive ticker symbol (e.g. AAPL for Apple Inc). When provided a ticker, events for the entity currently represented by that ticker are returned. To find events for entities previously associated with a ticker, obtain the relevant identifier using the Ticker Details Endpoint.

types string

A comma-separated list of the types of event to include. Currently ticker_change is the only supported event_type. Leave blank to return all supported event_types.

cancellationToken CancellationToken

A token to cancel the request.

Returns

Task<TickerEvents>

The results object 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

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

section SetFilter<string>?

Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

periodEnd RangeFilter<LocalDate>?

Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

section SetFilter<string>?

Standardized section identifier from the filing (e.g. 'business', 'risk_factors', etc.). Accepts an exact value or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

periodEnd RangeFilter<LocalDate>?

Period end date that the filing relates to (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

filerCik SetFilter<string>?

SEC Central Index Key (10 digits, zero-padded) of the filing entity. Accepts an exact value or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

cik SetFilter<string>?

SEC Central Index Key of the filer (10 digits, zero-padded). Accepts an exact value or a set of values.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

filingDate Filter<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.

tertiaryCategory string

Most 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.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

formType Filter<string>?

SEC form type (e.g., '8-K', '8-K/A' for amendments). Accepts an exact value, a range, or a set of values.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '100'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

cik Filter<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.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

periodEnd RangeFilter<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.

filingDate RangeFilter<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.

fiscalYear RangeFilter<long>?

The fiscal year for the reporting period. Accepts an exact value or a range.

fiscalQuarter RangeFilter<long>?

The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.

timeframe Filter<string>?

The reporting period type. Possible values include: quarterly, annual. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A 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

cik Filter<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.

periodEnd RangeFilter<LocalDate>?

The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.

filingDate RangeFilter<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.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

fiscalYear RangeFilter<long>?

The fiscal year for the reporting period. Accepts an exact value or a range.

fiscalQuarter RangeFilter<long>?

The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.

timeframe Filter<string>?

The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A 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

assetClass MarketType?

Filter for conditions within a given asset class.

dataType string

Filter by data type.

id int?

Filter for conditions with a given ID.

sip string

Filter by SIP. If the condition contains a mapping for that SIP, the condition will be returned.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

taxonomy Filter<string>?

Taxonomy version that defines this classification (e.g., '1.0'). Accepts an exact value, a range, or a set of values.

primaryCategory Filter<string>?

Top-level disclosure category. Accepts an exact value, a range, or a set of values.

secondaryCategory Filter<string>?

Mid-level disclosure category. Accepts an exact value, a range, or a set of values.

tertiaryCategory Filter<string>?

Most specific disclosure category. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'taxonomy' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

ticker RangeFilter<string>?

Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.

exDividendDate RangeFilter<LocalDate>?

Query by ex-dividend date with the format YYYY-MM-DD. Accepts an exact value or a range.

recordDate RangeFilter<LocalDate>?

Query by record date with the format YYYY-MM-DD. Accepts an exact value or a range.

declarationDate RangeFilter<LocalDate>?

Query by declaration date with the format YYYY-MM-DD. Accepts an exact value or a range.

payDate RangeFilter<LocalDate>?

Query by pay date with the format YYYY-MM-DD. Accepts an exact value or a range.

frequency int?

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).

cashAmount RangeFilter<double>?

Query by the cash amount of the dividend. Accepts an exact value or a range.

dividendType string

Query by the type of dividend. Dividends that have been paid and/or are expected to be paid on consistent schedules are denoted as CD. Special Cash dividends that have been paid that are infrequent or unusual, and/or can not be expected to occur in the future are denoted as SC.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

assetClass MarketType?

Filter by asset class.

locale string

Filter by locale.

cancellationToken CancellationToken

A token to cancel the request.

Returns

Task<Exchange[]>

The results array from the response, empty when the server returned none.

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

filingId string

Select by filing id.

sequence RangeFilter<long>?

Query by file sequence number. Accepts an exact value or a range.

filename RangeFilter<string>?

Query by file name. Accepts an exact value or a range.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

cik Filter<string>?

SEC Central Index Key (CIK) identifying the filing entity. Accepts an exact value, a range, or a set of values.

ticker Filter<string>?

Stock ticker symbol for the filing entity, if available. Accepts an exact value, a range, or a set of values.

formType Filter<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.

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '1000' if not specified. The maximum allowed limit is '10000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

type string

Query by filing type.

filingDate RangeFilter<string>?

Query by filing date. Accepts an exact value or a range.

periodOfReportDate RangeFilter<string>?

Query by period of report. Accepts an exact value or a range.

hasXbrl bool?

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.

companyName string

Query by entity company name.

companyCik string

Query by entity company CIK.

companyTicker string

Query by entity company ticker.

companySic string

Query by entity company SIC.

companyNameSearch string

Search by entities.company_data.name.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

ticker string

Query by company ticker.

cik string

Query by central index key (CIK) Number

companyName string

Query by company name.

sic string

Query by standard industrial classification (SIC)

filingDate RangeFilter<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.

periodOfReportDate RangeFilter<LocalDate>?

The period of report for the filing with financials data in YYYY-MM-DD format. Accepts an exact value or a range.

timeframe string

Query by timeframe. Annual financials originate from 10-K filings, and quarterly financials originate from 10-Q filings. Note: Most companies do not file quarterly reports for Q4 and instead include those financials in their annual report, so some companies my not return quarterly financials for Q4

includeSources bool?

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.

companyNameSearch string

Search by company_name.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 100.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

ticker Filter<string>?

The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.

freeFloatPercent RangeFilter<double>?

Percentage of total shares outstanding that are available for public trading, rounded to two decimal places. Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '5000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A 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

issuerCik SetFilter<string>?

SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.

ownerCik SetFilter<string>?

SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

formType string

SEC form type ('3' for initial filing, '3/A' for amendments).

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

issuerCik SetFilter<string>?

SEC Central Index Key of the issuer company (10 digits, zero-padded). Accepts an exact value or a set of values.

ownerCik SetFilter<string>?

SEC Central Index Key of the reporting owner (10 digits, zero-padded). Accepts an exact value or a set of values.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

formType string

SEC form type ('4' for standard filing, '4/A' for amendments).

filingDate RangeFilter<LocalDate>?

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD). Accepts an exact value or a range.

transactionCode string

SEC transaction code indicating the type of transaction (e.g., 'P' for purchase, 'S' for sale, 'A' for grant/award, 'M' for exercise/conversion).

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '10000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

cik Filter<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.

tickers ArrayFilter<string>?

Filter for arrays that contain the value. Matches arrays containing the value, any of the values, or all of the values.

periodEnd RangeFilter<LocalDate>?

The last date of the reporting period (formatted as YYYY-MM-DD). Accepts an exact value or a range.

filingDate RangeFilter<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.

fiscalYear RangeFilter<long>?

The fiscal year for the reporting period. Accepts an exact value or a range.

fiscalQuarter RangeFilter<long>?

The fiscal quarter number (1, 2, 3, or 4) for the reporting period. Accepts an exact value or a range.

timeframe Filter<string>?

The reporting period type. Possible values include: quarterly, annual, trailing_twelve_months. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'period_end' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A 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

ticker string

Specify a case-sensitive ticker symbol. For example, TSLA represents Tesla Inc.

usCode string

Specify a us_code. This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades.

isin string

Specify an International Securities Identification Number (ISIN). This is a unique twelve-digit code that is assigned to every security issuance in the world.

listingDate RangeFilter<LocalDate>?

Specify a listing date. This is the first trading date for the newly listed entity. Accepts an exact value or a range.

ipoStatus string

Specify an IPO status.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

ticker Filter<string>?

The ticker symbol of the IPO event. Accepts an exact value, a range, or a set of values.

usCode Filter<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.

isin Filter<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.

listingDate RangeFilter<DateOrNanoseconds>?

First trading date for the newly listed entity. Accepts an exact value or a range.

ipoStatus SetFilter<string>?

The status of the IPO. Accepts an exact value or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '1000'.

sort string

A 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.

cancellationToken CancellationToken

A 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

cancellationToken CancellationToken

A 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

ticker RangeFilter<string>?

Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.

publishedUtc RangeFilter<LocalDate>?

Return results published on, before, or after this date. Accepts an exact value or a range.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

underlyingTicker RangeFilter<string>?

Query for contracts relating to an underlying stock ticker. Accepts an exact value or a range.

ticker string

This parameter has been deprecated. To search by specific options ticker, use the Options Contract endpoint here.

contractType ContractType?

Query by the type of contract.

expirationDate RangeFilter<LocalDate>?

Query by contract expiration with date format YYYY-MM-DD. Accepts an exact value or a range.

asOf LocalDate?

Specify a point in time for contracts as of this date with format YYYY-MM-DD. Defaults to today's date.

strikePrice RangeFilter<double>?

Query by strike price of a contract. Accepts an exact value or a range.

expired bool?

Query for expired contracts. Default is false.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

cik Filter<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.

price RangeFilter<double>?

Stock price used in ratio calculations, typically the closing price for the given date. Accepts an exact value or a range.

averageVolume RangeFilter<double>?

Average trading volume over the last 30 trading days, providing context for liquidity. Accepts an exact value or a range.

marketCap RangeFilter<double>?

Market capitalization, calculated as stock price multiplied by total shares outstanding. Accepts an exact value or a range.

earningsPerShare RangeFilter<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.

priceToEarnings RangeFilter<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.

priceToBook RangeFilter<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.

priceToSales RangeFilter<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.

priceToCashFlow RangeFilter<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.

priceToFreeCashFlow RangeFilter<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.

dividendYield RangeFilter<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.

returnOnAssets RangeFilter<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.

returnOnEquity RangeFilter<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.

debtToEquity RangeFilter<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.

currentRatio RangeFilter<double>?

Current ratio, calculated as total current assets divided by total current liabilities, measuring short-term liquidity. Accepts an exact value or a range.

quickRatio RangeFilter<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.

cashRatio RangeFilter<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.

evToSales RangeFilter<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.

evToEbitda RangeFilter<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.

enterpriseValue RangeFilter<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.

freeCashFlow RangeFilter<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.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A 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

ticker string

The ticker symbol to search.

cancellationToken CancellationToken

A token to cancel the request.

Returns

Task<RelatedCompany[]>

The results array 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

taxonomy RangeFilter<double>?

Version identifier (e.g., '1.0', '1.1') for the taxonomy. Accepts an exact value or a range.

primaryCategory Filter<string>?

Top-level risk category. Accepts an exact value, a range, or a set of values.

secondaryCategory Filter<string>?

Mid-level risk category. Accepts an exact value, a range, or a set of values.

tertiaryCategory Filter<string>?

Most specific risk classification. Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '200' if not specified. The maximum allowed limit is '1000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'taxonomy' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

filingDate Filter<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.

ticker Filter<string>?

Stock ticker symbol for the company. Accepts an exact value, a range, or a set of values.

cik Filter<string>?

SEC Central Index Key (10 digits, zero-padded). Accepts an exact value, a range, or a set of values.

limit int?

Limit the maximum number of results returned. Defaults to '100' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'filing_date' if not specified. The sort order defaults to 'desc' if not specified.

cancellationToken CancellationToken

A 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

ticker Filter<string>?

The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.

daysToCover Filter<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.

settlementDate Filter<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.

avgDailyVolume Filter<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.

limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A 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

ticker Filter<string>?

The primary ticker symbol for the stock. Accepts an exact value, a range, or a set of values.

date Filter<LocalDate>?

The date of trade activity reported in the format YYYY-MM-DD. Accepts an exact value, a range, or a set of values.

shortVolumeRatio Filter<double>?

The percentage of total volume that was sold short. Calculated as (short_volume / total_volume)

    1. Accepts an exact value, a range, or a set of values.
limit int?

Limit the maximum number of results returned. Defaults to '10' if not specified. The maximum allowed limit is '50000'.

sort string

A comma separated list of sort columns. For each column, append '.asc' or '.desc' to specify the sort direction. The sort column defaults to 'ticker' if not specified. The sort order defaults to 'asc' if not specified.

cancellationToken CancellationToken

A 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

ticker RangeFilter<string>?

Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc. Accepts an exact value or a range.

executionDate RangeFilter<LocalDate>?

Query by execution date with the format YYYY-MM-DD. Accepts an exact value or a range.

reverseSplit bool?

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.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 10 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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

assetClass MarketType?

Filter by asset class.

locale string

Filter by locale.

cancellationToken CancellationToken

A token to cancel the request.

Returns

Task<TickerType[]>

The results array from the response, empty when the server returned none.

Remarks

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

ticker RangeFilter<string>?

Specify a ticker symbol. Defaults to empty string which queries all tickers. Accepts an exact value or a range.

type string

Specify the type of the tickers. Find the types that we support via our Ticker Types API. Defaults to empty string which queries all types.

market MarketType?

Filter by market type. By default all markets are included.

exchange string

Specify the asset's primary exchange Market Identifier Code (MIC) according to ISO 10383. Defaults to empty string which queries all exchanges.

cusip string

Specify 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.

cik string

Specify 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.

date LocalDate?

Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date.

search string

Search for terms within the ticker and/or company name.

active bool?

Specify if the tickers returned should be actively traded on the queried date. Default is true.

order SortOrder?

Order results based on the sort field.

limit int?

Limit the number of results returned, default is 100 and max is 1000.

sort string

Sort field used for ordering.

cancellationToken CancellationToken

A 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.