Quotes
Retrieve live quotes for any supported stock symbol.
Making Requests
Use the quotes() method on the stocks resource to fetch stock quotes. The method supports multiple output formats:
| Output Format | Return Type | Description |
|---|---|---|
| DATAFRAME | pandas.DataFrame or polars.DataFrame | Returns a DataFrame with quotes indexed by symbol (default). |
| INTERNAL | list[StockQuote] or list[StockQuotesHumanReadable] | Returns a list of StockQuote objects. When use_human_readable=True, returns a list of StockQuotesHumanReadable objects with capitalized field names. |
| JSON | dict | Returns the raw JSON response as a dictionary. |
| CSV | str | Writes CSV data to file and returns the filename string. |
quotes
def quotes(
symbols: list[str] | str,
*,
use_52_week: bool = None,
extended: bool = None,
output_format: OutputFormat = OutputFormat.DATAFRAME,
date_format: DateFormat = None,
columns: list[str] = None,
add_headers: bool = None,
use_human_readable: bool = False,
mode: Mode = None,
filename: str | Path = None,
) -> list[StockQuote] | list[StockQuotesHumanReadable] | dict | str | MarketDataClientErrorResult
Fetches stock quotes for one or more symbols. The symbols parameter can be passed as the first positional argument or as a keyword argument. All other parameters must be keyword-only.
Parameters
-
symbols(list[str] | str)A single symbol string or a list of symbol strings for which to fetch quotes.
-
use_52_week(bool, optional)Whether to use the 52 week high and low. Uses API alias
52week. -
extended(bool, optional)Whether to use the extended quotes.
-
output_format(OutputFormat, optional)The format of the returned data. Defaults to
OutputFormat.DATAFRAME. See Settings for details. -
date_format(DateFormat, optional)The date format to use in the response. Defaults to
DateFormat.UNIX. See Settings for details. -
columns(optional)Specify which columns to include in the response. If not provided, all available columns are returned. See Settings for details.
-
add_headers(optional)Whether to include headers in the response. Uses API alias
headers. See Settings for details. -
use_human_readable(optional)Whether to use human-readable format for values. Uses API alias
human. Only applies whenoutput_format=OutputFormat.INTERNAL. See Settings for details. -
mode(Mode, optional)The data feed mode to use. Available options:
Mode.LIVE,Mode.CACHED,Mode.DELAYED. See Settings for details. -
filename(str | Path, optional)File path for CSV output (only used with
output_format=OutputFormat.CSV). Must end with.csv. Directory must exist. File must not already exist. If not provided, a timestamped file is created inoutput/directory.
Returns
-
list[StockQuote]|list[StockQuotesHumanReadable]|dict|str|MarketDataClientErrorResultThe quotes data in the requested format, or a
MarketDataClientErrorResultif an error occurred.
Notes
- When using
OutputFormat.DATAFRAME, the DataFrame is indexed by thesymbolcolumn. - When using
OutputFormat.INTERNAL, timestamps are automatically converted todatetime.datetimeobjects. - When using
OutputFormat.CSV, the method writes to a file and returns the filename string.
- Example (DataFrame)
- Example (Internal)
- Example (JSON)
- Example (CSV)
- Example (Human Readable)
from marketdata.client import MarketDataClient
client = MarketDataClient()
# Get stock quotes as DataFrame (default)
# symbols can be passed positionally or as keyword
df = client.stocks.quotes("AAPL")
# or
df = client.stocks.quotes(symbols="AAPL")
# Get quotes for multiple symbols
df = client.stocks.quotes(["AAPL", "MSFT"])
print(df)
Output
ask askSize bid bidSize mid last change changepct volume updated
symbol
AAPL 278.02 100 277.97 100 277.995 278.0188 -0.0112 0.0 4964676 2025-01-13 16:21:46
from marketdata.client import MarketDataClient
from marketdata.input_types.base import OutputFormat
client = MarketDataClient()
# Get stock quotes as internal objects
quotes = client.stocks.quotes("AAPL", output_format=OutputFormat.INTERNAL)
# Access individual quote properties
for quote in quotes:
print(f"Symbol: {quote.symbol}")
print(f"Ask: {quote.ask}")
print(f"Bid: {quote.bid}")
print(f"Mid: {quote.mid}")
print(f"Last: {quote.last}")
print(f"Change: {quote.change}")
print(f"Change Percent: {quote.change_percent}")
print(f"Volume: {quote.volume}")
print(f"Updated: {quote.updated}")
Output
Symbol: AAPL
Ask: 278.02
Bid: 277.97
Mid: 277.995
Last: 278.0188
Change: -0.0112
Change Percent: 0.0
Volume: 4964676
Updated: 2025-01-13 16:21:46
from marketdata.client import MarketDataClient
from marketdata.input_types.base import OutputFormat
client = MarketDataClient()
# Get stock quotes as JSON
quotes = client.stocks.quotes(["AAPL", "MSFT"], output_format=OutputFormat.JSON)
print(quotes)
Output
{
"s": "ok",
"symbol": ["AAPL", "MSFT"],
"ask": [278.02, 479.45],
"askSize": [100, 40],
"bid": [277.97, 479.37],
"bidSize": [100, 40],
"mid": [277.995, 479.41],
"last": [278.0188, 479.42],
"change": [-0.0112, -4.05],
"changepct": [0.0, -0.0084],
"volume": [4964676, 3581398],
"updated": [1765552906, 1765552906]
}
from marketdata.client import MarketDataClient
from marketdata.input_types.base import OutputFormat
from pathlib import Path
client = MarketDataClient()
# Get stock quotes as CSV
csv_file = client.stocks.quotes(
["AAPL", "MSFT"],
output_format=OutputFormat.CSV,
filename=Path("quotes.csv")
)
print(f"CSV file saved to: {csv_file}")
Output
CSV file saved to: quotes.csv
from marketdata.client import MarketDataClient
from marketdata.input_types.base import OutputFormat
client = MarketDataClient()
# Get stock quotes in human-readable format
quotes = client.stocks.quotes(
"AAPL",
output_format=OutputFormat.INTERNAL,
use_human_readable=True
)
for quote in quotes:
print(f"Symbol: {quote.Symbol}")
print(f"Ask: {quote.Ask}")
print(f"Bid: {quote.Bid}")
print(f"Change Price: {quote.Change_Price}")
print(f"Change Percent: {quote.Change_Percent}")
Output
Symbol: AAPL
Ask: 278.55
Bid: 278.54
Change Price: 0.51
Change Percent: 0.0018
StockQuote
@dataclass
class StockQuote:
symbol: str
ask: float
askSize: int
bid: float
bidSize: int
mid: float
last: float
change: float
changepct: float
volume: int
updated: datetime.datetime
StockQuote represents a single stock quote, encapsulating various details such as prices, volumes, and timestamps.
Properties
symbol(str): The stock symbol.ask(float): The asking price for the stock.askSize(int): The size (quantity) of the ask.bid(float): The bidding price for the stock.bidSize(int): The size (quantity) of the bid.mid(float): The mid price calculated between the ask and bid prices.last(float): The last traded price for the stock.change(float): The price change.changepct(float): The percentage change in price.change_percent(float): Property that returnschangepctfor convenience.volume(int): The trading volume for the stock.updated(datetime.datetime): The time when the quote was last updated (automatically converted from timestamp).
Notes
- The
updatedfield is automatically converted to adatetime.datetimeobject from a Unix timestamp. - The
change_percentproperty provides convenient access to thechangepctfield.
StockQuotesHumanReadable
@dataclass
class StockQuotesHumanReadable:
Symbol: str
Ask: float
Ask_Size: int
Bid: float
Bid_Size: int
Mid: float
Last: float
Change_Price: float
Change_Percent: float
Volume: int
Date: datetime.datetime
StockQuotesHumanReadable represents a stock quote in human-readable format with capitalized field names and formatted values.
Properties
Symbol(str): The stock symbol.Ask(float): The asking price for the stock.Ask_Size(int): The size (quantity) of the ask.Bid(float): The bidding price for the stock.Bid_Size(int): The size (quantity) of the bid.Mid(float): The mid price calculated between the ask and bid prices.Last(float): The last traded price for the stock.Change_Price(float): The price change.Change_Percent(float): The percentage change in price.Volume(int): The trading volume for the stock.Date(datetime.datetime): The time when the quote was last updated (automatically converted from timestamp).
Notes
- The
Datefield is automatically converted to adatetime.datetimeobject from a Unix timestamp. - Field names use capitalized format with underscores (e.g.,
Ask_Sizeinstead ofaskSize).