← back to Professional Directory
scripts/download_npi_bulk.sh
32 lines
#!/usr/bin/env bash
# Download the latest NPPES NPI Registry monthly bulk file.
# Free, public-domain data, no key. ~7-8 GB zipped, ~30 GB extracted (CSV).
#
# Usage:
# bash scripts/download_npi_bulk.sh [MonthYear]
# bash scripts/download_npi_bulk.sh April_2026
#
# After download:
# unzip -d data/nppes/ data/nppes/NPPES_Data_Dissemination_*.zip
# npm run ingest:npi # streams the npidata_pfile_*.csv
set -euo pipefail
MONTH_YEAR="${1:-April_2026}"
URL="https://download.cms.gov/nppes/NPPES_Data_Dissemination_${MONTH_YEAR}_V2.zip"
DEST_DIR="$(cd "$(dirname "$0")/.." && pwd)/data/nppes"
DEST="$DEST_DIR/NPPES_Data_Dissemination_${MONTH_YEAR}_V2.zip"
mkdir -p "$DEST_DIR"
echo "[npi-dl] URL = $URL"
echo "[npi-dl] dest = $DEST"
# Resume-friendly download
curl -L -C - --retry 5 --retry-delay 30 \
--output "$DEST" \
"$URL"
echo "[npi-dl] downloaded: $(du -sh "$DEST" | cut -f1)"
echo "[npi-dl] next: unzip -d $DEST_DIR $DEST"