In this quickstart, we will walk through how to upload a CSV file to Dune via Python.

Prerequisites

Save your Dune API key in a .env file.

DUNE_API_KEY=<paste your API key here>

Upload the CSV

Follow below steps to upload your CSV. Please make sure to modify paths to your .env file and to your CSV file.

import dotenv, os
from dune_client.client import DuneClient

# change the current working directory where .env file lives
os.chdir("/Users/abc/project")
# load .env file
dotenv.load_dotenv(".env")
# setup Dune Python client
dune = DuneClient.from_env()

# define path to your CSV file 
csv_file_path = '<CSV_FILE_PATH>'

with open(csv_file_path) as open_file:
    data = open_file.read()

    table = dune.upload_csv(
        data=str(data),
        description="Data about 80 cereals, sourced from https://www.kaggle.com/datasets/crawford/80-cereals",
        table_name="cereal_table", # define your table name here
        is_private=False
    )

Once the upload is successful, you will see the data show up under Your Data in the Data Explorer.

You can query your uploaded table under the name dune.<team or user handle>.dataset_<table name defined>. For example, here I defined the table name to be “cereal_table” and my team name is “dune”, so to access the uploaded table we will do select * from dune.dune.dataset_cereal_table

For more information on upload endpoint, please visit this page.