Data Updates and Delivery

Kibot delivers historical market data through four channels: direct download links from your account page, the free Kibot Agent desktop tool, an FTP server with compressed weekly and daily archives, and an HTTP GET historical data API. The same updates flow to each channel, so you can mix them and use whichever fits your automation. Recurring access to updates is sold separately from the data and is billed monthly through FastSpring.

How it works

Kibot Agent downloads data and schedules automatic updates. The FTP server hosts compressed update archives that you can apply with your own workflow or with the Kibot Updater tool. The API serves the same data programmatically. Direct download links to the most recent version of every file are in the My Account section of the site, along with a plain-text list of all links for third-party download managers.

Subscribing to updates

You can subscribe in two places: the update-service checkbox on the order page when you first buy data, or the standalone subscription page at any later date. Update services renew automatically every 30 days from the initial order date, not on calendar months, so signing up at the end of a month still gives you a full 30-day cycle.

What the subscription updates

A subscription refreshes everything on your account, not a separate dataset. Once you have added a one-time purchase (tick, aggregate bid/ask, higher-resolution intraday, or any other interval not in the base subscription), the active subscription delivers ongoing updates for that data on top of the base minute and daily files. This has three consequences:

  • Buy tick history once, then subscribe. There is no separate tick subscription; your existing tier covers the refresh.
  • The subscription price does not change as you add data. An account with the All Stocks tick archive plus Premium pays the same $139/month as one with only minute data on Premium.
  • Tick refreshes never come through FTP archives, whatever the tier. See Tick data updates.

Kibot Agent

Kibot Agent is Kibot's free GUI tool for downloading and updating data. It uses the Kibot API internally, so you can start and schedule downloads with a few clicks. It supports custom timezone offsets and UTC conversion when writing files. The Kibot Agent page covers features, installation, system requirements, and the Windows SmartScreen workaround.

To automate Agent from the command line:

  1. Create a scheduled task in Kibot Agent.
  2. In Windows Task Scheduler, open that task's Actions tab to see its command line.
  3. Launch Agent from your own Task Scheduler entry with those parameters.
  4. Wait for the process to exit (scheduled tasks close the program after running), or watch the end of the log file for the phrases "successfully completed the task" or "task completed on".

If the Agent process does not exit when the task finishes, select "Run only when the user is logged on" on the scheduled task. As a backstop, set "Stop the task if it runs longer than..." on the Settings tab. Always launch Agent as administrator (set this in the executable's Properties) so it has full access to the scheduled-tasks feature, the destination folder, and the files it updates.

FTP server

The FTP server stores updates as compressed RAR (Roshal Archive) files, which WinZip, WinRAR, 7-Zip, and other popular archivers can extract. FTP is used only for updates: the source files are constantly refreshed, and many are too large for the protocol to handle practically.

All updates are ready before the 9:30 AM ET market open, usually before 8 AM. Tuesday morning is the best window for weekly updates and for full archives, which are generated over the weekend. Check daily updates Tuesday through Saturday after 8 AM, and 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

API access is bundled into the Premium tier. Other subscription packages include API access to daily (end-of-day) data, and a free guest account is available for testing (daily data for US stocks and ETFs, plus a few free samples): log in as user=guest&password=guest. This request returns the last 10 days of adjusted daily data for MSFT:

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

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

Add &timezone=utc (see Timezone conversion) to receive timestamps in UTC instead of Eastern Time. This is the simplest option if you do not want to track DST transitions yourself.

API rate limits

The API has two per-server limits: up to 40 concurrent in-flight requests, and no more than 50 requests per 500 ms. Requests that exceed either limit are rejected with a 403 Login Failed response, the same response the server uses for authentication failures. Requests are distributed across multiple servers, so the effective ceiling can be higher than 40, but do not rely on that: it is easy to end up pinned to a single server, and the per-server limit governs the worst case.

Two connection rules apply to every delivery path. All requests must come from a single IP address; requests from several IPs at once can trigger security measures and temporarily block downloads. Separately, keep concurrent connections at or below five per account, shared across the API, FTP and Kibot Agent. That is a recommendation, not a hard limit. Kibot does not cap total download volume but does monitor parallel connections, and running multiple Agent instances or opening too many simultaneous API connections can trigger security measures and temporarily disable downloads.

To make the most of the API, issue one wide request per symbol per date range rather than many narrow calls. Aggregate bid/ask is the heaviest interval type on the server and is measurably slower per byte returned than tick or OHLCV. When you need many files at once, use Kibot Agent's built-in download scheduler: a hand-written parallel client gains nothing beyond what Agent already does, and it is more likely to trip the rate limiter than a single-threaded script issuing one request at a time.

Every data package in your account area has direct download links to the most recent version of each file. A "plain text format" link on the same page returns the full list of URLs, which you can paste into a download manager (for example, one from the snapfiles.com list) or into command-line tools.

When you automate with Python, you can recover the original symbol or filename from the Content-Disposition HTTP header, for example Content-Disposition: attachment; filename=AAPL.txt. With wget, save the plain-text link list to disk and point wget at it to preserve the server-side filenames:

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

We recommend wget for unattended bulk transfers because it resumes interrupted downloads, runs silently in the background, and avoids browser timeouts. Installing wget for Kibot downloads covers Windows, Linux, and macOS. The connection rules in API rate limits apply to downloads too. Writing many files in parallel to the same storage device (HDD, SSD, or NVMe) also slows downloads through head seeking or controller-level contention.

Updating existing files

Kibot Agent can schedule and automate download tasks. From the FTP side, launching the self-extracting archive starts the Kibot Updater, which merges the new bars into your existing files. The Updater also has 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. Buy tick history, deeper history, and other intervals separately as one-time additions. Tick updates are fully supported, with one exception: the FTP server does not store tick files because of their size. Get tick updates 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), so if you only need occasional refreshes you do not have to subscribe. If you need a higher cadence, subscribe to the monthly update service at any time. The Premium tier adds Kibot API access plus daily, weekly, and monthly updates. See Subscription tiers for current pricing.

Kibot sells historical data, not a live feed. There is no real-time or streaming product: the fastest refresh any subscription delivers is daily, and Premium intraday prices are delayed 30 minutes during the regular trading session. If you need real-time quotes, use a separate broker feed.

Purchase update schedule

A one-time purchase delivers your full history immediately and updates it 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. Download access lasts one year from your last purchase; after that, you need a new purchase or a subscription. Files you have downloaded are yours to keep. Any new purchase of intraday or tick data restarts this schedule for the whole account, so a small intraday add-on returns everything you own to daily updates for another 45 days. A purchase of end-of-day data alone does not restart it, because end-of-day bars are always current on every account.

Subscription tiers

Kibot has five subscription tiers. They differ in update cadence, how much rolling intraday history they carry (separate from the one-time purchase archive), and whether API access covers all intervals or end-of-day data only. Every tier covers stocks, ETFs, futures, and forex, reaches back up to 64 years for end-of-day data, and includes the three data sets: unadjusted, split-adjusted, and fully adjusted for splits and dividends.

PremiumProfessionalStandardBasicEOD
Price$139/month$69/month$49/month$24/month$14/month
Intraday and tick update cadenceDailyDailyWeeklyMonthlyQuarterly
End-of-day update cadenceDailyDailyDailyDailyDaily
Rolling intraday history4 years2 years1 year6 monthsNot included
API accessAll intervalsEnd-of-day data onlyEnd-of-day data onlyEnd-of-day data onlyEnd-of-day data only
FTP archivesDaily, weekly, monthlyDaily, weekly, monthlyWeekly, monthlyMonthlyDaily, weekly, monthly

How current your intraday and tick data is depends on the tier's cadence, which applies to intraday and tick data only:

  • Daily plans (Premium, Professional): through the last completed trading day.
  • Weekly plans (Standard): through the most recent completed week, available Saturday at 4 PM ET.
  • Monthly plans (Basic): through the last month-end.
  • EOD plan: through its most recent quarterly refresh, which is the subscription start date and every 3 months after it.

Two rules apply to every tier. Daily and end-of-day bars are always fully current for every account. When a purchase and a subscription both cover the same data, whichever gives you fresher data wins. Data always ends on a trading day, so a cutoff that falls on a weekend or holiday resolves to the prior trading day.

Tier notes

  • Premium: includes delayed intraday prices (30-minute delay during the regular session). Daily, weekly, and monthly FTP archives let you catch up a missed daily run from the next weekly or monthly bundle. Premium is the only tier with API access for the full interval range.
  • Professional: the step down from Premium if you do not need sub-daily API access but still want fresh daily intraday files.
  • Standard: intraday stays on a weekly cadence while end-of-day data refreshes every trading day. A good fit if you trade on end-of-day signals but occasionally want current-week minute bars for context.
  • Basic: for research workflows that need only a fresh monthly snapshot of minute data plus continuously refreshed daily bars.
  • EOD: the smallest subscription. Any tick, bid/ask, or minute data on the account is refreshed when the subscription starts and then every 3 months, anchored to that start date, for as long as the subscription stays active. This continues past the one year of free quarterly updates that comes with a one-time package purchase.

What every tier includes

Every subscription includes automation via Kibot Agent, direct download links updated at the subscription's refresh cadence, downloadable FTP archives, and access to any tick, bid/ask, minute, or daily data you buy separately from the Buy page. Tick history is always a separate one-time purchase; the tier sets update cadence and intraday recency but never limits access to data you have paid for.

Key Takeaways

  • Four delivery channels carry the same updates: account download links, Kibot Agent, FTP, and the API.
  • Subscriptions renew every 30 days from the original order date, not on calendar months.
  • FTP archives are RAR files and are ready before 8 AM ET; Tuesday morning is the safest window for weekly and full archives.
  • API access is part of the Premium tier; a free guest account is available for testing.
  • Tick data is sold separately from the standard subscription and is delivered only through the API, direct links, or Kibot Agent, not FTP.
  • A one-time purchase is updated daily for 45 days, then quarterly at 3, 6, and 9 months, and download access lasts one year from your last purchase. A new intraday or tick purchase restarts the schedule account-wide; an end-of-day-only purchase does not.
  • Intraday and tick update cadence is daily (Premium, Professional), weekly (Standard), monthly (Basic), or quarterly (EOD). Daily and end-of-day bars are always fully current, and the fresher of a purchase or subscription wins.
  • All requests must come from a single IP address. Keep concurrent connections at or below five per account, shared across the API, FTP and Kibot Agent. This is a recommendation, not a hard limit; the servers allow 40 requests in flight and 50 requests per 500 ms per server.