Market data for
Express apps.
TickerAPI Node.js SDK + Express. Pre-computed market data in your routes, zero infrastructure to maintain.
Install the SDK.
Two dependencies. No WebSocket connections, no streaming infrastructure — just a Node.js package that calls the TickerAPI HTTP API.
npm install tickerapi express Set TICKERAPI_KEY in your environment variables. The SDK reads it automatically.
Two routes, five minutes.
Initialize the client once, call methods from your route handlers. Every method returns an object ready for res.json.
import express from "express"; import { TickerAPI } from "tickerapi"; const app = express(); const client = new TickerAPI(process.env.TICKERAPI_KEY); app.get("/summary/:ticker", async (req, res) => { const summary = await client.summary(req.params.ticker); res.json(summary); }); app.get("/scan/oversold", async (req, res) => { const results = await client.scan.oversold({ sector: req.query.sector }); res.json(results); }); app.listen(3000);
Track state changes effortlessly.
Most market data APIs return point-in-time snapshots. TickerAPI tracks state transitions — your agent sees what changed, not just what is.
app.get("/watchlist/changes", async (req, res) => { const changes = await client.watchlist.changes(); res.json(changes); });
{ "ticker": "AAPL", "changes": [ { "field": "rsi_zone", "from": "neutral", "to": "oversold" }, { "field": "trend", "from": "uptrend", "to": "downtrend" } ] }
Feed an AI agent.
TickerAPI's categorical output is designed for LLMs. Feed a summary directly into a prompt — the model already understands terms like "oversold" and "strong_uptrend" without extra context.
import Anthropic from "@anthropic-ai/sdk"; const anthropic = new Anthropic(); app.get("/briefing/:ticker", async (req, res) => { const summary = await client.summary(req.params.ticker); const msg = await anthropic.messages.create({ model: "claude-sonnet-4-20250514", max_tokens: 1024, messages: [{ role: "user", content: `Analyze this stock data:\n${JSON.stringify(summary)}`, }], }); res.json({ analysis: msg.content[0].text }); });
What you can call.
Every tool returns categorical, pre-computed data. Your agent gets facts it can reason about immediately.
Full factual snapshot for a single asset — trend, momentum, fundamentals, support/resistance.
Side-by-side technical and fundamental comparison of two or more tickers.
Browse all supported tickers with filtering and search.
List all valid sector values with asset counts for scan filtering.
Live summary data for all tickers in your saved watchlist.
Field-level diffs for your watchlist since the last pipeline run.
Add tickers to your persistent watchlist.
Remove tickers from your watchlist.
Assets in confirmed oversold conditions across multiple indicators.
Assets in overbought RSI conditions with severity rankings.
Momentum breakouts with volume confirmation.
Volume anomalies and accumulation patterns.
Historically undervalued or overvalued assets based on fundamental metrics.
Notable insider buying and selling activity.
Your plan tier, rate limits, and current API usage.
Register a webhook URL for watchlist change notifications.
List your registered webhook URLs.
Remove a registered webhook.
What your agent sees.
Every tool returns categorical facts — not raw OHLCV data. Your agent can branch on "oversold" without needing to know what RSI > 70 means.
{ "ticker": "NVDA", "trend": "strong_uptrend", "momentum": { "rsi_zone": "overbought", "macd_signal": "bullish" }, "volatility": "high", "fundamentals": { "pe_zone": "above_historical_avg", "earnings_surprise": "positive" } }
Built for how agents consume data.
Categorical data, less prompt engineering
Responses like "rsi_zone": "oversold" are already in a format the model understands. No need to explain what RSI > 70 means.
Compact responses
Tool-call context windows are limited. TickerAPI responses are a fraction of the tokens you'd need to pass raw OHLCV data.
Pre-computed daily
No infrastructure to maintain. No cron jobs, no indicator math, no data pipelines. TickerAPI handles computation and syncing.