The stock market API designed for agents.

We serve real-time and historical market data as one queryable table. You and your agents can ask it anything, without building anything custom.

Read the docs →

Free plan: 10,000 calls a month, no card required.

Live10M+ calls served

The market was always a table. We serve it as one.

Every ticker is a row. Every data point is a column. 23,000+ tickers, covering US stocks and ETFs, FX, crypto, rates and metals. 452+ columns, covering raw data, what’s calculated from it, and the conditions on top.

PriceVolumePrice actionTechnicalsFundamentalsEventsProfileAnalyst ratingsNews
tickerpricemin_closemin_highmin_lowmin_openprev_day_highprev_day_lowprev_day_openprevious_closeprice_asofprice_sourceabove_premarket_highabove_session_openabove_yesterday_closeabove_yesterday_highafterhours_priceat_session_highat_session_lowbelow_premarket_lowbelow_yesterday_lowpremarket_pricesession_highsession_lowsession_opentested_session_high_recenttested_session_low_recent52_week_high52_week_lowapproaching_52w_highapproaching_52w_lowat_20d_highat_20d_lowat_52w_highat_52w_lowdays_since_52w_highdays_since_52w_lowfrom_52w_high_pctfrom_52w_low_pcthigh_20dhigh_20d_eodhigh_52whigh_52w_datehigh_52w_eodhigh_5dhigh_5d_eodlast_20d_high_datelast_20d_low_datelow_20dlow_20d_eodlow_52wlow_52w_datelow_52w_eodlow_5dlow_5d_eodposition_in_52w_range_pctat_resistanceat_supportbounce_off_supportavg_volume_10davg_volume_30dday_dollar_volumemin_day_accumulated_dollar_volumemin_day_accumulated_volumemin_dollar_volumemin_trade_countmin_volumeprev_day_volumevolume_todayhigh_volume_alertilliquidlow_volume_regimequiet_minuterelative_volumevolume_burst_3xvolume_burst_5xvolume_change_vs_avgvolume_trend_5dafterhours_change_pctchange_1d_pctchange_1m_pctchange_1w_pctchange_1y_pctchange_3m_pctchange_6m_pctchange_ytd_pctday_changedays_downdays_upfrom_open_pctpremarket_change_pctprice_down_3pctprice_up_3pcttop_gainertop_losergap_downgap_down_extremegap_filled_todaygap_pctgap_upgap_up_extremeafternoon_drift_uplast_hour_rallylast_hour_selloffmicrospike_downmicrospike_upmomentum_downmomentum_exhaustion_downmomentum_exhaustion_upmomentum_strong_downmomentum_strong_upmomentum_upmorning_strengthopening_drive_downopening_drive_uppre_close_drift_downpre_close_drift_uppre_earnings_driftrapid_move_down_5mrapid_move_up_5mthree_down_hoursthree_up_hoursabove_opening_rangebelow_opening_rangeconsolidating_15mconsolidationexpanded_hourly_rangehourly_reversal_bearishhourly_reversal_bullishin_opening_rangenarrow_hourly_rangepullbackrange_break_15m_downrange_break_15m_uprange_expansionrepeated_test_of_highrepeated_test_of_lowsticky_breakoutabove_sma_10above_sma_20above_sma_200above_sma_50above_vwapabove_vwap_minuteday_vwapdeath_crossdeath_regimeema_12ema_21ema_26ema_9from_sma_10_pctfrom_sma_100_pctfrom_sma_20_pctfrom_sma_200_pctfrom_sma_50_pctfrom_vwap_pctgolden_crossgolden_regimeheld_above_vwap_30mheld_below_vwap_30mmin_vwapprev_day_vwapsma_10sma_10_crossed_above_50_todaysma_10_crossed_below_50_todaysma_100sma_20sma_200sma_50vwapvwap_cross_downvwap_cross_uprsi_14rsi_7rsi_overboughtrsi_oversoldstochastic_dstochastic_kadx_14in_downtrendin_uptrendmacd_above_signalmacd_below_signalmacd_histogrammacd_linemacd_signalminus_diplus_ditrend_longtrend_mediumtrend_reversal_bearish_todaytrend_reversal_bullish_todaytrend_shortat_bollinger_lowerat_bollinger_upperatr_14atr_pctbollinger_bbollinger_lowerbollinger_middlebollinger_squeezebollinger_upperbollinger_widthvwap_lower_bandvwap_upper_bandbasic_earnings_per_sharecost_of_revenuecosts_and_expensesdiluted_eps_ttmearnings_growth_yoy_pctebitdaepseps_diluted_fyfy_period_endgross_profitgross_profit_ttmincome_loss_from_continuing_operations_after_taxincome_loss_from_continuing_operations_before_taxincome_tax_expense_benefitnet_income_fynet_income_lossnet_income_loss_attributable_to_noncontrolling_interestnet_income_loss_attributable_to_parentnet_income_loss_available_to_common_stockholders_basicnonoperating_income_lossoperating_expensesoperating_income_lossresearch_and_developmentrevenue_by_geographyrevenue_by_productrevenue_by_segmentrevenue_fyrevenue_growth_yoy_pctrevenue_growth_yoy_quarterly_pctrevenue_per_share_ttmrevenue_ttmrevenuesselling_general_and_administrative_expensesaccounts_payableassetsbook_valuecash_and_short_term_investmentscash_on_handcurrent_assetscurrent_liabilitiesequityequity_attributable_to_noncontrolling_interestequity_attributable_to_parentfixed_assetsinventoryliabilitiesliabilities_and_equitylong_term_debtnoncurrent_assetsnoncurrent_liabilitiesother_current_assetsother_current_liabilitiesother_noncurrent_assetstotal_debtfree_cash_flownet_cash_flownet_cash_flow_continuingnet_cash_flow_from_financing_activitiesnet_cash_flow_from_financing_activities_continuingnet_cash_flow_from_investing_activitiesnet_cash_flow_from_investing_activities_continuingnet_cash_flow_from_operating_activitiesnet_cash_flow_from_operating_activities_continuingcash_ratiocurrent_ratiodebt_to_equitygross_marginhigh_marginoperating_marginoperating_margin_ttmprofit_marginprofit_margin_ttmprofitablequick_ratioreturn_on_assetsreturn_on_assets_ttmreturn_on_equityreturn_on_equity_ttmbetacap_classdividend_yieldenterprise_valueev_to_ebitdaev_to_salesforward_pehigh_betahigh_dividend_yieldlarge_caplow_betamarket_capmega_capmicro_capmid_capnano_cappe_ratiopeg_ratioprice_to_bookprice_to_cash_flowprice_to_free_cash_flowprice_to_salesratios_asofsmall_capvalue_stockbasic_average_sharesdiluted_average_sharesetf_holdersfloat_sharesfree_float_pctinsiders_pctinstitutions_pctlow_floatshares_outstandingultra_low_floatweighted_shares_outstandingdays_to_coverhigh_short_interestshort_float_pctshort_interestshort_interest_settlement_dateshort_volume_ratioshort_volume_spikedays_to_earningsearnings_approachingearnings_beat_streakearnings_dateearnings_date_projectedearnings_fiscal_quarterearnings_next_weekearnings_publishedearnings_report_timeearnings_this_weekearnings_todayearnings_tomorrowlast_earnings_datelast_earnings_surpriselast_earnings_surprise_pctlast_fiscal_quarter_endlast_reported_epsrecently_reported_earningsdividenddividend_approachingdividend_datedividend_frequencydividend_payout_ratiodividend_ttmex_dividend_dateipo_dateipo_in_7dpending_iporecently_ipoedbuyback_30ddilution_30dfloat_effective_datesplit_recentinsider_c_suite_buyinsider_c_suite_sellinsider_cluster_buyindustrysectorsic_codesic_descriptionticker_categoryactiveasset_classasset_typecikcomposite_figicountrycurrency_namedelisted_utcexchangeexchange_micincorporation_countryissuer_countrylist_datenameaddress_address1address_cityaddress_postal_codeaddress_statebranding_icon_urlbranding_logo_urldescriptionfundamentals_basishomepage_urlinactive_atinactive_reasonleadershipphone_numberreporting_currencyround_lotshare_class_figiticker_roottotal_employeesetf_dividend_yieldetf_expense_ratioetf_inception_dateetf_leveragedetf_net_assetsetf_turnoveranalyst_consensus_ratinganalyst_consensus_rating_valueanalyst_count_buyanalyst_count_holdanalyst_count_sellanalyst_count_strong_buyanalyst_count_strong_sellanalyst_count_totalanalyst_count_with_targetbearish_consensusbullish_consensuswell_coveredlast_rating_actionlast_rating_datelast_rating_firmrecent_downgraderecent_initiationrecent_target_lowerrecent_target_raiserecent_upgradeabove_price_targetanalyst_consensus_target_priceanalyst_target_price_highanalyst_target_price_lowanalyst_target_upside_pctbelow_price_targettarget_downside_above_10pcttarget_upside_above_10pcttarget_upside_above_25pcteps_estimate_revision_down_30deps_estimate_revision_up_30destimate_revised_downestimate_revised_uphigh_earnings_estimatelast_eps_estimateloss_estimatenext_eps_estimatenext_eps_estimate_highnext_eps_estimate_lownext_revenue_estimateprofitable_estimatehighly_relevant_news_countlatest_news_atnews_sentiment_volatilitynews_volumenews_volume_weighted_sentimentrecent_news_count
AAPL——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
MSFT——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
NVDA——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
GOOGL——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
AMZN——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
META——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
TSLA——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

The table is the API.

/v2/tickers/ returns one ticker’s whole row. /v2/signals/ returns every ticker that matches one column. /v2/scan returns every ticker that matches a SQL WHERE clause. Every read runs live or as of any date.

  1. Is NVDA above its 200-day average?

    GET /v2/tickers/NVDA
  2. Which stocks are above their 200-day average?

    GET /v2/signals/above_sma_200
  3. Which of those just beat earnings?

    POST /v2/scanq=above_sma_200 AND last_earnings_surprise_pct > 0
  4. Which of those are large caps?

    POST /v2/scanq=above_sma_200 AND last_earnings_surprise_pct > 0 AND market_cap > 1e10
  5. Which were on Jan 22, 2024?

    POST /v2/scanq=above_sma_200 AND last_earnings_surprise_pct > 0 AND market_cap > 1e10asof=2024-01-22
  6. Tell me when one joins the list.

    POST /v2/scan/subscribeq=above_sma_200 AND last_earnings_surprise_pct > 0 AND market_cap > 1e10

The power is in the columns.

Every ticker gets the same columns. Query any of them, in any combination.

Price· 58

Price action· 60

Technicals· 68

Fundamentals· 121

Events· 36

Profile· 43

Analyst ratings· 41

Ask any question.

Anything you want to know about the market is a query over the table.

Which stocks beat earnings, are above their 200-day, and just had a price target raised?

last_earnings_surprise_pct > 0AND above_sma_200AND recent_target_raiseTry it →

Which large caps are 20% off their high but still growing revenue over 10%?

market_cap > 1e10AND from_52w_high_pct < -20AND revenue_growth_yoy_pct > 10Try it →

Which stocks are at a 52-week high with news behind it?

at_52w_highAND recent_news_count > 0Try it →

Which heavily shorted stocks report earnings this week?

short_float_pct > 20AND earnings_this_weekTry it →

Which large caps yield over 4% and still grew earnings last year?

dividend_yield > 0.04AND earnings_growth_yoy_pct > 0AND market_cap > 1e10Try it →

Which stocks had a golden cross after beating earnings twice in a row?

golden_crossAND earnings_beat_streak >= 2Try it →

Which tech stocks trade under 15 times earnings with positive news sentiment?

sector = 'Technology'AND pe_ratio < 15AND news_volume_weighted_sentiment > 0Try it →

Which ETFs charge under 0.1% and hold over $10B?

etf_expense_ratio < 0.1AND etf_net_assets > 1e10Try it →

Which large caps were below their 200-day at the October 2023 low, on Oct 27, 2023?

NOT above_sma_200AND market_cap > 1e10asof 2023-10-27Try it →

Build any trading tool.

Anything you want to build is a few queries in sequence.

Stock screener

Scan now, save the matches as a universe, subscribe to changes.

Build guide →

Backtester

Run the same scan as of each past date, price what came next, loop. No look-ahead.

Build guide →

Alert bot

Test the condition as a scan, subscribe it, receive the webhook.

Build guide →

Trading algorithm

Define the condition, validate it as of past dates, subscribe it, trade on the webhook.

Build guide →

AI trading agent

Connect over MCP, ask in English, and let a subscription interrupt the agent’s loop.

Build guide →

Fintech app

One row per ticker, series for the widgets, a websocket to keep it live, a universe per watchlist.

Build guide →

See how we compare.

Other APIs serve one ticker and one data type at a time, so any real question is a custom integration. With Tickerbot, you and your agents just query the table.

  1. Is NVDA above its 200-day average?

    Other APIsA quote call, an indicator call, and the comparison.

    TickerbotGET /v2/tickers/NVDA
  2. Which stocks are above their 200-day average?

    Other APIsA quote call and an indicator call for every ticker, rate-limited. Hours, not a step.

    TickerbotGET /v2/signals/above_sma_200
  3. Which of those just beat earnings?

    Other APIsPrices and indicators for every ticker, an earnings feed, and code to join them.

    TickerbotPOST /v2/scanq=above_sma_200 AND last_earnings_surprise_pct > 0
  4. Which of those are large caps?

    Other APIsPrices, earnings and market caps from separate feeds, joined ticker by ticker.

    TickerbotPOST /v2/scanq=above_sma_200 AND last_earnings_surprise_pct > 0 AND market_cap > 1e10
  5. Which were on Jan 22, 2024?

    Other APIsEvery ticker that traded on that date, delisted ones included, stored before you asked.

    TickerbotPOST /v2/scanq=above_sma_200 AND last_earnings_surprise_pct > 0 AND market_cap > 1e10asof=2024-01-22
  6. Tell me when one joins the list.

    Other APIsThe whole pipeline rerun on a schedule, diffed against the last run, forever.

    TickerbotPOST /v2/scan/subscribeq=above_sma_200 AND last_earnings_surprise_pct > 0 AND market_cap > 1e10

10M+ calls served.

“dude. whoah.”
President, ShopifyHarley Finkelstein
“Tickerbot is insane. It turns Claude into a quant.”
Quantitative Finance MScLounes Vennema
“Best value for hobbyists and advanced traders alike.”
AI Engineer, ImergeRon Reid

Get a key. Ask the market anything.

Read the docs →

Free plan: 10,000 calls a month, no card required.