Skip to main content

How to import a CSV or Excel file

Written by Jack

Koinly supports files from over 500 exchanges, wallets and services so you can simply download your files and import them to Koinly - without making any changes manually (in most cases)!

For example, it is important to export files correctly and keep them unedited before uploading to ensure compatibility and accuracy. For instructions which files to download for which exchange, check our integration pages:

Importing a file into a new wallet

  1. Go to the Wallets page and click on Add Wallet

  2. Search for your wallet and click on it

  3. Select the Import using file option which will take you to the file upload page

  4. Click on Browse (or drag and drop) the file into the file box

  5. Hit Import

  6. If you have more files from the same exchange, keep adding them here

Mind that:

  • If you have multiple files, you can import them one after the other - you can not drop multiple files into the file field.

  • .zip files containing .csv files can also be imported directly - you don't have to unzip them first

Importing a file into an existing wallet

  1. Go to the Wallets page

  2. Find your wallet and click on the 3 dots to bring up a small menu

  3. Click on Import file.

  4. Click on Browse (or drag and drop) the file into the file box

  5. Hit Import

Importing CSVs from Google Drive

You can also import CSV files directly from Google Drive by clicking "Upload from Google Drive":

This means that the files don't need to be locally downloaded each time before uploading them to Koinly.

Errors and common questions

Skipped rows

Koinly will often skip multiple rows during the CSV import, as these rows are not needed. For more information, see:

File is too large (over 10MB)

Koinly can accept files up to 10 MB in size. If your file is larger:

  1. Export smaller files from your exchange instead
    E.g. quarterly instead of yearly

  2. Split the file yourself

    • Open the file in a spreadsheet editor (like Excel)

    • Cut half of the transactions from the bottom of the file and paste them into a new, empty spreadsheet

    • Remember to include the header row (column names) as well

    • You can also try using some online tool to split your CSV. Search for "Split CSV online"

Can't upload from Google Drive

When you click "upload from Google Drive" you should be forwarded to Google to grant access to Koinly to your Google Drive files. If that access is blocked, it's likely due to the settings in your Google Drive.

This can happen if you accidentally clicked "No" when first prompted to give Koinly access to your Google Drive. To resolve this:

  1. Log in to your Google Account

  2. Find a list of blocked apps and remove Koinly from this list

    • Exact steps to find the blocked apps list change often. If you'r ehaving trouble finding it, refer to Google Help docs

  3. Try to upload the file from Drive again

Can I upload the same file again?

Of course. If you upload the same file again, Koinly will just skip all the already imported transactions as duplicates. See:

☝️ Duplicate detection may not work for different file formats
If you imported your transactions using one file (e.g. orders) and now importing a different file (e.g. trades) Koinly may not be able to detect duplicates. We only discard exact duplicates, while different files may not contain the exact same data (e.g. different accounting for fees). Same problem might happen if you try mixing CSVs and API data.

Can I upload data from CSV and API to the same wallet?

We do not recommend it. Our duplicate detection may not work as data from those two sources is often different.

If you really want to use both CSVs and API in the same wallet:

  1. Import data up to today using CSV

  2. Connect API using your API keys but set the Start import from date (as today)

    • This option is not available for "Continue with ..." (oAuth) connections. Use the integration with "standard" API keys instead

    • After connecting the API, do not import any CSV files anymore

Did this answer your question?