CSV

DoltHub provides a CSV API for fetching table data as CSVs. You can request a CSV for an individual table or a zip of all table CSVs at a specified commit or branch.

Please make sure to send your requests to https://www.dolthub.com instead of https://dolthub.com.

Example

We will use an example DoltHub database, dolthub/us-jails and the Python requests library to explore it in the Python console.

One Table

Download the table incidents from main branch:

import requests
local_file = 'incidents_main.csv'
res = requests.get('https://www.dolthub.com/csv/dolthub/us-jails/main/incidents')
with open(local_file, 'wb') as file:
  file.write(res.content)

Download the table incidents at a commit hash:

import requests
local_file = 'incidents_commit.csv'
res = requests.get('https://www.dolthub.com/csv/dolthub/us-jails/u8s83gapv7ghnbmrtpm8q5es0dbl7lpd/incidents')
with open(local_file, 'wb') as file:
  file.write(res.content)

All Tables

Download a ZIP file of all database tables from the main branch:

import requests
local_file = 'us-jails_main.zip'
res = requests.get('https://www.dolthub.com/csv/dolthub/us-jails/main')
with open(local_file, 'wb') as file:
  file.write(res.content)

Download a ZIP file of all database tables at a commit hash:

import requests
local_file = 'us-jails_commit.zip'
res = requests.get('https://www.dolthub.com/csv/dolthub/us-jails/u8s83gapv7ghnbmrtpm8q5es0dbl7lpd')
with open(local_file, 'wb') as file:
  file.write(res.content)

Authentication

API tokens can be used to authenticate calls to the CSV API over Basic Authentication. This is useful for downloading data from private databases.

You can use the token in the header when downloading CSVs from a private database.

import requests
local_file = 'private_db_main.zip'
res = requests.get(
  'https://www.dolthub.com/csv/owner/private-db/main',
  headers={ "authorization": "token [TOKEN YOU COPIED]" },
)
with open(local_file, 'wb') as file:
    file.write(res.content)

Last updated