Market context for
Next.js apps.

Stock market context for Next.js — pre-computed market-state signals, state change tracking, and historical event queries via the TickerDB Node.js SDK. Works in API routes, server components, and server actions.

Install the SDK.

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

terminal
npm install tickerdb

Set TICKERDB_KEY in your environment variables and pass it into the client when you initialize it.

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 { TickerDB } from "tickerdb";

const client = new TickerDB({ apiKey: process.env.TICKERDB_KEY! });

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

const client = new TickerDB({ apiKey: process.env.TICKERDB_KEY! });

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

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

Track state changes effortlessly.

Most market data APIs return point-in-time snapshots. TickerDB tracks state transitions — your agent sees what changed, not just what is.

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

const client = new TickerDB({ apiKey: process.env.TICKERDB_KEY! });

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

// Response includes from/to transitions:
// { "ticker": "AAPL", "field": "rsi_zone",
//   "from": "neutral", "to": "oversold" }
json
{
  "timeframe": "daily",
  "run_date": "2026-03-28",
  "changes": {
    "AAPL": [
      {
        "field": "rsi_zone",
        "from": "neutral",
        "to": "oversold"
      },
      {
        "field": "trend_direction",
        "from": "uptrend",
        "to": "downtrend"
      }
    ]
  },
  "ticker_context": {
    "AAPL": {
      "last_changed_date": "2026-03-28"
    }
  },
  "tickers_checked": 2,
  "tickers_changed": 1
}

Feed an AI agent.

TickerDB's categorical-first 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 { TickerDB } from "tickerdb";
import Anthropic from "@anthropic-ai/sdk";

const ticker = new TickerDB({ apiKey: process.env.TICKERDB_KEY! });
const anthropic = new Anthropic();

export async function GET(
  request: Request,
  { params }: { params: { ticker: string } }
) {
  const { data } = 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(data)}`
    }]
  });

  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",
  "data_status": "eod",
  "as_of_date": "2026-04-11",
  "trend": {
    "direction": "strong_uptrend",
    "ma_alignment": "aligned_bullish"
  },
  "momentum": {
    "rsi_zone": "overbought",
    "macd_state": "expanding_positive",
    "direction": "accelerating"
  },
  "volatility": {
    "regime": "normal",
    "regime_trend": "stable"
  },
  "fundamentals": {
    "valuation_zone": "fair_value",
    "pe_vs_historical_zone": "premium",
    "last_earnings_surprise": "beat"
  }
}

What you can call.

Every tool returns pre-computed market-state data: categorical facts plus supporting metadata your agent can reason about immediately.

get_summary

Full market-state snapshot for a single asset: trend, momentum, volatility, volume, extremes, fundamentals, and support/resistance.

get_search

Multi-field filtering across all assets. Build complex queries with arbitrary filter combinations.

get_schema

All queryable fields with types, values, and descriptions. Always free.

get_watchlist

Latest EOD summary data for all tickers in your saved watchlist.

get_watchlist_changes

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

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.

Market-state 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. TickerDB 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. TickerDB handles computation and syncing.

Start building.

Try for free. No credit card required.