Data Updates and Delivery

Kibot ships historical market data through four parallel channels: direct download links from the customer's account page, the free Kibot Agent desktop tool, an FTP server with compressed weekly and daily archives, and a REST-style historical data API. A buyer can mix and match these channels, the same updates flow to each, and choose whichever fits their automation. Recurring access to those updates is sold separately from the underlying data and is billed monthly through Fastspring payment.

How it works

The Faq lists the four delivery paths together. The Kibot Agent software downloads data and schedules automatic updates. The FTP server hosts compressed update archives that can be applied with a custom workflow or with the Kibot Updater tool. The historical data API exposes the same data programmatically. And direct download links to the most recent version of every file are available from the My Account section of the site, with a plain-text dump of all links suitable for third-party download managers.

Subscribing to updates

There are two entry points to subscribe. The first is at the time of an initial data purchase, where the order page exposes a checkbox for adding update service. The second is the standalone subscription page, which can be used at any later date. Update services renew automatically on a 30-day cadence anchored to the initial order date rather than to the calendar month, so signing up at the end of a month still yields a full 30-day cycle (per the FAQ).

What the subscription actually updates

A subscription is sold as "minute and daily/EOD interval data" coverage, but in practice it is the refresh service for everything on the account, not a separate dataset. Once a one-time purchase (tick, aggregate bid/ask, higher-resolution intraday, or any other interval not in the base subscription) has been added to the account, the active subscription delivers ongoing updates for that data on top of the base minute and daily files. Three consequences worth knowing before signing up:

  • Buying tick history once and subscribing afterwards is the typical pattern. There is no separate "tick subscription" SKU; the existing subscription tier covers the refresh.
  • The base subscription price does not change as more data is added to the account. A buyer with the All Stocks tick archive plus a Premium subscription pays the same $139/month as a buyer with only minute data on Premium.
  • The FTP exception in Tick data updates still applies: tick file refreshes flow through the API, direct download links, or Kibot Agent, never through the FTP archive bundles, regardless of subscription tier.

Kibot Agent

See Kibot agent for the full article covering features, installation, system requirements, and the Windows Defender SmartScreen workaround. The summary below covers just the operational guidance from the support FAQ.

Kibot Agent is Kibot's free GUI tool for downloading and updating data. It uses the Kibot API internally, so a non-programmer can start and schedule downloads with a few clicks. The program supports custom timezone offsets and UTC conversion when writing files. It can be automated by command line, with the recommended pattern being to launch the program with the parameters from a Windows Task Scheduler entry, created tasks expose their command line under the Actions tab, and then either monitor the tail of the log file for the phrases "successfully completed the task" or "task completed on", or simply wait for the process to exit, since scheduled tasks are designed to close the program after execution.

Two Task Scheduler quirks are worth noting. If the Agent process refuses to exit when the task finishes, the scheduled task should have "Run only when the user is logged on" selected; failing that, "Stop the task if it runs longer than..." in the Settings tab acts as a backstop. The program should also always be launched as administrator so it has full access to the scheduled-tasks feature, the destination folder, and the files it needs to update, set this through the executable's Properties.

FTP server

The FTP server stores updates as compressed RAR archives that any popular archiver, WinZip, WinRAR, or 7-Zip, can extract. FTP is used only for updates because the source files are constantly being refreshed and many of them are too large for the protocol to handle practically.

Timing matters on the FTP side. All updates are ready before the 9:30 AM ET market open and usually before 8 AM. Tuesday morning is the best window for weekly updates and full archives that are generated over the weekend. A practical cadence is to check daily updates Tuesday through Saturday after 8 AM, and to pull full and weekly archives on Tuesday after 8 AM. Full archives downloaded between Saturday and Tuesday can be incomplete or corrupted because they are still being assembled.

Kibot API

Access to the Kibot API is bundled into the Premium subscription tier. Other subscription packages include API access to daily or end-of-day data, and a guest account is available free of charge for testing, login as user=guest&password=guest. A typical request returns the last 10 days of adjusted daily data for MSFT:

http://api.kibot.com/?action=history&symbol=MSFT&interval=daily&period=10

Adding &unadjusted=1 switches to unadjusted prices. Tick data and NinjaTrader-formatted output are also accessible through API parameters. The API is the engine inside Kibot Agent, so anything the Agent does can in principle be replicated programmatically.

Two further URL parameters matter for scripted pipelines. &openinterest=1 is only meaningful on daily futures requests and adds an open-interest column to the standard Date,Open,High,Low,Close,Volume row, the field is not available on intraday intervals (per support). &timezone=utc (see also Timezone conversion) converts the returned timestamps from Eastern Time to UTC inside the API response rather than forcing a post-hoc conversion in the caller's code, which makes it the simplest option for callers that do not want to track DST transitions themselves.

API rate limits

The public API exposes two concurrency ceilings that together define the practical throughput of a scripted consumer (per support). A single server accepts up to forty concurrent in-flight requests and no more than fifty requests per five-hundred-millisecond window; requests exceeding either limit are rejected with a 403 Login Failed response, which the server reuses for both authentication failures and rate-limiter trips. In practice the effective ceiling is higher than forty because Kibot's front tier distributes incoming requests across multiple servers, but a single caller should not rely on that distribution, pinning a client to a single server by accident is easy, and the per-server limit is what governs worst-case behaviour.

All requests must originate from the same IP address, and the five-concurrent-connection guidance mentioned elsewhere in this article applies above these server-side ceilings as an additional per-IP watchdog. Callers that expect to saturate the API should issue one wide request per symbol per date range rather than many narrow calls, since aggregate bid/ask in particular is the heaviest interval type on the server and is measurably slower per byte returned than tick or OHLCV (per support). When many files are needed concurrently, Kibot Agent's built-in download scheduler is the ergonomic path; hand-rolling a parallel client gains nothing beyond what Agent already does and is more likely to trip the rate limiter than a single-threaded script issuing one request at a time.

For users who prefer a browser, every data package in the account area exposes direct download links to the most recent version of each file. A "plain text format" link on the same page returns the full set of URLs, suitable for pasting into a download manager such as the ones listed at http://www.snapfiles.com/software/downloader/down.html, or into command-line tools.

When automating with Python, the original symbol or filename is recoverable from the Content-Disposition HTTP header, for example Content-Disposition: attachment; filename=AAPL.txt. With wget, saving the plain-text link list to disk and pointing wget at it preserves the server-side filenames:

wget --content-disposition --trust-server-names -P "C:\Temp" -i "C:\Temp\links.txt"

The FAQ recommends wget for unattended bulk transfers because it resumes interrupted downloads, runs silently in the background, and avoids browser timeouts. Full installation guidance for Windows, Linux, and macOS lives at Installing wget for Kibot downloads.

Two limits apply to all of these paths. Kibot does not cap total volume but does monitor parallel connections, and all requests must come from a single IP address; running multiple Agent instances or opening too many simultaneous API connections can trigger security measures and temporarily disable downloads. Five concurrent connections is the recommended ceiling, and the FAQ notes that writing many files in parallel to the same storage device, HDD, SSD, or NVMe, actually slows things down through head seeking or controller-level contention.

Updating existing files

Updating an existing on-disk dataset is described as deliberately simple. Kibot Agent can schedule and automate the download tasks. From the FTP side, launching the self-extracting archive triggers the Kibot Updater tool, which automatically merges the new bars into the existing files. The Updater also exposes a command-line mode for unattended pipelines.

Tick data updates

Tick data and any non-default interval are not bundled into the standard subscription, only minute and daily intervals are. Tick history, deeper history, or other intervals must be purchased separately as one-time additions, and importantly the basic subscription price does not change as more data is added to the account. Updating tick data is fully supported, but with one delivery-channel exception: the FTP server does not store tick files because of their size. Tick updates therefore have to come from the API, from direct download links on the website, or through Kibot Agent.

Pricing

The data update service is billed monthly. Every one-time data purchase includes free updates for one year on a set schedule (see Purchase update schedule below), so a buyer who only needs occasional refreshes does not have to subscribe at all. Customers who need higher cadence can subscribe to the monthly update service at any time, and the Premium tier adds Kibot API access plus daily, weekly, and monthly updates. Current pricing lives in the Subscription tiers section below.

Purchase update schedule

A one-time purchase delivers your full historical range immediately, updated daily for the first 45 days. For the rest of the first year, the data is refreshed quarterly, at 3, 6, and 9 months after the purchase date. After one year the data stays available and downloadable, current through the last quarterly refresh (9 months after purchase). Any new purchase restarts this schedule for the whole account, so a small add-on order returns everything you own to daily updates for another 45 days.

An important framing point: Kibot sells historical data, not a live feed. The FAQ is explicit that no real-time or streaming product is offered, the fastest refresh any subscription can deliver is daily, and intraday prices flowing into Premium are delayed by thirty minutes during the regular trading session. Customers who need real-time quotes need a separate broker feed.

Subscription tiers

Kibot exposes five subscription levels that differ along three axes: update cadence, how much intraday history the subscription carries (separate from the one-time purchase archive), and whether API or FTP access is included. Daily and end-of-day history is always up to the same ceiling, up to 64 years of EOD data per the published Updates copy, regardless of tier; what varies is how recent the intraday minute data is kept and how quickly updates land. Prices below are as listed on the subscriptions page at the time of ingest.

Update cadence sets how current your intraday and tick data is kept. Daily plans (Premium, Professional) carry intraday data through the last completed trading day. Weekly plans (Standard) carry it through the most recent completed week, which unlocks Saturday at 4 PM ET. Monthly plans (Basic) carry it through the last month-end. Two rules apply across every tier: daily and end-of-day bar data is always fully current for every account, since the cadence applies only to intraday and tick data; and when a purchase and a subscription both cover the same data, whichever gives you fresher data wins. Because data always ends on a trading day, a cutoff that lands on a weekend or holiday resolves to the prior trading day.

Premium, $139/month

Daily updates for all intraday and EOD files, four years of rolling 1-minute (and higher-interval) intraday history across stocks, ETFs, futures, and forex, up to 64 years of EOD history, three parallel data sets (unadjusted, split-adjusted, and fully adjusted for splits and dividends), and full access to the Kibot API including snapshot quotes for up to 100 symbols at a time across stocks, ETFs, and indexes. Delayed intraday prices (30-minute delay during the regular session) are included. Updates are also published as downloadable daily, weekly, and monthly archives over FTP so that a missed daily run can be caught up from the next weekly or monthly bundle. Premium is the only tier that bundles live API access for the full interval range.

Professional, $69/month

Daily, weekly, and monthly updates for both intraday and EOD files, two years of rolling intraday history, up to 64 years of EOD history across all four instrument classes, the three adjustment variants, FTP archives for all three cadences, and API access restricted to end-of-day data. This is the step down from Premium for customers who do not need sub-daily API access but still want fresh daily intraday files.

Standard, $49/month

Weekly and monthly updates for intraday files combined with daily updates for EOD files, intraday stays on a weekly cadence while EOD refreshes every trading day. One year of rolling intraday history, up to 64 years of EOD, the three adjustment variants, FTP archives for weekly and monthly cadences, and API access for end-of-day data only. Suits customers who trade on EOD signals but occasionally want current-week minute bars for context.

Basic, $24/month

Monthly updates for intraday files, daily updates for EOD files. Six months of rolling intraday history, up to 64 years of EOD, three adjustment variants, FTP archives for monthly updates, and EOD-only API access. Designed for research workflows that only need a fresh monthly snapshot of minute data plus continuously-refreshed daily bars.

EOD, $14/month

The smallest subscription. Daily EOD updates for all stocks, ETFs, futures, and forex, up to 64 years of EOD history, all three adjustment variants, FTP archives on daily, weekly, and monthly cadences, and API access for EOD data. Intraday refreshes are not included, customers who buy tick or minute data at the EOD tier manage those archives by one-time purchase plus the free quarterly updates that ship with every package.

What every tier shares

Every subscription, regardless of level, includes automation via Kibot Agent, direct download links updated at the subscription's refresh cadence, downloadable FTP archives, and full access to any tick, bid/ask, minute, or daily data purchased separately from the Buy page. Tick history is always a separate one-time purchase; subscription tier controls update cadence and intraday recency but never gates access to already-paid instruments.

Key Takeaways

  • Four delivery channels run in parallel: account download links, Kibot Agent, FTP, and the API, the same updates land in each.
  • Subscriptions renew every 30 days from the original order date, not on calendar boundaries.
  • FTP archives are RAR-compressed and updates are ready before 8 AM ET; Tuesday morning is the safest window for weekly and full archives.
  • The Kibot API is part of the Premium tier; a free guest account exists for testing.
  • Tick data is sold separately from the standard subscription and is not delivered over FTP, only via API, direct links, or Kibot Agent.
  • Every one-time purchase is updated daily for 45 days, then quarterly at 3, 6, and 9 months, then stays downloadable current through the 9-month refresh; any new purchase restarts the schedule account-wide.
  • Daily and end-of-day bars are always fully current for every account; cadence applies only to intraday and tick data, and the fresher of a purchase or subscription always wins.
  • All requests must come from a single IP and concurrent connections should stay at or below five to avoid triggering security throttles.
  • Fastspring payment, how the recurring subscription is actually billed.
  • Kibot company, the vendor providing the data and the tools.
  • Data format reference, the on-disk file format that all four channels deliver.
  • Kibot Agent, the free desktop tool that automates the daily download.
  • Kibot Updater, the legacy updater still supported alongside Agent.
  • wget install, scripting downloads with the standard command-line client.
  • API overview, the REST-style channel that pulls the same updates programmatically.