Quote
Quote
Quote
The Quote end point delivers a complete, normalized view of a security’s current market state in a single, high-performance API call. It provides the latest price, full OHLC context, volume, extended hours pricing, and key reference metrics — all enriched with consistent timestamps, source attribution, and exchange metadata. Designed for both applications and AI agents, it removes the need to stitch together multiple feeds or interpret inconsistent field structures.
At its core is an intelligent price resolution engine that selects the best source available at any point in time - the VNXS synthetic (indicative) real-time price when subscribed via EDGE, or the 15-minute delayed SIP price when not. For commercial use of delayed Nasdaq-listed data, UTP licensing is required for commercial customers. This logic dynamically adapts to market conditions, trading activity, and entitlements, ensuring every consumer receives the most appropriate and compliant price without managing underlying complexity
The result is a single, authoritative market snapshot that combines speed, normalization, and embedded compliance into a unified interface — effectively solving the “last price problem” once, and making it reliably consumable across applications, platforms, and agents.
Start building with this dataset
Get API access in minutes.
Provider
Methods
https://api.blueskyapi.com/v1/data/CORE/QUOTE/:symbol- https://api.blueskyapi.com/v1/data/core/quote/aapl
- https://api.blueskyapi.com/v1/data/core/quote/AAPL,MSFT,VZ
You can fetch up to 2000 symbols at a time using a comma-separated list.
EX: AAPL,MSFT,TSLA
Response Attributes
| Key | Type | Description |
|---|---|---|
| avgTotalVolume* | integer | 30 day average volume |
| calculationPrice* | string | Source of the latest price (i.e., latestPrice). Here are the possible values: - synthetic real-time price.- sip: Market-wide price from the SIP- previousclose: Previous close price. See previousClose.- close: Current day close price. See close. |
| change* | number | Change in price between latestPrice and previousClose |
| changePercent* | number | Percent change in price between latestPrice and previousClose. For example, 0.05 represents a 5% change. |
| close* | number | Closing price for the stock. 8 p.m. ET or shortly after, the official market-wide close price from the SIP becomes available to all users, including users without UTP authorization. It is the official price if the source is official.4 p.m. - 8 p.m. ET, the unofficial 15 minute delayed close price from the SIP is used if the stock is a non-Nasdaq listed stock or if you have UTP authorization. Otherwise close is null.Required: If you display a 15 minute delayed price, you must display the following disclaimer near that price. 15 minute delayed price |
| closeSource* | string | VNX realtime price - synthetic real-time Close price |
| closeTime* | integer, null | Official listing exchange time for the close from the SIP |
| companyName* | string | Company name |
| currency* | string | Currency in which the prices are quoted |
| delayedPrice* | number | 15 minute delayed price from the SIP during normal market hours 9:30 a.m. - 4:00 p.m. ET. Required: If you display this price, you must also display this disclaimer: 15 minute delayed price |
| delayedPriceTime* | integer | Last update time of the delayed market price during normal market hours 9:30 a.m. - 4:00 p.m. ET |
| extendedChange* | number, null | Price change between extendedPrice and latestPrice |
| extendedChangePercent* | number, null | Price change percent between extendedPrice and latestPrice |
| extendedPrice* | number, null | Premarket or postmarket price. extendedPrice is purposefully distinguishable from latestPrice so you can use the prices independently.4:00 a.m. - 9:30 a.m. ET, this is the premarket 15 minute delayed price if the stock is a non-Nasdaq listed stock or if you have UTP authorization. Otherwise, extendedPrice is null.4 p.m. - 8 p.m. ET, this is the postmarket price. It is the 15 minute delayed price if the stock is a non-Nasdaq listed stock or if you have UTP authorization. Otherwise, extendedPrice is null.Required: If you display this price, you must also display this disclaimer: 15 minute delayed price |
| extendedPriceTime* | integer, null | Last update time of extendedPrice in milliseconds since Epoch |
| high* | number | Market-wide highest price. 9:45 a.m. - 4:00 p.m. ET, the 15 minute delayed high price is available if the stock is a non-Nasdaq listed stock or if you have UTP authorization. Otherwise, high is null.8 p.m. ET or shortly after, the official high price becomes available to all users, including users without UTP Authorization. It is the official price if the source is official.Before 9:45 a.m. ET on trading days it is null. It is also null outside of trading days.Required: If you display a 15 minute delayed price, you must display the following disclaimer near that price. 15 minute delayed price |
| highSource* | string | Descriptive name for the high price source.Here are the possible values: - synthetic real-time price- 15 minute delayed price- Close- Previous close- official |
| highTime* | integer | Time high was updated in milliseconds since Epoch |
| isUSMarketOpen* | boolean | For US stocks, it indicates if the market is in normal market hours. It is false during extended hours trading. |
lastTradeTime* date | integer | Milliseconds since Epoch of the last market hours trade excluding the closing auction trade |
| latestPrice* | number | Use this to get the latest price. Latest available price for the stock. Here is the logic for latestPrice:1. If this is a real-time trade. And it is within the last 15 minutes, then the VNX synthetic real-time price is used. 2. If the trade is older than 15 minutes and either the stock is a non-Nasdaq listed stock or you have UTP authorization, the 15 minute delayed price from the Securities Information Processor SIP is used. If the stock is a Nasdaq listed stock and you do not have UTP authorization, the VNX synthetic real-time price continues to be used. 3. If the stock has not traded during the current day and the 15 minute delayed pricing is unavailable, the most recent close price is used. 4 p.m. - 8 p.m. ET, if the stock is a non-Nasdaq listed stock or you have UTP authorization, the 15 minute delayed price is used. If the stock is a Nasdaq listed stock and you do not have UTP authorization, the last the VNX synthetic price is used. Note: latestPrice does not represent premarket or postmarket prices (see extendedPrice for them).Required: If you display a 15 minute delayed price, you must display the following disclaimer near that price. 15 minute delayed price |
| latestSource* | string | Descriptive name for the latestPrice source.Here are the possible values: - synthetic real-time price- 15 minute delayed price- Close- Previous close- official |
| latestTime* | string | Human-readable time/date of when latestPrice was last updated. The format varies based on latestSource is inteded to be displayed to a user. Use latestUpdate for machine readable timestamp. |
| latestUpdate* | integer | Last time (in milliseconds since Epoch) latestPrice was updated. |
| latestVolume* | integer | Use this to get the latest volume. This is the latest total market volume of the stock across all markets. During trading hours, it is the most recent volume of the stock during trading hours; it is otherwise the total volume of the last available trading day. Required: If you display the latestVolume value, you must display Consolidated Volume in Real-timenear that value. |
| low* | number | Market-wide lowest price. 9:45 a.m. - 4:00 p.m. ET, the 15 minute delayed low price is available if the stock is a non-Nasdaq listed stock or if you have UTP authorization. Otherwise, low is null.8 p.m. ET or shortly after, the official price becomes available to all users, including users without UTP Authorization. It is the official price if the source is official.Before 9:45 a.m. ET on trading days it is null. It is also null outside of trading days.Required: If you display a 15 minute delayed price, you must display the following disclaimer near that price. 15 minute delayed price |
| lowSource* | string | Descriptive name for the low price source.Here are the possible values: - synthetic real-time price- 15 minute delayed price- Close- Previous close- official |
| lowTime* | integer | Time (in milliseconds since Epoch) low was updated |
| marketCap* | integer | Share class level market capitalization. Calculated in real time using latestPrice. |
| oddLotDelayedPrice* | number, null | 15 minute delayed odd Lot trade price from the SIP during normal weekday market hours 9:30 a.m. - 4 p.m. ET. Required: If you display this price, you must also display this disclaimer: 15 minute delayed price |
| oddLotDelayedPriceTime* | integer, null | Last update time of the odd Lot trade price during normal weekday market hours 9:30 a.m. - 4 p.m. ET |
| open* | number | Official open price from the SIP. At 9:45 a.m., the 15 minute delayed open price is available if the stock is a non-Nasdaq listed stock or if you have UTP authorization. Otherwise, open is null.8 p.m. ET or shortly after, the official price becomes available to all users, including users without UTP Authorization. It is the official price if the source is official.00:00 - 09:45 ET on trading days, open is null. It is also null outside of trading days.Required: If you display this price, you must also display this disclaimer: 15 minute delayed price |
| openSource* | string | Descriptive name for the open price source.Here are the possible values: - 15 minute delayed price- synthetic real-time price- Close- Previous close- official |
| openTime* | integer | Official listing exchange time for the open from the SIP. It is 15 minute delayed. |
| peRatio* | number | Price-to-earnings ratio of the company |
| previousClose* | number | Previous trading day closing price. Before 9:30 a.m. ET on a trading day however, previousClose is the closing price from two trading days ago. |
| previousVolume* | integer | Previous trading day volume. Before 9:30 a.m. ET on a trading day however, previousVolume is the closing volume from two trading days ago. |
| primaryExchange* | string | Primary listing exchange for the symbol |
symbol* key | string | Stock ticker |
| vnxMarketPercent* | number, null | The percentage of the market viaNexus has in the stock |
| volume* | integer | Total number of shares traded in the stock. It is available only after 9:30 a.m. on trading days; it is otherwise 0. To get premarket volume, use latestVolume. |
| week52High* | number | Highest adjusted price over the past 52 weeks |
| week52Low* | number | Lowest adjusted price over the past 52 weeks |
| ytdChange* | number | Price change percentage from start of year to previous close |
* required
Disclaimer
If you display any delayed price data from this endpoint, you must display this disclaimer “15 minute delayed price” near that data.
If you display a latestVolume value from this endpoint, you must display this disclaimer “Consolidated Volume in Real-time” near that value.
Attribution
If you display real time prices from this endpoint, you must display “viaNexus” (linked to https://viaNexus.com) near the prices. The link is commonly placed below the price.
Notes
Important: viaNexus provides real time prices, volume, and quotes for all NMS stocks. A VNX subscription is required. No additional exchanges are required.
If VNX is not subscribed to, this end point is powered by 15 Minute delayed pricing. In order to receive DELAYED Nasdaq-listed security data through this endpoint, Nasdaq UTP requires you to complete a Vendor Agreement. Delayed prices include open, close, extended hours prices, and other derived values. DELAYED NYSE listed symbols are only available to paid plans, due to reporting requirements.
