Log In

Adding assets to project

You can add assets located on:


For information on how to add assets located on your local servers, refer to Adding assets located on premise.

Adding video assets

For video data, Kili Technology lets you decide if you want to import your data as native video and annotate them as video or extract the video into a list of images (frames) and annotate them as individual images. For more information, refer to Labeling video assets.


You can also add assets programmatically.

For information on adding assets through Kili SDK , refer to our example recipe:

Or follow examples in our Python SDK Github repo.

For information on how to add assets through the Kili CLI, refer to CLI reference.


  • The maximum number of assets in a project is 25,000.If you need more, contact us at [email protected].
  • For video projects, to have a smooth interface, work on videos with less than 1,000 frames

Adding rich text assets

Importing rich text is currently only supported through the Kili API. Refer to an example tutorial.

Adding assets from your local workstation

  1. (Optional) If you are adding assets to an existing project, go to Settings page and select Add assets.
  2. Select Hosted by Kili.
  3. Drag & drop your asset files. Use one asset per file, max 500 files per batch.

Your data will be securely stored in a dedicated bucket on our cloud. Only you have access to it.

Adding assets from the Web

Go to your project and then:

  1. (Optional) If you are adding assets to an existing project, go to Settings page and select Add assets.
  2. Select From remote storage.
  3. Drag & drop the CSV file with URLs of the assets. Refer to Required CSV file format.

Your data remains hosted at its origin. No data is stored on Kili servers.

Required CSV file format

Create a CSV file with two columns: externald and url. Use one asset per line. Refer to this example:


Adding assets located on premise

The data will be streamed through the web browser and only available within your internal network.
If you are planning to use data located on your hard disk, for security reasons, you must use HTTPS with certificates certified by an authority. This means that you need a DNS which points to your files served locally. Follow this process:

  1. Set up your DNS.
  2. Generate a certificate.
  3. Create your server.
  4. Create a CSV file containing the URLs to the data you want to serve. Refer to Required CSV file format.
  5. Use the CSV file to add assets to your project. Refer to Adding assets from the Web.


  • If the local server is down, you will lose access to your data while using Kili Technology.
  • To provide external users access to the data and to set up localhost as your file server, it's necessary to display your localhost on the Internet. Follow this tutorial: Exposing localhost server to the Internet.
  • For security reasons, we avoid mixed content and enforce assets to be served over HTTPS (not HTTP). So all asset URLs must begin with <https://>.

Setting up your DNS

Setting up your DNS depends on the service that you use. For example, if you use Wordpress, from the <> page, create a domain name that points to your file server. The example domain that we will be using is:

Generating a certificate

Follow this procedure to generate a certificate that is signed by an authority:

  1. Run the following command:
certbot -d --manual --logs-dir certbot --config-dir certbot --work-dir certbot --preferred-challenges dns certonly


If certbot is missing, you can add it using your system's package manager.

  1. When prompted, add an email address.
    A message appears, listing the value that you must add to the subdomain:
Please deploy a DNS TXT record under the name:
with the following value:
  1. Log into your DNS provider and add the <example-value> to the provided subdomain. In our example, we're using

  2. Press Enter. Two files are created: fullchain.pem and privkey.pem.

Creating your server

Create a local server and add your files to it.

Here is an example of how to create a local server using python:

import ssl, os
from http.server import HTTPServer, SimpleHTTPRequestHandler
class Handler(SimpleHTTPRequestHandler):
    def send_response(self, *args, **kwargs):
        SimpleHTTPRequestHandler.send_response(self, *args, **kwargs)
        self.send_header('Access-Control-Allow-Origin', '*')
port = 443
httpd = HTTPServer(('', port), Handler)
httpd.socket = ssl.wrap_socket(httpd.socket, keyfile='privkey.pem', certfile='fullchain.pem', server_side=True)
print("Server running")

Save this code as and place it in the same folder as fullchain.pem and privkey.pem. Then, run your server using the sudo python command.

Did this page help you?