client-twelve-rapid
Version:
Complete TypeScript library for Twelve Data API with 154 endpoints, technical indicators, and intelligent rate limiting
1,058 lines (1,057 loc) • 27.7 kB
TypeScript
export interface TwelveDataConfig {
apiKey: string;
baseUrl?: string;
rateLimit?: number;
}
export interface ApiResponse<T = any> {
data?: T;
status?: string;
message?: string;
error?: string;
}
export type ResponseFormat = 'json' | 'csv';
export type Interval = '1min' | '5min' | '15min' | '30min' | '45min' | '1h' | '2h' | '4h' | '1day' | '1week' | '1month';
export interface StocksListParams {
country?: string;
exchange?: string;
symbol?: string;
format?: ResponseFormat;
type?: string;
}
export interface ForexPairsListParams {
currency_base?: string;
symbol?: string;
format?: ResponseFormat;
currency_quote?: string;
}
export interface CryptocurrenciesListParams {
exchange?: string;
currency_base?: string;
currency_quote?: string;
symbol?: string;
format?: ResponseFormat;
}
export interface ETFsListParams {
symbol?: string;
format?: ResponseFormat;
}
export interface ExchangesParams {
type?: string;
name?: string;
format?: ResponseFormat;
}
export interface CryptoExchangesParams {
format?: ResponseFormat;
}
export interface TechnicalIndicatorsInterfaceParams {
format?: ResponseFormat;
}
export interface SymbolSearchParams {
symbol: string;
outputsize?: number;
format?: ResponseFormat;
}
export interface EarliestTimestampParams {
symbol: string;
interval: Interval;
format?: ResponseFormat;
}
export interface TimeSeriesParams {
symbol: string;
interval: Interval;
outputsize?: number;
format?: ResponseFormat;
start_date?: string;
end_date?: string;
timezone?: string;
date?: string;
order?: 'asc' | 'desc';
}
export interface ExchangeRateParams {
symbol: string;
format?: ResponseFormat;
date?: string;
}
export interface CurrencyConversionParams {
symbol: string;
amount: number;
format?: ResponseFormat;
date?: string;
}
export interface QuoteParams {
symbol: string;
interval?: Interval;
format?: ResponseFormat;
outputsize?: number;
timezone?: string;
}
export interface RealTimePriceParams {
symbol: string;
format?: ResponseFormat;
}
export interface MarketMoversParams {
country?: string;
format?: ResponseFormat;
}
export interface MutualFundsListParams {
country?: string;
fund_family?: string;
fund_type?: string;
performance_rating?: string;
risk_rating?: string;
format?: ResponseFormat;
outputsize?: number;
}
export interface MutualFundsTypeListParams {
format?: ResponseFormat;
}
export interface MutualFundsFamilyListParams {
country?: string;
format?: ResponseFormat;
}
export interface MutualFundsMarketMoversParams {
country?: string;
format?: ResponseFormat;
}
export interface MutualFundsAllDataParams {
symbol: string;
format?: ResponseFormat;
}
export interface MutualFundsSummaryParams {
symbol: string;
format?: ResponseFormat;
}
export interface MutualFundsPerformanceParams {
symbol: string;
format?: ResponseFormat;
}
export interface MutualFundsRiskParams {
symbol: string;
format?: ResponseFormat;
}
export interface MutualFundsRatingsParams {
symbol: string;
format?: ResponseFormat;
}
export interface MutualFundsCompositionParams {
symbol: string;
format?: ResponseFormat;
}
export interface MutualFundsPurchaseInfoParams {
symbol: string;
format?: ResponseFormat;
}
export interface MutualFundsSustainabilityParams {
symbol: string;
format?: ResponseFormat;
}
export interface LogoParams {
symbol: string;
format?: ResponseFormat;
}
export interface ProfileParams {
symbol: string;
format?: ResponseFormat;
}
export interface DividendsParams {
symbol: string;
format?: ResponseFormat;
start_date?: string;
end_date?: string;
outputsize?: number;
}
export interface SplitsParams {
symbol: string;
format?: ResponseFormat;
start_date?: string;
end_date?: string;
outputsize?: number;
}
export interface EarningsParams {
symbol: string;
format?: ResponseFormat;
period?: 'annual' | 'quarterly';
outputsize?: number;
}
export interface EarningsCalendarParams {
exchange?: string;
country?: string;
format?: ResponseFormat;
start_date?: string;
end_date?: string;
}
export interface IPOCalendarParams {
exchange?: string;
country?: string;
format?: ResponseFormat;
start_date?: string;
end_date?: string;
}
export interface StatisticsParams {
symbol: string;
format?: ResponseFormat;
}
export interface InsiderTransactionsParams {
symbol: string;
format?: ResponseFormat;
outputsize?: number;
}
export interface IncomeStatementParams {
symbol: string;
format?: ResponseFormat;
period?: 'annual' | 'quarterly';
outputsize?: number;
}
export interface BalanceSheetParams {
symbol: string;
format?: ResponseFormat;
period?: 'annual' | 'quarterly';
outputsize?: number;
}
export interface CashFlowParams {
symbol: string;
format?: ResponseFormat;
period?: 'annual' | 'quarterly';
outputsize?: number;
}
export interface OptionsExpirationParams {
symbol: string;
format?: ResponseFormat;
}
export interface OptionsChainParams {
symbol: string;
format?: ResponseFormat;
expiration_date?: string;
option_type?: 'call' | 'put';
side?: 'in_the_money' | 'out_of_the_money' | 'near_the_money';
}
export interface KeyExecutivesParams {
symbol: string;
format?: ResponseFormat;
}
export interface FundHoldersParams {
symbol: string;
format?: ResponseFormat;
outputsize?: number;
}
export interface InstitutionalHoldersParams {
symbol: string;
format?: ResponseFormat;
outputsize?: number;
}
export interface EarningsEstimateParams {
symbol: string;
format?: ResponseFormat;
period?: 'annual' | 'quarterly';
}
export interface RevenueEstimateParams {
symbol: string;
format?: ResponseFormat;
period?: 'annual' | 'quarterly';
}
export interface EPSTrendParams {
symbol: string;
format?: ResponseFormat;
}
export interface EPSRevisionsParams {
symbol: string;
format?: ResponseFormat;
}
export interface GrowthEstimatesParams {
symbol: string;
format?: ResponseFormat;
}
export interface RecommendationsParams {
symbol: string;
format?: ResponseFormat;
}
export interface PriceTargetParams {
symbol: string;
format?: ResponseFormat;
}
export interface AnalystRatingsLightParams {
symbol: string;
format?: ResponseFormat;
}
export interface AnalystRatingsUSEquitiesParams {
symbol: string;
format?: ResponseFormat;
}
export interface TechnicalIndicatorParams {
symbol: string;
interval: Interval;
format?: ResponseFormat;
outputsize?: number;
time_period?: number;
series_type?: 'close' | 'open' | 'high' | 'low';
ma_type?: number;
fastperiod?: number;
slowperiod?: number;
signalperiod?: number;
fastmatype?: number;
slowmatype?: number;
signalmatype?: number;
nbdevup?: number;
nbdevdn?: number;
acceleration?: number;
maximum?: number;
}
export interface StockData {
symbol: string;
name: string;
currency: string;
exchange: string;
mic_code: string;
country: string;
type: string;
}
export interface ForexPairData {
symbol: string;
currency_group: string;
currency_base: string;
currency_quote: string;
}
export interface CryptocurrencyData {
symbol: string;
available_exchanges: string[];
currency_base: string;
currency_quote: string;
}
export interface TimeSeriesData {
meta: {
symbol: string;
interval: string;
currency: string;
exchange_timezone: string;
exchange: string;
mic_code: string;
type: string;
};
values: Array<{
datetime: string;
open: string;
high: string;
low: string;
close: string;
volume: string;
}>;
status: string;
}
export interface QuoteData {
symbol: string;
name: string;
exchange: string;
mic_code: string;
currency: string;
datetime: string;
timestamp: number;
open: string;
high: string;
low: string;
close: string;
volume: string;
previous_close: string;
change: string;
percent_change: string;
average_volume: string;
is_market_open: boolean;
fifty_two_week: {
low: string;
high: string;
low_change: string;
high_change: string;
low_change_percent: string;
high_change_percent: string;
range: string;
};
}
export interface ExchangeRateData {
symbol: string;
rate: number;
timestamp: number;
}
export interface RealTimePriceData {
symbol: string;
name: string;
price: number;
change: number;
percent_change: number;
}
export interface MutualFundData {
symbol: string;
name: string;
fund_family: string;
fund_type: string;
currency: string;
exchange: string;
country: string;
performance_rating?: string;
risk_rating?: string;
expense_ratio?: number;
net_assets?: number;
inception_date?: string;
}
export interface MutualFundTypeData {
type: string;
description: string;
count: number;
}
export interface MutualFundFamilyData {
family: string;
country: string;
funds_count: number;
total_assets?: number;
}
export interface MutualFundMarketMoverData {
symbol: string;
name: string;
change: number;
percent_change: number;
price: number;
volume?: number;
}
export interface MutualFundAllData {
meta: {
symbol: string;
name: string;
fund_family: string;
fund_type: string;
currency: string;
exchange: string;
country: string;
};
summary: MutualFundSummaryData;
performance: MutualFundPerformanceData;
risk: MutualFundRiskData;
ratings: MutualFundRatingsData;
composition: MutualFundCompositionData;
purchase_info: MutualFundPurchaseInfoData;
sustainability: MutualFundSustainabilityData;
}
export interface MutualFundSummaryData {
symbol: string;
name: string;
fund_family: string;
fund_type: string;
objective: string;
inception_date: string;
expense_ratio: number;
net_assets: number;
nav: number;
nav_change: number;
nav_change_percent: number;
yield: number;
ytd_return: number;
beta: number;
alpha: number;
mean_annual_return: number;
risk_rating: string;
sustainability_rating: string;
}
export interface MutualFundPerformanceData {
symbol: string;
returns: {
'1d': number;
'5d': number;
'1m': number;
'3m': number;
'6m': number;
'1y': number;
'3y': number;
'5y': number;
'10y': number;
ytd: number;
inception: number;
};
annual_returns: Array<{
year: number;
return: number;
}>;
quarterly_returns: Array<{
quarter: string;
return: number;
}>;
benchmark_comparison: {
benchmark_name: string;
fund_return: number;
benchmark_return: number;
excess_return: number;
};
}
export interface MutualFundRiskData {
symbol: string;
risk_metrics: {
standard_deviation: number;
beta: number;
alpha: number;
r_squared: number;
sharpe_ratio: number;
treynor_ratio: number;
information_ratio: number;
maximum_drawdown: number;
downside_deviation: number;
sortino_ratio: number;
};
risk_rating: string;
risk_level: 'Low' | 'Below Average' | 'Average' | 'Above Average' | 'High';
volatility_measures: {
price_volatility: number;
category_volatility: number;
benchmark_volatility: number;
};
}
export interface MutualFundRatingsData {
symbol: string;
overall_rating: number;
risk_rating: number;
return_rating: number;
sustainability_rating: number;
analyst_rating: string;
morningstar_rating: number;
lipper_rating: number;
rating_date: string;
peer_group: string;
percentile_rank: number;
}
export interface MutualFundCompositionData {
symbol: string;
top_holdings: Array<{
symbol: string;
name: string;
weight: number;
shares: number;
market_value: number;
}>;
sector_allocation: Array<{
sector: string;
weight: number;
}>;
asset_allocation: Array<{
asset_class: string;
weight: number;
}>;
geographic_allocation: Array<{
region: string;
weight: number;
}>;
market_cap_allocation: {
large_cap: number;
mid_cap: number;
small_cap: number;
micro_cap: number;
};
style_allocation: {
value: number;
blend: number;
growth: number;
};
}
export interface MutualFundPurchaseInfoData {
symbol: string;
minimum_investment: {
initial: number;
additional: number;
ira_initial: number;
ira_additional: number;
};
fees: {
front_load: number;
deferred_load: number;
expense_ratio: number;
management_fee: number;
'12b1_fee': number;
redemption_fee: number;
exchange_fee: number;
};
purchase_constraints: {
available_for_purchase: boolean;
available_for_ira: boolean;
available_for_401k: boolean;
closed_to_new_investors: boolean;
};
distribution_schedule: {
dividend_frequency: string;
capital_gains_frequency: string;
last_dividend_date: string;
last_capital_gains_date: string;
};
}
export interface MutualFundSustainabilityData {
symbol: string;
sustainability_rating: number;
esg_score: number;
environmental_score: number;
social_score: number;
governance_score: number;
controversy_score: number;
sustainable_investment: boolean;
carbon_intensity: number;
fossil_fuel_involvement: number;
esg_quality_score: number;
peer_group: string;
peer_count: number;
percentile_rank: number;
last_updated: string;
}
export interface LogoData {
symbol: string;
url: string;
}
export interface ProfileData {
symbol: string;
name: string;
exchange: string;
currency: string;
country: string;
sector: string;
industry: string;
address: string;
full_time_employees: number;
fiscal_year_end: string;
latest_quarter: string;
market_capitalization: number;
ebitda: number;
pe_ratio: number;
peg_ratio: number;
book_value: number;
dividend_per_share: number;
dividend_yield: number;
eps: number;
revenue_per_share_ttm: number;
profit_margin: number;
operating_margin_ttm: number;
return_on_assets_ttm: number;
return_on_equity_ttm: number;
revenue_ttm: number;
gross_profit_ttm: number;
diluted_eps_ttm: number;
quarterly_earnings_growth_yoy: number;
quarterly_revenue_growth_yoy: number;
analyst_target_price: number;
trailing_pe: number;
forward_pe: number;
price_to_sales_ratio_ttm: number;
price_to_book_ratio: number;
ev_to_revenue: number;
ev_to_ebitda: number;
beta: number;
week_52_high: number;
week_52_low: number;
day_50_moving_average: number;
day_200_moving_average: number;
shares_outstanding: number;
shares_float: number;
shares_short: number;
shares_short_prior_month: number;
short_ratio: number;
short_percent_outstanding: number;
short_percent_float: number;
percent_insiders: number;
percent_institutions: number;
forward_annual_dividend_rate: number;
forward_annual_dividend_yield: number;
payout_ratio: number;
dividend_date: string;
ex_dividend_date: string;
last_split_factor: string;
last_split_date: string;
description: string;
website: string;
logo_url: string;
}
export interface DividendData {
symbol: string;
ex_date: string;
dividend: number;
}
export interface SplitData {
symbol: string;
date: string;
ratio: string;
from_factor: number;
to_factor: number;
}
export interface EarningsData {
symbol: string;
fiscal_date_ending: string;
reported_date: string;
reported_eps: number;
estimated_eps: number;
surprise: number;
surprise_percentage: number;
}
export interface EarningsCalendarData {
symbol: string;
name: string;
exchange: string;
currency: string;
earnings_date: string;
eps_estimate: number;
eps_actual?: number;
revenue_estimate: number;
revenue_actual?: number;
}
export interface IPOCalendarData {
symbol: string;
name: string;
exchange: string;
currency: string;
ipo_date: string;
price_range_low: number;
price_range_high: number;
shares_offered: number;
expected_to_trade: string;
}
export interface StatisticsData {
symbol: string;
valuation_metrics: {
market_capitalization: number;
enterprise_value: number;
trailing_pe: number;
forward_pe: number;
peg_ratio: number;
price_to_sales_ttm: number;
price_to_book: number;
ev_to_revenue: number;
ev_to_ebitda: number;
};
financial_highlights: {
fiscal_year_ends: string;
most_recent_quarter: string;
profit_margin: number;
operating_margin: number;
return_on_assets: number;
return_on_equity: number;
revenue_ttm: number;
revenue_per_share_ttm: number;
quarterly_revenue_growth: number;
gross_profit_ttm: number;
ebitda: number;
net_income_avi_to_common_ttm: number;
diluted_eps_ttm: number;
quarterly_earnings_growth: number;
};
trading_information: {
beta: number;
week_52_change: number;
week_52_high: number;
week_52_low: number;
day_50_moving_average: number;
day_200_moving_average: number;
avg_vol_3_month: number;
avg_vol_10_day: number;
shares_outstanding: number;
float: number;
percent_held_by_insiders: number;
percent_held_by_institutions: number;
shares_short: number;
short_ratio: number;
short_percent_of_float: number;
short_percent_of_shares_outstanding: number;
shares_short_prior_month: number;
};
dividend_and_splits: {
forward_annual_dividend_rate: number;
forward_annual_dividend_yield: number;
trailing_annual_dividend_rate: number;
trailing_annual_dividend_yield: number;
average_dividend_yield_5_year: number;
payout_ratio: number;
dividend_date: string;
ex_dividend_date: string;
last_split_factor: string;
last_split_date: string;
};
}
export interface InsiderTransactionData {
symbol: string;
insider_name: string;
relation: string;
last_date: string;
transaction_type: string;
owner_type: string;
shares_traded: number;
last_price: number;
shares_held: number;
}
export interface IncomeStatementData {
symbol: string;
fiscal_date_ending: string;
reported_currency: string;
total_revenue: number;
total_operating_expense: number;
cost_of_revenue: number;
gross_profit: number;
ebit: number;
net_income: number;
research_development: number;
effect_of_accounting_charges: number;
income_before_tax: number;
minority_interest: number;
net_income_from_continuing_ops: number;
non_recurring: number;
other_items: number;
income_tax_expense: number;
total_other_income_expense_net: number;
discontinued_operations: number;
net_income_applicable_to_common_shares: number;
}
export interface BalanceSheetData {
symbol: string;
fiscal_date_ending: string;
reported_currency: string;
total_assets: number;
total_current_assets: number;
cash_and_cash_equivalents_at_carrying_value: number;
cash_and_short_term_investments: number;
inventory: number;
current_net_receivables: number;
total_non_current_assets: number;
property_plant_equipment: number;
accumulated_depreciation_amortization_ppe: number;
intangible_assets: number;
intangible_assets_excluding_goodwill: number;
goodwill: number;
investments: number;
long_term_investments: number;
short_term_investments: number;
other_current_assets: number;
other_non_current_assets: number;
total_liabilities: number;
total_current_liabilities: number;
current_accounts_payable: number;
deferred_revenue: number;
current_debt: number;
short_term_debt: number;
total_non_current_liabilities: number;
capital_lease_obligations: number;
long_term_debt: number;
current_long_term_debt: number;
long_term_debt_noncurrent: number;
short_long_term_debt_total: number;
other_current_liabilities: number;
other_non_current_liabilities: number;
total_shareholder_equity: number;
treasury_stock: number;
retained_earnings: number;
common_stock: number;
common_stock_shares_outstanding: number;
}
export interface CashFlowData {
symbol: string;
fiscal_date_ending: string;
reported_currency: string;
operating_cashflow: number;
payments_for_operating_activities: number;
proceeds_from_operating_activities: number;
change_in_operating_liabilities: number;
change_in_operating_assets: number;
depreciation_depletion_amortization: number;
capital_expenditures: number;
change_in_receivables: number;
change_in_inventory: number;
profit_loss: number;
cashflow_from_investment: number;
cashflow_from_financing: number;
proceeds_from_repayments_of_short_term_debt: number;
payments_for_repurchase_of_common_stock: number;
payments_for_repurchase_of_equity: number;
payments_for_repurchase_of_preferred_stock: number;
dividend_payout: number;
dividend_payout_common_stock: number;
dividend_payout_preferred_stock: number;
proceeds_from_issuance_of_common_stock: number;
proceeds_from_issuance_of_long_term_debt_and_capital_securities_net: number;
proceeds_from_issuance_of_preferred_stock: number;
proceeds_from_repurchase_of_equity: number;
proceeds_from_sale_of_treasury_stock: number;
change_in_cash_and_cash_equivalents: number;
change_in_exchange_rate: number;
net_income: number;
}
export interface OptionsExpirationData {
symbol: string;
expiration_dates: string[];
}
export interface OptionsChainData {
symbol: string;
expiration_date: string;
calls: Array<{
contract_name: string;
strike: number;
currency: string;
last_price: number;
change: number;
percent_change: number;
volume: number;
open_interest: number;
bid: number;
ask: number;
contract_size: string;
last_trade_date: string;
implied_volatility: number;
in_the_money: boolean;
}>;
puts: Array<{
contract_name: string;
strike: number;
currency: string;
last_price: number;
change: number;
percent_change: number;
volume: number;
open_interest: number;
bid: number;
ask: number;
contract_size: string;
last_trade_date: string;
implied_volatility: number;
in_the_money: boolean;
}>;
}
export interface KeyExecutiveData {
symbol: string;
executives: Array<{
name: string;
title: string;
pay: number;
exercised: number;
year_born: number;
}>;
}
export interface FundHolderData {
symbol: string;
fund_name: string;
holder: string;
shares: number;
date_reported: string;
percent_out: number;
value: number;
}
export interface InstitutionalHolderData {
symbol: string;
holder: string;
shares: number;
date_reported: string;
percent_out: number;
value: number;
}
export interface EarningsEstimateData {
symbol: string;
period: string;
growth: number;
earnings_estimate_avg: number;
earnings_estimate_low: number;
earnings_estimate_high: number;
earnings_estimate_year_ago_eps: number;
earnings_estimate_number_of_analysts: number;
earnings_estimate_growth: number;
revenue_estimate_avg: number;
revenue_estimate_low: number;
revenue_estimate_high: number;
revenue_estimate_number_of_analysts: number;
revenue_estimate_year_ago_sales: number;
revenue_estimate_growth: number;
eps_trend_current: number;
eps_trend_7_days_ago: number;
eps_trend_30_days_ago: number;
eps_trend_60_days_ago: number;
eps_trend_90_days_ago: number;
eps_revisions_up_last_7_days: number;
eps_revisions_up_last_30_days: number;
eps_revisions_down_last_7_days: number;
eps_revisions_down_last_30_days: number;
}
export interface RevenueEstimateData {
symbol: string;
period: string;
growth: number;
revenue_estimate_avg: number;
revenue_estimate_low: number;
revenue_estimate_high: number;
revenue_estimate_number_of_analysts: number;
revenue_estimate_year_ago_sales: number;
revenue_estimate_growth: number;
}
export interface EPSTrendData {
symbol: string;
current_quarter: {
date: string;
estimate: number;
};
next_quarter: {
date: string;
estimate: number;
};
current_year: {
date: string;
estimate: number;
};
next_year: {
date: string;
estimate: number;
};
}
export interface EPSRevisionsData {
symbol: string;
revisions_up_last_7_days: number;
revisions_down_last_7_days: number;
revisions_up_last_30_days: number;
revisions_down_last_30_days: number;
revisions_up_last_60_days: number;
revisions_down_last_60_days: number;
revisions_up_last_90_days: number;
revisions_down_last_90_days: number;
}
export interface GrowthEstimatesData {
symbol: string;
current_quarter: number;
next_quarter: number;
current_year: number;
next_year: number;
next_5_years: number;
past_5_years: number;
peg_ratio: number;
price_earnings_to_growth_ratio: number;
}
export interface RecommendationData {
symbol: string;
period: string;
strong_buy: number;
buy: number;
hold: number;
sell: number;
strong_sell: number;
mean_recommendation: number;
}
export interface PriceTargetData {
symbol: string;
last_updated: string;
analyst_count: number;
mean_target: number;
median_target: number;
high_target: number;
low_target: number;
standard_deviation: number;
current_price: number;
currency: string;
}
export interface AnalystRatingData {
symbol: string;
exchange: string;
mic_code: string;
country: string;
analyst_ratings_summary: {
rating: string;
rating_score: number;
rating_recommendation: string;
rating_nb_analysts: number;
};
analyst_ratings_details: Array<{
analyst_name: string;
analyst_rating: string;
analyst_rating_score: number;
analyst_rating_recommendation: string;
analyst_rating_date: string;
}>;
}