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, 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
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)
API tokens can be used to authenticate calls to the CSV API over Basic . This is useful for downloading data from private databases.