Stock Prices
Query real-time stock prices and market data using the Stock Prices API. Responses are in TOON format—decode with @toon-format/toon. Use when fetching stock...
Query real-time stock prices and market data using the Stock Prices API. Responses are in TOON format—decode with @toon-format/toon. Use when fetching stock...
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
This skill helps you work with the Stock Prices API to fetch real-time market data and stock quotes.
Base URL:
https://stock-prices.on99.app
Primary Endpoint:
/quotes?symbols={SYMBOLS}
Fetch stock quotes for one or more symbols (responses are in TOON format):
curl "https://stock-prices.on99.app/quotes?symbols=NVDA" curl "https://stock-prices.on99.app/quotes?symbols=AAPL,GOOGL,MSFT"
Install the TOON decoder for parsing:
pnpm add @toon-format/toon
The API returns TOON (Token-Oriented Object Notation) format—a compact, human-readable encoding that uses ~40% fewer tokens than JSON. This makes it ideal for LLM prompts and streaming.
quotes[1]{symbol,currentPrice,change,percentChange,highPrice,lowPrice,openPrice,previousClosePrice,preMarketPrice,preMarketChange,preMarketTime,preMarketChangePercent,...}: NVDA,188.54,-1.5,-0.789308,192.48,188.12,191.405,190.04,191.8799,3.3399048,2026-02-11T13:49:16.000Z,1.771457,...
Use
@toon-format/toon to parse responses back to JavaScript/JSON:
import { decode } from "@toon-format/toon";const response = await fetch("https://stock-prices.on99.app/quotes?symbols=NVDA"); const toonText = await response.text(); const data = decode(toonText);
// data.quotes is an array of quote objects const quote = data.quotes[0]; console.log();${quote.symbol}: $${quote.currentPrice}
The decoded structure matches JSON—same objects, arrays, and primitives.
| Field | Type | Description |
|---|---|---|
| string | Stock ticker symbol |
| number | Current trading price |
| number | Price change from previous close |
| number | Percentage change from previous close |
| number | Day's high price |
| number | Day's low price |
| number | Opening price |
| number | Previous day's closing price |
| number | Pre-market trading price |
| number | Pre-market price change |
| string (ISO 8601) | Pre-market data timestamp |
| number | Pre-market percentage change |
Query multiple stocks by separating symbols with commas (max 50):
curl "https://stock-prices.on99.app/quotes?symbols=AAPL,GOOGL,MSFT,TSLA,AMZN"
Always check for valid responses. Decode TOON before accessing data:
import { decode } from "@toon-format/toon";const response = await fetch("https://stock-prices.on99.app/quotes?symbols=NVDA"); const data = decode(await response.text());
if (data.quotes && data.quotes.length > 0) { const quote = data.quotes[0]; console.log(); }${quote.symbol}: $${quote.currentPrice}
Calculate common metrics:
// Determine if stock is up or down const isUp = quote.change > 0; const direction = isUp ? "📈" : "📉";// Calculate day's range percentage const rangePct = ((quote.highPrice - quote.lowPrice) / quote.lowPrice) * 100;
// Compare current to open const vsOpen = quote.currentPrice - quote.openPrice;
import { decode } from "@toon-format/toon";async function checkPrice(symbol: string) { const res = await fetch(
); const data = decode(await res.text()); const quote = data.quotes[0];https://stock-prices.on99.app/quotes?symbols=${symbol}return { price: quote.currentPrice, change: quote.change, changePercent: quote.percentChange, };}
import { decode } from "@toon-format/toon";async function getPortfolio(symbols: string[]) { const symbolString = symbols.join(","); const res = await fetch(
); const data = decode(await res.text());https://stock-prices.on99.app/quotes?symbols=${symbolString}return data.quotes.map(q => ({ symbol: q.symbol, value: q.currentPrice, dailyChange: q.percentChange, }));}
import { decode } from "@toon-format/toon";async function marketSummary(symbols: string[]) { const res = await fetch(
); const data = decode(await res.text());https://stock-prices.on99.app/quotes?symbols=${symbols.join(",")}const gainers = data.quotes.filter(q => q.change > 0); const losers = data.quotes.filter(q => q.change < 0); return { totalStocks: data.quotes.length, gainers: gainers.length, losers: losers.length, avgChange: data.quotes.reduce((sum, q) => sum + q.percentChange, 0) / data.quotes.length, };}
AAPL - AppleGOOGL - Alphabet (Google)META - Meta (Facebook)AMZN - AmazonNFLX - NetflixMSFT - MicrosoftNVDA - NVIDIATSLA - TeslaAMD - Advanced Micro DevicesINTC - IntelORCL - Oracle^GSPC - S&P 500^DJI - Dow Jones^IXIC - NASDAQdecode() from @toon-format/toon to parse.No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.