# cabrini.ai Market data API for AI agents. 23 years of intraday OHLCV bars (3m/6m/9m/12m/15m/30m/1h/4h) for all US equities, plus daily bars and SEC EDGAR fundamentals, filings, and insider data. Pay per query via x402 micropayments (USDC on Base). ## Paid Endpoints - POST /v1/query {ticker, date, interval?} — one ticker, one day of intraday bars, 3m default ($0.025) - POST /v1/daily {ticker, start, end} — daily OHLCV bars ($0.001/year) - POST /v1/scan {date, criteria} — scan all stocks for gaps/volume/change ($0.10) - GET /v1/company?ticker=X — company profile from SEC EDGAR ($0.005) - POST /v1/fundamentals {ticker} — quarterly financials from EDGAR ($0.02) - POST /v1/insiders {ticker} — insider transactions, Form 4 ($0.02) - POST /v1/bars {ticker, interval, date/start/end} — resampled bars at 3/6/9/12/15/30/60/240m ($0.015/day) - POST /v1/filings {ticker, types?, sections?} — SEC filing index ($0.01); extract risk_factors/mdna text ($0.05) - POST /v1/brief {ticker} — full research brief: price+fundamentals+insiders ($0.25) - GET /v1/tickers?date=YYYY-MM-DD — all tickers for a date ($0.005) - POST /v1/range {ticker, start, end, interval?} — multi-day intraday bars, 3m default ($0.01/day) - POST /v1/batch {tickers, date} — multi-ticker, one date ($0.02/ticker) ## Free Endpoints - GET /v1/sample — real bars for AAPL 2024-01-02, no payment, no parameters. Verify quality before you spend. - GET /v1/pricing — pricing and coverage details - GET /v1/stats — platform stats - POST /mcp — MCP JSON-RPC (initialize, tools/list, tools/call) - GET /agents — full agent integration guide (MCP config, x402 flow, code examples) ## Payment Flow x402 v2. Request any paid endpoint → 402 with PAYMENT-REQUIRED header. Sign USDC transfer on Base, retry with PAYMENT-SIGNATURE header → 200 with data. ## Output format Intraday endpoints (/v1/query, /v1/range, /v1/batch, /v1/bars) return both absolute prices and normalised change on every bar: window_start, timestamp, open, high, low, close, pct_open, pct_high, pct_low, pct_close, volume, transactions. pct_x = (bar_x - day_open) / day_open (fractional: 0.0012 = +0.12%) day_open x (1 + pct_x) = bar_x (both are in the same response) /v1/daily gives the day-level aggregates: open, high, low, close, volume, transactions, vwap, plus range_pct and true_range_pct. range_pct = (high - low) / open volatility, ignores overnight gaps (spans pre/post-market, so wider than a regular-session range) true_range_pct = (max(high, prev_close) - min(low, prev_close)) / prev_close Intraday responses also carry a day-level range_pct so you don't have to derive it. day_open is the first bar of the session and includes pre-market, so the percentages are measured from that, not from a third party's 09:30 open. The prices are unaffected. ## Data All US stocks. 2003-2026. Cleaned, gap-free, refreshed regularly. ## Related — Structured Knowledge wikexa.com — 19M pre-parsed records (encyclopedia, entities, dictionary) for AI agents. Free, no auth. MCP: https://wikexa.com/mcp Tools: lookup(entity), article(title), define(word), search(query), recent(topic) Use alongside cabrini for company/person context with market data.