Market data for
Next.js apps.

Stock market data for Next.js — pre-computed categories, state change tracking, and built-in screeners via the TickerAPI Node.js SDK. Works in API routes, server components, and server actions.

Install the SDK.

Add tickerapi to your Next.js project. Works with the App Router and Pages Router.

terminal
npm install tickerapi

Set TICKERAPI_KEY in your environment variables. The SDK reads it automatically.

Works where Next.js runs server-side.

Call the SDK in any server context — API routes, server components, server actions. Data never touches the client bundle.

API Route app/api/summary/[ticker]/route.ts
import { TickerAPI } from "tickerapi";

const client = new TickerAPI(process.env.TICKERAPI_KEY!);

export async function GET(
  request: Request,
  { params }: { params: { ticker: string } }
) {
  const summary = await client.summary(params.ticker);
  return Response.json(summary);
}
Server Component app/components/StockCard.tsx
import { TickerAPI } from "tickerapi";

const client = new TickerAPI(process.env.TICKERAPI_KEY!);

export default async function StockCard({ ticker }: { ticker: string }) {
  const summary = await client.summary(ticker);

  return (
    <div>
      <h2>{ticker}</h2>
      <p>Trend: {summary.trend.direction}</p>
      <p>RSI: {summary.momentum.rsi_zone}</p>
    </div>
  );
}

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.

API Route app/api/watchlist/changes/route.ts
import { TickerAPI } from "tickerapi";
import { NextResponse } from "next/server";

const client = new TickerAPI(process.env.TICKERAPI_KEY!);

export async function GET() {
  const changes = await client.watchlist.changes();
  return NextResponse.json(changes);
}

// Response includes from/to transitions:
// { "ticker": "AAPL", "field": "rsi_zone",
//   "from": "neutral", "to": "oversold" }
json
{
  "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.

API Route app/api/briefing/[ticker]/route.ts
import { TickerAPI } from "tickerapi";
import Anthropic from "@anthropic-ai/sdk";

const ticker = new TickerAPI(process.env.TICKERAPI_KEY!);
const anthropic = new Anthropic();

export async function GET(
  request: Request,
  { params }: { params: { ticker: string } }
) {
  const summary = await ticker.summary(params.ticker);

  const message = await anthropic.messages.create({
    model: "claude-sonnet-4-20250514",
    max_tokens: 1024,
    messages: [{
      role: "user",
      content: `Analyze this market data for ${params.ticker} and provide a brief:\n${JSON.stringify(summary)}`
    }]
  });

  return Response.json({ analysis: message.content });
}

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.

json
{
  "ticker": "NVDA",
  "trend": "strong_uptrend",
  "momentum": {
    "rsi_zone": "overbought",
    "macd_signal": "bullish"
  },
  "volatility": "high",
  "fundamentals": {
    "pe_zone": "above_historical_avg",
    "earnings_surprise": "positive"
  }
}

What you can call.

Every tool returns categorical, pre-computed data. Your agent gets facts it can reason about immediately.

get_summary

Full factual snapshot for a single asset — trend, momentum, fundamentals, support/resistance.

compare_assets

Side-by-side technical and fundamental comparison of two or more tickers.

list_assets

Browse all supported tickers with filtering and search.

list_sectors

List all valid sector values with asset counts for scan filtering.

get_watchlist

Live summary data for all tickers in your saved watchlist.

get_watchlist_changes

Field-level diffs for your watchlist since the last pipeline run.

add_to_watchlist

Add tickers to your persistent watchlist.

remove_from_watchlist

Remove tickers from your watchlist.

scan_oversold

Assets in confirmed oversold conditions across multiple indicators.

scan_overbought

Assets in overbought RSI conditions with severity rankings.

scan_breakouts

Momentum breakouts with volume confirmation.

scan_unusual_volume

Volume anomalies and accumulation patterns.

scan_valuation

Historically undervalued or overvalued assets based on fundamental metrics.

scan_insider_activity

Notable insider buying and selling activity.

get_account

Your plan tier, rate limits, and current API usage.

create_webhook

Register a webhook URL for watchlist change notifications.

list_webhooks

List your registered webhook URLs.

delete_webhook

Remove a registered webhook.

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.

Start building.

Try for free. No credit card required.