A Python utility for downloading eDNA results from the Wilderlab API and saving them into an Excel workbook.
The script handles authentication, fetches jobs, samples, taxa, and records, and automatically splits large record tables across multiple Excel sheets if needed.
Please note, this is NOT an official WilderLab software/product. If you have any issues or questions please raise this on the Github repository.
- 🔑 Authenticates securely with Wilderlab's AWS-signed API
- 📂 Downloads:
- Jobs
- Samples
- Taxa
- Records (per job, concatenated)
- 📝 Saves everything into a single Excel workbook (
.xlsx) - 🚦 Automatically splits large record tables if they exceed Excel’s row limit (1,048,576 rows)
- ⚙️ Simple configuration at the top of the script
- Python 3.9+
- Packages:
pandasrequestsaws-requests-authxlsxwriter
Install dependencies:
pip install pandas requests aws-requests-auth xlsxwriterAt the top of wildergrab.py, adjust settings:
save_location = 'eDNA_Data_September_2025.xlsx' # output file
include_jobs = True
include_samples = True
include_taxa = True
include_records = TrueSet credentials via environment variables (recommended):
export WILDERLAB_AWS_ACCESS_KEY="your_access_key"
export WILDERLAB_AWS_SECRET_KEY="your_secret_key"
export WILDERLAB_XAPI_KEY="your_xapi_key"Alternatively, edit api_credentials() in the script with your keys.
Run the script:
python wildergrab.pyThe script will:
- Authenticate with the Wilderlab API
- Download requested tables (
jobs,samples,taxa,records) - Write results into the Excel file specified in
save_location
Example output file structure:
JobsSamplesTaxarecords(or multiple sheets:records_part1,records_part2, … if too large)
- Large record queries can take a while depending on the number of jobs.
- If no outputs are requested (all
include_*flags areFalse), the script will printNo outputs requested.
This project is distributed for internal/research use. Check Wilderlab’s API terms before sharing results.
