Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
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.
FieldTypeDescriptionsymbolstringStock ticker symbolcurrentPricenumberCurrent trading pricechangenumberPrice change from previous closepercentChangenumberPercentage change from previous closehighPricenumberDay's high pricelowPricenumberDay's low priceopenPricenumberOpening pricepreviousClosePricenumberPrevious day's closing pricepreMarketPricenumberPre-market trading pricepreMarketChangenumberPre-market price changepreMarketTimestring (ISO 8601)Pre-market data timestamppreMarketChangePercentnumberPre-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(`https://stock-prices.on99.app/quotes?symbols=${symbol}`); const data = decode(await res.text()); const quote = data.quotes[0]; 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(`https://stock-prices.on99.app/quotes?symbols=${symbolString}`); const data = decode(await res.text()); 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(`https://stock-prices.on99.app/quotes?symbols=${symbols.join(",")}`); const data = decode(await res.text()); 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 - Apple GOOGL - Alphabet (Google) META - Meta (Facebook) AMZN - Amazon NFLX - Netflix MSFT - Microsoft
NVDA - NVIDIA TSLA - Tesla AMD - Advanced Micro Devices INTC - Intel ORCL - Oracle
^GSPC - S&P 500 ^DJI - Dow Jones ^IXIC - NASDAQ
Response format: API returns TOON, not JSON. Use decode() from @toon-format/toon to parse. All prices are in USD Data updates in real-time during market hours Pre-market and after-hours data is available Timestamps are in ISO 8601 format (UTC) Maximum 50 symbols per request
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.