Snapshot Request
?action=snapshot is the v2 endpoint for fetching current-day data on multiple instruments in a single HTTP call. Up to 100 symbols can be packed into one request as a comma-separated list, and the server returns the latest bar for each. It exists because per-symbol history calls during the trading day add up: a watchlist of 80 tickers is 80 round trips with history and one round trip with snapshot. This article covers the URL, the multi-symbol list rule, and the relationship to the 30-minute intraday delay that affects everything Kibot serves during regular market hours.
Request URL
http://api.kibot.com/?action=snapshot&symbol=[symbols]
symbols is a comma-separated list of tickers, up to 100 per call. There are no other parameters in the documented surface; the response always covers the current trading day for the entire list. (type= is not exposed for snapshot in the docs, but in practice the symbol set being requested is what determines coverage; see the example below.)
Response
The server returns one row per symbol with the same shape as a single intraday history row, the latest available bar for the day. As with all of Kibot's intraday responses, US stocks and ETFs are subject to a 30-minute delay during the regular session and become immediately available at the close. There is no real-time streaming; snapshot is a polling primitive, not a feed.
Why it exists
Before snapshot, a watchlist refresh meant N independent history calls, each carrying TCP, TLS, login-state, and HTTP-header overhead, to fetch what is essentially the same one-bar payload N times. The endpoint compresses that pattern into a single request. The docs frame it as: "There is no need for multiple calls to API" (per the snapshot docs).
The 100-symbol-per-call ceiling is the only published cap. A larger watchlist needs to be sharded into multiple snapshot calls, but even at the cap an 80-symbol portfolio collapses from 80 round trips to one. The savings compound at higher polling frequencies, a script that refreshes a 50-name list every minute drops from 3000 requests/hour to 60.
Worked example
A two-symbol snapshot mixing an index and a stock:
http://api.kibot.com/?action=snapshot&symbol=$NDX,AAPL
The leading $ on $NDX is Kibot's index-symbol convention; equity tickers carry no prefix. Futures and forex symbols can be mixed into the list too, following the same conventions documented in Futures symbols and the broader symbol notes in Data format reference.
A larger watchlist:
http://api.kibot.com/?action=snapshot&symbol=AAPL,MSFT,GOOG,AMZN,META,TSLA,NVDA,JPM,V,WMT
Returns one current-day bar per symbol, in the order requested.
When to use snapshot vs history
The two endpoints serve different shapes of question:
| Question | Endpoint |
|---|---|
| "What's the latest bar for these N symbols right now?" | snapshot (one call covers all N up to 100) |
| "Give me 10 days of 3-minute bars for one symbol" | history |
| "Give me today's full intraday bar series for one symbol" | history (with period=1 and an intraday interval) |
Snapshot is the right tool when the caller wants breadth (many symbols, latest bar) at low frequency. History is the right tool when the caller wants depth (one symbol, full bar series) for any depth requirement. For breadth at depth, every minute bar today for 100 symbols, history is the only option, because snapshot only returns the latest bar.
Polling cadence and rate limits
Snapshot calls count toward the same per-server rate limits as every other API call (see Data updates): up to 40 in flight per server and 50 per 500 ms before the rate limiter trips. A single-threaded poller calling snapshot once a minute is nowhere near these limits even with the full 100-symbol payload. A multi-symbol portfolio refreshing every second from one IP address starts to approach them and should consult API authentication for the concurrency guidance.
The 30-minute intraday delay (per the v2 announcement) means snapshot can only show the bar from 30 minutes ago during the regular US session. After the close it catches up immediately. Callers that need true real-time data need a separate broker or exchange feed, Kibot does not sell one.
Key Takeaways
?action=snapshot&symbol=SYM1,SYM2,...returns the current-day bar for each symbol in the list.- The hard ceiling is 100 symbols per call; larger watchlists must be sharded.
- Snapshot collapses N watchlist refreshes into one HTTP round trip, the savings compound at higher polling frequencies.
- Index symbols use the
$prefix ($NDX); equities have no prefix; futures and forex follow their own symbol conventions. - US stocks and ETFs are subject to the same 30-minute intraday delay during the regular session that applies to
history. - Snapshot is for breadth at the latest bar; for depth (full bar series) on a single symbol, use
history.
Related
- API overview, Where snapshot fits in the v2 feature set.
- History request, When breadth-at-depth is needed instead of latest-bar breadth.
- API authentication, Session requirement; same 20-minute timeout applies.
- Data updates, Per-server concurrency caps that snapshot calls also count against.
- Futures symbols, Symbol conventions for futures contracts you can include in a snapshot list.