API reference / Prices & snapshots

Prices & snapshots

Last price, full snapshots, daily bars, and watchlist snapshots.

7 endpoints. Pay per call in USDC via x402 with no account, or get unlimited calls for $99/mo. Every response is shaped { ticker, data, source, as_of }.

GET/api/v1/quote/{ticker}$0.01

Last price for a US stock, 15 minute delayed

Get the latest available price for any US-listed stock: the most recent 1-minute bar close plus today's OHLCV, change, and previous close. Currently 15 minutes delayed; each response carries `is_delayed: true`. Real-time pricing lands when the data plan is upgraded.

Example request
GET /api/v1/quote/AAPL
Response type (TypeScript)
interface QuoteResponse {
  ticker: string;
  data: {
    price: number;
    change: number;
    change_percent: number;
    day: {
      open: number;
      high: number;
      low: number;
      close: number;
      volume: number;
      vwap: number;
    };
    previous_close: number;
    timestamp: null;
    is_delayed: boolean;
    delayed_by: string;
  };
  source: string;
  as_of: string;
}
Example response (click to expand)
{
  "ticker": "AAPL",
  "data": {
    "price": 0,
    "change": 0,
    "change_percent": 0,
    "day": {
      "open": 0,
      "high": 0,
      "low": 0,
      "close": 0,
      "volume": 0,
      "vwap": 0
    },
    "previous_close": 312.06,
    "timestamp": null,
    "is_delayed": true,
    "delayed_by": "15 minutes"
  },
  "source": "x402stock",
  "as_of": "2026-05-31T19:19:08.363Z"
}
GET/api/v1/snapshot/{ticker}$0.01

Full ticker snapshot (last quote, last trade, OHLC, prev close, %change)

Single-call snapshot of a ticker's current state: last quote, last trade, today's OHLC + volume + VWAP, previous-day OHLC, today's change vs previous close.

Example request
GET /api/v1/snapshot/AAPL
Response type (TypeScript)
interface SnapshotResponse {
  ticker: string;
  data: {
    change: number;
    change_percent: number;
    day: {
      open: number;
      high: number;
      low: number;
      close: number;
      volume: number;
      vwap: number;
    };
    previous_day: {
      open: number;
      high: number;
      low: number;
      close: number;
      volume: number;
      vwap: number;
    };
    last_minute_bar: {
      open: number;
      high: number;
      low: number;
      close: number;
      volume: number;
      vwap: number;
      trade_count: number;
      accumulated_volume: number;
      timestamp: null;
    };
  };
  source: string;
  as_of: string;
}
Example response (click to expand)
{
  "ticker": "AAPL",
  "data": {
    "change": 0,
    "change_percent": 0,
    "day": {
      "open": 0,
      "high": 0,
      "low": 0,
      "close": 0,
      "volume": 0,
      "vwap": 0
    },
    "previous_day": {
      "open": 311.775,
      "high": 315,
      "low": 309.53,
      "close": 312.06,
      "volume": 70026752.782678,
      "vwap": 311.9766
    },
    "last_minute_bar": {
      "open": 0,
      "high": 0,
      "low": 0,
      "close": 0,
      "volume": 0,
      "vwap": 0,
      "trade_count": 0,
      "accumulated_volume": 0,
      "timestamp": null
    }
  },
  "source": "x402stock",
  "as_of": "2026-05-31T19:19:11.311Z"
}
GET/api/v1/prev-close/{ticker}$0.01

Previous trading day OHLC bar

Open, high, low, close, volume, and VWAP for a ticker's most recent completed trading day. One call returns one bar, handy for prior-close reference without setting a date range.

Example request
GET /api/v1/prev-close/AAPL
Response type (TypeScript)
interface PrevCloseResponse {
  ticker: string;
  data: {
    open: number;
    high: number;
    low: number;
    close: number;
    volume: number;
    vwap: number;
    trade_count: number;
    timestamp: string;
  };
  source: string;
  as_of: string;
}
Example response (click to expand)
{
  "ticker": "AAPL",
  "data": {
    "open": 311.775,
    "high": 315,
    "low": 309.53,
    "close": 312.06,
    "volume": 70026752,
    "vwap": 311.9766,
    "trade_count": 764555,
    "timestamp": "2026-05-29T20:00:00.000Z"
  },
  "source": "x402stock",
  "as_of": "2026-05-29T20:00:00.000Z"
}
GET/api/v1/open-close/{ticker}$0.01

Daily open/close (+ pre/after-hours) for a specific date

Official open, close, high, low, volume, plus pre-market and after-hours prices for a ticker on a given date. Pass `?date=YYYY-MM-DD` (required).

Example request
GET /api/v1/open-close/AAPL
Response type (TypeScript)
interface OpenCloseResponse {
  ticker: string;
  data: {
    date: string;
    open: number;
    high: number;
    low: number;
    close: number;
    volume: number;
    pre_market: number;
    after_hours: number;
  };
  source: string;
  as_of: string;
}
Example response (click to expand)
{
  "ticker": "AAPL",
  "data": {
    "date": "2026-05-28",
    "open": 310.68,
    "high": 312.8,
    "low": 309.57,
    "close": 312.51,
    "volume": 49119581.02302,
    "pre_market": 310.75,
    "after_hours": 312.0521
  },
  "source": "x402stock",
  "as_of": "2026-05-28T00:00:00.000Z"
}
GET/api/v1/unified-snapshot$0.02

Multi-ticker snapshot: fetch a whole watchlist's prices in one call

Snapshot a list of US-listed tickers at once: for each symbol, the company name, market session, current price, day change and percent change, day OHLCV with VWAP, and previous close. Pass a comma-separated list via `?tickers=AAPL,MSFT,NVDA` (up to 250). Built for pricing a watchlist or portfolio in a single request.

Example request
GET /api/v1/unified-snapshot
Response type (TypeScript)
interface UnifiedSnapshotResponse {
  source: string;
  as_of: string;
  count: number;
  tickers: Array<{
    ticker: string;
    name: string;
    market_status: string;
    price: number;
    change: number;
    change_percent: number;
    day: {
      open: number;
      high: number;
      low: number;
      close: number;
      volume: number;
      vwap: number;
    };
    previous_close: number;
    updated: string;
  }>;
}
Example response (click to expand)
{
  "source": "x402stock",
  "as_of": "2026-06-01T18:56:09.791Z",
  "count": 3,
  "tickers": [
    {
      "ticker": "AAPL",
      "name": "Apple Inc.",
      "market_status": "open",
      "price": 307.725,
      "change": -4.33,
      "change_percent": -1.39,
      "day": {
        "open": 309.625,
        "high": 310.94,
        "low": 305.02,
        "close": 307.65,
        "volume": 28308481,
        "vwap": 307.9593
      },
      "previous_close": 312.06,
      "updated": "2026-06-01T18:56:09.196Z"
    },
    {
      "ticker": "MSFT",
      "name": "Microsoft Corp",
      "market_status": "open",
      "price": 460.72,
      "change": 10.48,
      "change_percent": 2.328,
      "day": {
        "open": 464.84,
        "high": 466.32,
        "low": 458.27,
        "close": 460.6401,
        "volume": 37048744,
        "vwap": 461.8711
      },
      "previous_close": 450.24,
      "updated": "2026-06-01T18:56:09.306Z"
    },
    {
      "ticker": "NVDA",
      "name": "Nvidia Corp",
      "market_status": "open",
      "price": 224.22,
      "change": 13.08,
      "change_percent": 6.195,
      "day": {
        "open": 215.73,
        "high": 224.8,
        "low": 215.7,
        "close": 224.24,
        "volume": 151117874,
        "vwap": 220.3888
      },
      "previous_close": 211.14,
      "updated": "2026-06-01T18:56:09.418Z"
    }
  ]
}
GET/api/v1/full-market-snapshot$0.04

Whole-market snapshot: every US ticker's current price and day change in one call

Current state of every US-listed ticker in a single call: price, day change and percent change, volume, and VWAP per symbol. The base layer for building a screener or scanning the whole market without iterating ticker by ticker. Optional `?tickers=AAPL,MSFT` to narrow and `?include_otc=true` to add OTC names.

Example request
GET /api/v1/full-market-snapshot
Response type (TypeScript)
interface FullMarketSnapshotResponse {
  source: string;
  as_of: string;
  count: number;
  tickers: Array<{
    ticker: string;
    price: number;
    change: number;
    change_percent: number;
    volume: number;
    vwap: number;
    updated: string;
  }>;
}
Example response (click to expand)
{
  "source": "x402stock",
  "as_of": "2026-06-01T18:56:06.420Z",
  "count": 5,
  "tickers": [
    {
      "ticker": "MSFT",
      "price": 460.76,
      "change": 10.454999999999984,
      "change_percent": 2.3220948827292074,
      "volume": 37048744,
      "vwap": 461.8711,
      "updated": "2026-06-01T18:41:05.851Z"
    },
    {
      "ticker": "AAPL",
      "price": 307.6546,
      "change": -4.360000000000014,
      "change_percent": -1.397167211433703,
      "volume": 28308481,
      "vwap": 307.9593,
      "updated": "2026-06-01T18:41:05.103Z"
    },
    {
      "ticker": "NVDA",
      "price": 224.24,
      "change": 13.035000000000023,
      "change_percent": 6.173628871838602,
      "volume": 151117874,
      "vwap": 220.3888,
      "updated": "2026-06-01T18:41:05.845Z"
    },
    {
      "ticker": "AMZN",
      "price": 262.935,
      "change": -7.71999999999997,
      "change_percent": -2.8524977830328004,
      "volume": 35995792,
      "vwap": 263.4962,
      "updated": "2026-06-01T18:41:05.503Z"
    },
    {
      "ticker": "TSLA",
      "price": 419.48,
      "change": -16.245000000000005,
      "change_percent": -3.727712889235642,
      "volume": 30988533,
      "vwap": 422.1637,
      "updated": "2026-06-01T18:41:06.334Z"
    }
  ]
}
GET/api/v1/grouped-daily$0.02

Whole-market daily OHLC for one date

End-of-day OHLCV bars for every US-listed ticker on a single date; one call returns the entire market. Pass `?date=YYYY-MM-DD` (required).

Example request
GET /api/v1/grouped-daily
Response type (TypeScript)
interface GroupedDailyResponse {
  source: string;
  as_of: string;
  date: string;
  adjusted: boolean;
  count: number;
  results: Array<{
    ticker: string;
    open: number;
    high: number;
    low: number;
    close: number;
    volume: number;
    vwap: number;
    trade_count: number;
    timestamp: string;
  }>;
  results_note: string;
}
Example response (click to expand)
{
  "source": "x402stock",
  "as_of": "2026-05-28T00:00:00.000Z",
  "date": "2026-05-28",
  "adjusted": true,
  "count": 12288,
  "results": [
    {
      "ticker": "AAPL",
      "open": 310.68,
      "high": 312.8,
      "low": 309.57,
      "close": 312.51,
      "volume": 49119581.02302,
      "vwap": 311.536,
      "trade_count": 715716,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "MSFT",
      "open": 412.975,
      "high": 429.49,
      "low": 412.67,
      "close": 426.99,
      "volume": 47245334.950684,
      "vwap": 424.7431,
      "trade_count": 825490,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "NVDA",
      "open": 211.275,
      "high": 215.5191,
      "low": 211.22,
      "close": 214.25,
      "volume": 143955744.082572,
      "vwap": 213.5048,
      "trade_count": 2161520,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "AMZN",
      "open": 272.27,
      "high": 274.5,
      "low": 267.44,
      "close": 274,
      "volume": 40629218.808792,
      "vwap": 271.6462,
      "trade_count": 552087,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "GOOGL",
      "open": 388,
      "high": 391.87,
      "low": 385.16,
      "close": 390.13,
      "volume": 24357223.394535,
      "vwap": 389.7251,
      "trade_count": 611416,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "META",
      "open": 639.495,
      "high": 643,
      "low": 629.31,
      "close": 635.29,
      "volume": 16772379.359885,
      "vwap": 634.6978,
      "trade_count": 422541,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "TSLA",
      "open": 437.615,
      "high": 443.96,
      "low": 436.3,
      "close": 442.1,
      "volume": 32434990.293689,
      "vwap": 440.7259,
      "trade_count": 927566,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "SPY",
      "open": 750.25,
      "high": 755.15,
      "low": 749.23,
      "close": 754.6,
      "volume": 41587160.538608,
      "vwap": 753.1274,
      "trade_count": 582994,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "QQQ",
      "open": 729.73,
      "high": 736.6,
      "low": 726.41,
      "close": 735.6,
      "volume": 32839950.834207,
      "vwap": 732.9367,
      "trade_count": 613414,
      "timestamp": "2026-05-28T20:00:00.000Z"
    },
    {
      "ticker": "AMD",
      "open": 499,
      "high": 527.1999,
      "low": 493.52,
      "close": 518.09,
      "volume": 31438860.820797,
      "vwap": 513.7847,
      "trade_count": 624075,
      "timestamp": "2026-05-28T20:00:00.000Z"
    }
  ],
  "results_note": "Trimmed fixture: showing 10 representative tickers. The live endpoint returns all 12288 tickers (see count)."
}