@yash101/schwab-api-client
Version:
A TypeScript client library for interacting with the Charles Schwab Brokerage APIs.
959 lines • 30 kB
TypeScript
/**
* 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