There are several ways to load data into LUSID's numerous storage options. Some are more suited to bulk loading data than others.

Note: When you load data into LUSID there may be a small propagation delay before it can be retrieved unless you specify the recorded asAt datetime of the upsert operation when you make a List* API call (or equivalent).


The LUSID REST API has an upsert model for entities. For example, the UpsertTransactions API:

  • Updates an existing transaction if it exists, or
  • Creates a new one if it does not.

LUSID does not have separate update and insert APIs.

Note that the REST API has restrictions on:

  • The number of entities you can upsert per API call. You must batch calls if you need to upsert more than an endpoint's maximum:
    Upsert APIMaximum # entities per call
    All other upsert APIs1
  • The quality and quantity of data you can supply for entity fields.
  • The number of API calls you can make in total per minute. By default, you are rate-limited to 1000 API calls per 60 second window.

The alternatives to the REST API below might be better suited to bulk loading data into LUSID.


The LUSID SDK is available in 5 programming languages and frameworks (Python, C#, Java, JavaScript and Angular) and provides a convenient wrapper around the REST API. 

You may prefer to use an SDK over Luminesce (see below) if your environment is suited to manipulating data using one of the languages/frameworks listed above rather than SQL.

LUSID Python Tools

LUSID Python Tools (LPT) is a wrapper around the Python LUSID SDK (above), with tooling for loading of Pandas DataFrames, CSV files and Excel files.

Reasons to prefer using LPT over the LUSID SDK to bulk load data include:

  • Your preferred language for manipulating data is Python.
  • LPT handles batching automatically.
  • LPT makes asynchronous calls to improve performance.
  • LPT streamlines the process of creating properties for entities if they do not already exist.


Luminesce is LUSID's data virtualisation engine and is optimised for the bulk loading data in the following formats and storage locations into LUSID:

  • CSV, Excel, SQLite, XML, Parquet and plain text files stored in Drive, LUSID's file repository and manager. More information.
  • Relational data stored in MySql, Odbc, Oracle, PostgreSql, SqLite, SqlServer, GoogleBigQuery or AwsAthena SQL-compatible databases. More information.
  • CSV, Excel, SQLite, XML, Parquet and plain text files stored locally, in a NAS or similar device. More information.
  • CSV, Excel, SQLite, XML, Parquet and plain text files hosted on a SFTP server. More information.
  • CSV, Excel, SQLite, XML, Parquet and plain text files stored in AWS S3. More information coming soon.
  • Snowflake. More information coming soon.

Reasons to use Luminesce include:

  • Your data exists in the storage locations and data formats listed above.
  • Your preferred language for manipulating data is SQL.
  • Luminesce handles batching automatically.

For a demonstration of Luminesce please reach out to your FINBOURNE representative.


Horizon is FINBOURNE's partnership program for industry-leading data vendors and service providers. It consists of utilities optimised for the bulk loading of subscription data into LUSID.

Utilities for Copp Clark market holiday data and SIX Flex instrument and quote data are available now, with many more coming soon.

For more information please reach out to your FINBOURNE representative.