UNPKG

@yash101/schwab-api-client

Version:

A TypeScript client library for interacting with the Charles Schwab Brokerage APIs.

959 lines 30 kB
/** * Represents a comprehensive set of TypeScript interfaces, types, and enums for interacting with a market data API. * These definitions are designed to facilitate the retrieval and manipulation of financial market data, including quotes, * option chains, fundamental data, and reference information for various asset types. * * ### Key Features: * - **Quote Retrieval**: Interfaces for requesting and receiving quotes for multiple symbols or a single symbol. * - **Option Chains**: Support for retrieving detailed option chain data, including contract types, expiration dates, and theoretical values. * - **Market Hours**: Provides information about market hours, including session intervals and open/close status. * - **Reference Data**: Includes detailed reference information for equities, forex, mutual funds, futures, and options. * - **Error Handling**: Structured error responses with detailed descriptions and sources of errors. * - **Fundamental Data**: Access to fundamental metrics such as dividend yield, P/E ratio, and earnings per share. * - **Enums for Standardization**: Enums for asset types, option strategies, expiration types, and more to ensure consistency. * * ### Interfaces Overview: * - **GetQuotesRequest**: Represents a request to retrieve quotes for a list of symbols, with optional fields and indicative quotes. * - **GetQuotesResponse**: Represents the response for a quotes request, including quote data or error information. * - **GetOptionChainsRequest**: Represents a request to retrieve option chains for a specific symbol, with various optional parameters. * - **OptionChain**: Represents the detailed structure of an option chain, including call and put expiration date maps. * - **MarketHours**: Provides detailed market hours information for a specific date and market type. * - **ErrorResponse**: Represents a structured error response with detailed error information. * - **Fundamental**: Provides fundamental metrics for a financial instrument, such as dividend yield and P/E ratio. * - **InstrumentResponse**: Represents detailed information about a financial instrument, including bonds and fundamental data. * * ### Enums Overview: * - **AssetMainTypeEnum**: Enum for main asset types such as equity, bond, ETF, and option. * - **OptionStrategyEnum**: Enum for various option strategies, including single, vertical, and straddle. * - **OptionExpirationType**: Enum for expiration types such as monthly, quarterly, and weekly. * - **DividendFrequency**: Enum for dividend payment frequencies, such as annual, quarterly, and monthly. * - **HttpStatusCode**: Enum for HTTP status codes, including 400 (Bad Request) and 500 (Internal Server Error). * * ### Usage: * These TypeScript definitions are intended to be used in applications that interact with a financial market data API. * They provide a strongly-typed structure for making API requests and handling responses, ensuring type safety and clarity. * * ### Example: * ```typescript * const request: GetQuotesRequest = { * symbols: ['AAPL', 'MSFT'], * fields: [GetQuotesAcceptableFieldsEnum.QUOTE, GetQuotesAcceptableFieldsEnum.FUNDAMENTAL], * indicative: true, * }; * * const response: GetQuotesResponse = await fetchQuotes(request); * if ('errors' in response) { * console.error('Error fetching quotes:', response.errors); * } else { * console.log('Quotes:', response); * } * ``` */ import { PutCallEnum } from './asset.types'; import { ExchangeName } from './market.types'; /** * GET /v1/marketdata/quotes * Represents a request to retrieve quotes for a list of symbols. * * @property symbols - An array of symbols for which quotes are requested. * * @property fields - An optional array of acceptable field enums to specify a subset of data to return. * Possible root nodes include: * - `quote` * - `fundamental` * - `extended` * - `reference` * - `regular` * * If not provided, the default fields `[quote, fundamental]` will be used. * To retrieve the full response, omit this attribute. * * @property indicative - An optional boolean to include indicative symbol quotes for all ETF symbols in the request. * If set to `true`, the API will return quotes for the requested ETF symbols and their corresponding indicative quotes * (e.g., `$ABC.IV` for the ETF symbol `ABC`). */ export interface GetQuotesRequest { symbols: string[]; fields?: GetQuotesAcceptableFieldsEnum[]; indicative?: boolean; } /** * GET /v1/marketdata/quotes * Represents a map of symbols to their corresponding quote responses. */ export type GetQuotesResponse = QuoteResponse | ErrorResponse; /** * GET /v1/marketdata/{symbol_id}/quotes * Represents a request to retrieve quotes for a specific symbol. * * @property symbol - The symbol for which the quote is requested. * * @property fields - An optional array of acceptable field enums to specify a subset of data to return. * Possible root nodes include: * - `quote` * - `fundamental` * - `extended` * - `reference` * - `regular` * * If not provided, the default fields `[quote, fundamental]` will be used. * To retrieve the full response, omit this attribute. */ export interface GetSingleQuoteRequest { symbol: string; fields?: GetQuotesAcceptableFieldsEnum[]; } /** * GET /v1/marketdata/{symbol_id}/quotes * Represents a response containing the quote information for a specific symbol. */ export type GetSingleQuoteResponse = QuoteResponseObject | ErrorResponse; /** * GET /v1/marketdata/chains * * Represents a request to retrieve option chains for a specific symbol. */ export interface GetOptionChainsRequest { /** * The ticker symbol for which to fetch option chains (e.g., "AAPL"). */ symbol: string; /** * Filter by contract type: CALL, PUT, or ALL. */ contractType?: PutCallAllEnum; /** * Number of strikes above and below the at‑the‑money price to return. * @type integer */ strikeCount?: number; /** * Whether to include the underlying symbol’s quote alongside the options. * @default false */ includeUnderlyingQuote?: boolean; /** * Strategy for the option chain: * - SINGLE: basic chain * - ANALYTICAL: includes theoretical values using volatility, underlyingPrice, interestRate, and daysToExpiration */ strategy?: OptionStrategyEnum; /** * Strike interval for spread strategies (only used when strategy ≠ SINGLE). * @type integer */ interval?: number; /** * A specific strike price to filter the chain. * @type float */ strike?: number; /** * Range (in price units) around the at‑the‑money strike to include. * @type float */ range?: number; /** * Lower bound for expiration dates (inclusive). Accepts a Date object or ISO 8601 string. */ fromDate?: string | Date; /** * Upper bound for expiration dates (inclusive). Accepts a Date object or ISO 8601 string. */ toDate?: string | Date; /** * Volatility (as a decimal, e.g. 0.25 for 25%) used for theoretical pricing (ANALYTICAL only). * @type float */ volatility?: number; /** * Underlying price used for theoretical calculations (ANALYTICAL only). * @type float */ underlyingPrice?: number; /** * Interest rate (as a decimal, e.g. 0.01 for 1%) used for theoretical pricing (ANALYTICAL only). * @type float */ interestRate?: number; /** * Days to expiration used for theoretical calculations (ANALYTICAL only). * @type integer */ daysToExpiration?: number; /** * Filter by expiration month. */ expMonth?: OptionExpiryMonthEnum; /** * Further filter by option type (e.g. "CALL" or "PUT") if supported. */ optionType?: string; /** * Client entitlement level, used to determine data access permissions. */ entitlement?: EntitlementEnum; } /** * GET /v1/marketdata/chains * Represents a response containing the option chain information for a specific symbol. */ export type GetOptionsChainsResponse = OptionChain | ErrorResponse; /** * GET /v1/marketdata/expirationchain * Represents a request to retrieve expiration chain information for a specific symbol. * Request: string symbol */ export type GetExpirationChainRequest = string; export type GetExpirationChainResponse = ExpirationChain | ErrorResponse; /** * GET /v1/marketdata/pricehistory * Represents a request to retrieve price history for a specific symbol. * * @property symbol - The symbol for which to fetch price history (e.g., "AAPL"). */ export interface GetPriceHistoryRequest { symbol: string; periodType?: PeriodTypeEnum; period?: number; frequencyType?: FrequencyTypeEnum; frequency?: number; startDate?: string | Date; endDate?: string | Date; needExtendedHoursData?: boolean; needPreviousClose?: boolean; } /** * GET /v1/marketdata/movers/{symbol_id} * Represents a request to retrieve market movers for a specific symbol. * * @property symbol - the index for which to fetch market movers (e.g., "$SPX"). */ export interface GetMarketMoversRequest { symbol_id: IndexSymbolEnum; sort?: SortMoversByEnum; /** * Frequency property. * Acceptable values: 0, 1, 5, 10, 30, 60 * Default value: 0 */ frequency?: 0 | 1 | 5 | 10 | 30 | 60; } export type GetMarketMoversResponse = MarketMoversResponse | ErrorResponse; /** * GET /v1/marketdata/markets * Represents a request to retrieve market hours for a specific date. */ export type GetMarketHoursRequest = { markets: MarketsEnum[]; date: string | Date; }; /** * Represents the response type for a request to retrieve market hours. * * This type is a union of two possible responses: * - `MarketHoursResponse`: Indicates a successful response containing market hours data. * - `ErrorResponse`: Indicates an error occurred during the request, providing error details. * * ### MarketHoursResponse Structure: * - The `MarketHoursResponse` is a `Record<string, Record<string, MarketHours>>`. * - The outer `Record<string, MarketHours>` keys represent the market type, which can be one of the following: * - `equity` * - `option` * - `future` * - `bond` * - The inner `Record<string, MarketHours>` keys represent product codes (guessing, not documented). * - Each inner `MarketHours` object contains detailed information about the market hours for that product. * * ### MarketHours Object: * - `date`: The date for which the market hours are provided, in `YYYY-MM-DD` format. * - `marketType`: The type of market, corresponding to the outer record key. * - `exchange`: The name of the exchange (e.g., "NYSE", "NASDAQ"). * - `category`: The category of the market (e.g., "equity", "option"). * - `product`: The product type (e.g., "stock", "option"). * - `productName`: The name of the product (e.g., "Apple Inc."). * - `isOpen`: A boolean indicating whether the market is open. * - `sessionHours`: A `Record<string, Interval[]>` where: * - The keys represent the session type, such as: * - `preMarket` * - `regularMarket` * - `postMarket` * - The values are arrays of `Interval` objects, each containing: * - `start`: The start time of the session in `HH:mm:ss` format. * - `end`: The end time of the session in `HH:mm:ss` format. */ export type GetMarketHoursResponse = MarketHoursResponse | ErrorResponse; /** * GET /v1/marketdata/markets/{market} * Represents a request to retrieve market hours for a specific market. */ export interface GetSingleMarketHoursRequest { market: MarketsEnum; date: string | Date; } export type GetSingleMarketHoursResponse = GetMarketHoursResponse; /** * GET /v1/marketdata/instruments * Represents a request to retrieve instrument information for a specific symbol. */ export interface GetInstrumentsRequest { symbol: string; projection: SearchByEnum; } /** * GET /v1/marketdata/instruments * Represents a response containing instrument information for a specific symbol. */ export type GetInstrumentsResponse = GetInstrumentsBaseResponse | ErrorResponse; /** * GET /v1/marketdata/instruments/{cusip_id} * Represents a request to retrieve instrument information for a specific CUSIP. */ export type GetInstrumentByCusipRequest = string; /** * GET /v1/marketdata/instruments/{cusip_id} * Represents a response containing instrument information for a specific CUSIP. */ export type GetInstrumentByCUSIPResponse = InstrumentResponse | ErrorResponse; export interface GetInstrumentsBaseResponse { instruments: InstrumentResponse[]; } export declare enum SearchByEnum { SYMBOL_SEARCH = "symbol-search", SYMBOL_REGEX = "symbol-regex", DESC_SEARCH = "desc-search", DESC_REGEX = "desc-regex", SEARCH = "search", FUNDAMENTAL = "fundamental" } export type MarketHoursResponse = Record<string, Record<string, MarketHours>>; export declare enum MarketsEnum { EQUITY = "equity", OPTION = "option", FUTURE = "future", BOND = "bond" } export interface MarketMoversResponse { screeners: Screener[]; } export declare enum IndexSymbolEnum { DJI = "$DJI",// Dow Jones Industrial Average COMPX = "$COMPX",// NASDAQ Composite SPX = "$SPX",// S&P 500 NYSE = "NYSE",// New York Stock Exchange NASDAQ = "NASDAQ",// NASDAQ Stock Market OTCBB = "OTCBB",// Over-the-Counter Bulletin Board INDEX_ALL = "INDEX_ALL",// All Indexes EQUITY_ALL = "EQUITY_ALL",// All Equities OPTION_ALL = "OPTION_ALL",// All Options OPTION_PUT = "OPTION_PUT",// All Put Options OPTION_CALL = "OPTION_CALL" } export declare enum SortMoversByEnum { VOLUME = "VOLUME", TRADES = "TRADES", PERCENT_CHANGE_UP = "PERCENT_CHANGE_UP", PERCENT_CHANGE_DOWN = "PERCENT_CHANGE_DOWN" } export declare enum EntitlementEnum { PP = "PP",// Paying Pro NP = "NP",// NonPro PN = "PN" } export declare enum PeriodTypeEnum { DAY = "day", MONTH = "month", YEAR = "year", YTD = "ytd" } export declare enum FrequencyTypeEnum { MINUTE = "minute", DAILY = "daily", WEEKLY = "weekly", MONTHLY = "monthly" } export type PutCallAllEnum = PutCallEnum | { ALL: 'ALL'; }; export declare enum GetQuotesAcceptableFieldsEnum { QUOTE = "quote", FUNDAMENTAL = "fundamental", EXTENDED = "extended", REFERENCE = "reference", REGULAR = "regular" } export declare enum OptionExpirationType { MONTHLY = "M",// End Of Month Expiration Calendar Cycle QUARTERLY = "Q",// Quarterly expirations WEEKLY = "W",// Weekly expiration REGULAR_S = "S" } export declare enum OptionSettlementTypeEnum { AM = "A",// AM settlement PM = "P" } export declare enum QuoteTypeEnum { NBBO = "NBBO",// Realtime NFL = "NFL" } export declare enum OptionStrategyEnum { SINGLE = "SINGLE", ANALYTICAL = "ANALYTICAL", COVERED = "COVERED", VERTICAL = "VERTICAL", CALENDAR = "CALENDAR", STRANGLE = "STRANGLE", STRADDLE = "STRADDLE", BUTTERFLY = "BUTTERFLY", CONDOR = "CONDOR", DIAGONAL = "DIAGONAL", COLLAR = "COLLAR", ROLL = "ROLL" } export declare enum FundStrategyEnum { ACTIVE = "A", LEVERAGED = "L", PASSIVE = "P", QUANTITATIVE = "Q", SHORT = "S" } export declare enum OptionExerciseTypeEnum { AMERICAN = "A", EUROPEAN = "E" } export declare enum OptionExpiryMonthEnum { JANUARY = "JAN", FEBRUARY = "FEB", MARCH = "MAR", APRIL = "APR", MAY = "MAY", JUNE = "JUN", JULY = "JUL", AUGUST = "AUG", SEPTEMBER = "SEP", OCTOBER = "OCT", NOVEMBER = "NOV", DECEMBER = "DEC", ALL = "ALL" } export declare enum DividendFrequency { ANNUAL = 1, SEMI_ANNUAL = 2, THREE_TIMES_A_YEAR = 3, QUARTERLY = 4, EVERY_OTHER_MONTH = 6, ELEVEN_TIMES_A_YEAR = 11, MONTHLY = 12 } export declare enum MutualFundAssetSubType { OPEN_ENDED_FUND = "OEF",// Open-End Fund CLOSED_ENDED_FUND = "CEF",// Closed-End Fund MONEY_MARKET_FUND = "MMF" } export declare enum EquityAssetSubTypeEnum { COMMON_EQUITY = "COE",// Common Equity PREFERRED_EQUITY = "PRF",// Preferred Equity AMERICAN_DEPOSITARY_RECEIPT = "ADR",// American Depositary Receipt GLOBAL_DEPOSITARY_RECEIPT = "GDR",// Global Depositary Receipt CLOSED_END_FUND = "CEF",// Closed-End Fund EXCHANGE_TRADED_FUND = "ETF",// Exchange-Traded Fund EXCHANGE_TRADED_NOTE = "ETN",// Exchange-Traded Note UNIT_INVESTMENT_TRUST = "UIT",// Unit Investment Trust WARRANT = "WAR",// Warrant RIGHTS = "RGT" } export declare enum AssetMainTypeEnum { BOND = "BOND", EQUITY = "EQUITY", ETF = "ETF", EXTENDED = "EXTENDED", FOREX = "FOREX", FUTURE = "FUTURE", FUTURE_OPTION = "FUTURE_OPTION", FUNDAMENTAL = "FUNDAMENTAL", INDEX = "INDEX", INDICATOR = "INDICATOR", MUTUAL_FUND = "MUTUAL_FUND", OPTION = "OPTION", UNKNOWN = "UNKNOWN" } export declare enum DirectionEnum { UP = "UP", DOWN = "DOWN" } export declare enum HttpStatusCode { BAD_REQUEST = 400, UNAUTHORIZED = 401, NOT_FOUND = 404, INTERNAL_SERVER_ERROR = 500 } export interface Error { id: string; status: string; title: string; detail: string; source?: ErrorSource; } export interface ErrorResponse { errors: Error[]; } export interface Interval { start: string; end: string; } export interface MarketHours { date: string; marketType: AssetMainTypeEnum; exchange: string; category: string; product: string; productName: string; isOpen: boolean; sessionHours: Record<string, Interval[]>; } export interface Screener { description: string; change: number; percentChange: number; name: string; direction: DirectionEnum; last: number; symbol: string; totalVolume: number; } export interface Candle { close: number; datetime: number; datetimeISO8601: string; high: number; low: number; open: number; volume: number; } export interface CandleList { candles: Candle[]; empty: boolean; previousClose: number; previousCloseDate: number; previousCloseDateISO8601: string; symbol: string; } export interface ReferenceBase { description: string; cusip: string; exchange: string; exchangeName: string; } export interface ReferenceEquity extends ReferenceBase { fsiDesc: string; htbQuantity: number; htbRate: number; isHardToBorrow: boolean; isShortable: boolean; otcMarketTier: string; } export interface ReferenceForex extends ReferenceBase { isTradable: boolean; marketMaker: string; product: string | null; tradingHours: string; } export type ReferenceMutualFund = ReferenceBase; export type ReferenceIndex = Omit<ReferenceBase, 'cusip'>; export interface ReferenceFutureOption extends Omit<ReferenceBase, 'cusip'> { contractType: PutCallEnum; multiplier: number; expirationDate: number; expirationStyle: string; strikePrice: number; underlying: string; } export interface ReferenceFuture extends Omit<ReferenceBase, 'cusip'> { futureActiveSymbol: string; futureExpirationDate: number; futureIsActive: boolean; futureMultiplier: number; futurePriceFormat: string; futureSettlementPrice: number; futureTradingHours: string; product: string; } export interface Expiration { daysToExpiration: number; expiration: string; expirationType: OptionExpirationType; standard: boolean; settlementType: OptionSettlementTypeEnum; optionRoots: string; } export interface ExpirationChain { status: string; expirationList: Expiration[]; } export interface OptionDeliverables { symbol: string; assetType: string; deliverableUnits: string; currencyType: string; } export interface OptionContract { putCall: PutCallEnum; symbol: string; description: string; exchangeName: string; bidPrice: number; askPrice: number; lastPrice: number; markPrice: number; bidSize: number; askSize: number; lastSize: number; highPrice: number; lowPrice: number; openPrice: number; closePrice: number; totalVolume: number; tradeDate: number; quoteTimeInLong: number; tradeTimeInLong: number; netChange: number; volatility: number; delta: number; gamma: number; theta: number; vega: number; rho: number; timeValue: number; openInterest: number; isInTheMoney: boolean; theoreticalOptionValue: number; theoreticalVolatility: number; isMini: boolean; isNonStandard: boolean; optionDeliverablesList: OptionDeliverables[]; strikePrice: number; expirationDate: string; daysToExpiration: number; expirationType: OptionExpirationType; lastTradingDay: number; multiplier: number; settlementType: OptionSettlementTypeEnum; deliverableNote: string; isIndexOption: boolean; percentChange: number; markChange: number; markPercentChange: number; isPennyPilot: boolean; intrinsicValue: number; optionRoot: string; } export interface Underlying { ask: number; askSize: number; bid: number; bidSize: number; change: number; close: number; delayed: boolean; description: string; exchangeName: ExchangeName; fiftyTwoWeekHigh: number; fiftyTwoWeekLow: number; highPrice: number; last: number; lowPrice: number; mark: number; markChange: number; markPercentChange: number; openPrice: number; percentChange: number; quoteTime: number; symbol: string; totalVolume: number; tradeTime: number; } export interface OptionContractMap { [key: string]: OptionContract; } export interface OptionChain { symbol: string; status: string; underlying?: Underlying; strategy: OptionStrategyEnum; interval: number; isDelayed: boolean; isIndex: boolean; daysToExpiration: number; interestRate: number; underlyingPrice: number; volatility: number; callExpDateMap: Record<string, OptionContractMap>; putExpDateMap: Record<string, OptionContractMap>; } export interface ErrorSource { pointer?: string[]; parameter?: string; header?: string; } export interface BaseQuoteResponse<Quote, Reference> { assetMainType: AssetMainTypeEnum; ssid: number; symbol: string; realtime: boolean; quote: Quote; reference: Reference; } export interface EquityResponse extends BaseQuoteResponse<QuoteEquity, ReferenceEquity> { assetSubType?: EquityAssetSubTypeEnum; quoteType?: QuoteTypeEnum; extended?: ExtendedMarketQuoteInformation; fundamental?: Fundamental; regular?: RegularMarketQuoteInformation; } export type OptionResponse = BaseQuoteResponse<QuoteOption, ReferenceOption>; export type ForexResponse = BaseQuoteResponse<QuoteForex, ReferenceForex>; export type FutureResponse = BaseQuoteResponse<QuoteFuture, ReferenceFuture>; export type FutureOptionResponse = BaseQuoteResponse<QuoteFutureOption, ReferenceFutureOption>; export type IndexResponse = BaseQuoteResponse<QuoteIndex, ReferenceIndex>; export type MutualFundResponse = BaseQuoteResponse<QuoteMutualFund, ReferenceMutualFund>; export interface QuoteError { invalidCusips?: string[]; invalidSSIDs?: number[]; invalidSymbols?: string[]; } export type QuoteResponseObject = EquityResponse | OptionResponse | ForexResponse | FutureResponse | FutureOptionResponse | IndexResponse | MutualFundResponse | QuoteError; export type QuoteResponse = Record<string, QuoteResponseObject>; export interface QuoteRequest { /** * Request one or more quote data in POST body */ cusips?: string[]; /** * Comma-separated list of nodes in each quote. * Possible values are quote, fundamental, reference, extended, regular. * Don't send this attribute for full response. */ fields?: string; /** * List of Schwab security IDs (SSID), max of 500 of symbols+cusip+ssids. */ ssids?: number[]; /** * List of symbols, max of 500 of symbols+cusip+ssids. */ symbols?: string[]; /** * Get realtime quotes and skip entitlement check. */ realtime?: boolean; /** * Include indicative symbol quotes for all ETF symbols in request. * If ETF symbol ABC is in request and indicative=true, API will return quotes for ABC and its corresponding indicative quote for $ABC.IV. */ indicative?: boolean; } export interface RegularMarketQuoteInformation { regularMarketLastPrice: number; regularMarketLastSize: number; regularMarketNetChange: number; regularMarketPercentChange: number; regularMarketTradeTime: number; } export interface ExtendedMarketQuoteInformation { askPrice?: number; askSize?: number; bidPrice?: number; bidSize?: number; lastPrice?: number; lastSize?: number; mark?: number; quoteTime?: number; totalVolume?: number; tradeTime?: number; } export interface QuoteBase { '52WeekHigh'?: number; '52WeekLow'?: number; askPrice?: number; bidPrice?: number; askSize?: number; bidSize?: number; highPrice?: number; lowPrice?: number; openPrice?: number; closePrice?: number; lastPrice?: number; netChange?: number; netPercentChange?: number; totalVolume?: number; tradeTime?: number; quoteTime?: number; securityStatus?: string; } export interface QuoteForex extends QuoteBase { lastSize?: number; mark?: number; tick?: number; tickAmount?: number; } export interface QuoteEquity extends QuoteBase { askMICId?: string; askTime?: number; bidMICId?: string; bidTime?: number; lastMICId?: string; lastSize?: number; volatility?: number; } export interface QuoteOption extends QuoteBase { delta?: number; gamma?: number; impliedYield?: number; indAskPrice?: number; indBidPrice?: number; indQuoteTime?: number; moneyIntrinsicValue?: number; openInterest?: number; rho?: number; theoreticalOptionValue?: number; theta?: number; timeValue?: number; underlyingPrice?: number; vega?: number; volatility?: number; intrinsicValue?: number; percentChange?: number; mark?: number; markChange?: number; markPercentChange?: number; } export interface QuoteMutualFund extends QuoteBase { nAV?: number; divYield?: number; } export type QuoteIndex = QuoteBase; export interface QuoteFutureOption extends QuoteBase { askMICId?: string; bidMICId?: string; lastMICId?: string; settlementPrice?: number; tick?: number; tickAmount?: number; } export interface QuoteFuture extends QuoteBase { askMICId?: string; askTime?: number; bidMICId?: string; bidTime?: number; futurePercentChange?: number; quotedInSession?: boolean; settleTime?: number; } export interface ReferenceOption { contractType: PutCallEnum; cusip: string; daysToExpiration: number; deliverables: string; exchange: string; exchangeName: string; exerciseType: OptionExerciseTypeEnum; expirationDay: number; expirationMonth: number; expirationType: OptionExpirationType; expirationYear: number; isPennyPilot: boolean; lastTradingDay: number; multiplier: number; settlementType: OptionSettlementTypeEnum; strikePrice: number; underlying: string; } export interface Fundamental { avg10DaysVolume: number; avg1YearVolume: number; declarationDate: string; divAmount: number; divExDate: string; divFreq: DividendFrequency | null; divPayAmount: number; divPayDate: string; divYield: number; eps: number; fundLeverageFactor: number; fundStrategy: FundStrategyEnum | null; nextDivExDate: string; nextDivPayDate: string; peRatio: number; } export interface Bond { cusip: string; symbol: string; description: string; exchange: string; assetType: AssetMainTypeEnum; bondFactor: string; bondMultiplier: string; bondPrice: number; type: AssetMainTypeEnum; } export interface FundamentalInst { symbol: string; high52: number; low52: number; pegRatio: number; pbRatio: number; prRatio: number; pcfRatio: number; grossMarginTTM: number; grossMarginMRQ: number; netProfitMarginTTM: number; netProfitMarginMRQ: number; operatingMarginTTM: number; operatingMarginMRQ: number; returnOnEquity: number; returnOnAssets: number; returnOnInvestment: number; quickRatio: number; currentRatio: number; interestCoverage: number; totalDebtToCapital: number; ltDebtToEquity: number; totalDebtToEquity: number; epsChangePercentTTM: number; epsChangeYear: number; epsChange: number; revChangeYear: number; revChangeTTM: number; revChangeIn: number; sharesOutstanding: number; marketCapFloat: number; marketCap: number; bookValuePerShare: number; shortIntToFloat: number; shortIntDayToCover: number; divGrowthRate3Year: number; beta: number; vol1DayAvg: number; vol10DayAvg: number; vol3MonthAvg: number; avg1DayVolume: number; avg3MonthVolume: number; corpactionDate: string; dtnVolume: number; } export interface Instrument { cusip: string; symbol: string; description: string; exchange: string; assetType: AssetMainTypeEnum; type: AssetMainTypeEnum; } export interface InstrumentResponse extends Instrument { bondFactor?: string; bondMultiplier?: string; bondPrice?: number; fundamental?: FundamentalInst; bondInstrumentInfo?: Bond; } //# sourceMappingURL=dataapi.types.d.ts.map