CLI
@rocketverifier/cli 1.1.0: verify emails, run bulk jobs, upload files with a free list-health preview and pull results from your terminal, shell scripts or CI pipelines.
Install & Authenticate
npx @rocketverifier/cli verify hello@example.com # without installing
npm install -g @rocketverifier/clirocketverifier config set-key rv_live_xxxxxxxxxxxxxxxx # saved to ~/.rocketverifier/config.json (chmod 600)
# or per command / in CI
rocketverifier verify hello@example.com --api-key rv_live_xxxx
export ROCKETVERIFIER_API_KEY=rv_live_xxxxVerify a Single Email
rocketverifier verify hello@example.com
# hello@example.com ✓ deliverable
# reason: accepted_email
# score: 98
# disposable: no
# free: no
# accept-all: no
# role: no
# verified at: 2026-10-15T12:00:00+00:00When there is a more specific reason it is shown as sub-status (e.g. mailbox_not_found, possible_typo, catch_all), with the catch-all send verdict (send_safe / send_with_caution / avoid) and did you mean for typos.
Bulk Jobs
rocketverifier bulk create a@example.com b@example.com --name "Launch list"
rocketverifier bulk create --file leads.csv --name "Q3 leads" # .csv or .txt
rocketverifier bulk create --file leads.csv --wait # block until finished, print a summarybulk create sends the addresses as JSON (POST /v1/verify/bulk, up to 100,000 unique emails) with an automatic Idempotency-Key, so a retried command never charges twice.
Upload a File (with a Free Preview)
# CSV / TSV / TXT / XLSX up to 50 MB; pick the email column by header or index
rocketverifier bulk upload contacts.xlsx --email-column "Work Email" --preview --wait
# ...or let the API fetch it from a public HTTPS URL
rocketverifier bulk upload https://files.example.com/list.csv --preview
# Review the estimate (bounce rate, credits needed), then start it
rocketverifier bulk preview job_abc123 --wait # --refresh recomputes it
rocketverifier bulk confirm job_abc123bulk upload uses POST /v1/verify/bulk/upload (multipart for a file, source_url for an https:// argument). Without --preview the job is charged and started as soon as the file is ingested, and --wait blocks until it finishes. Other options: --column-mapping '{"email":"Work Email"}', --name, --callback-url.
Status, Progress & Results
rocketverifier jobs list --status completed
rocketverifier bulk status job_abc123
rocketverifier jobs progress job_abc123 # counts by status, rate and ETA
rocketverifier bulk results job_abc123 --classification valid --limit 1000 --page 2
rocketverifier bulk download job_abc123 --format csv --output results.csv
rocketverifier bulk download job_abc123 --filter send_safe --output safe.csv
rocketverifier bulk download job_abc123 --include-original --output joined.csv
rocketverifier jobs cancel job_abc123jobs progressreadsGET /v1/jobs/{id}/progress.bulk downloadwrites the full result file of a completed job verbatim.--filterkeeps onlydeliverable,undeliverable,risky,unknownorsend_saferows;--include-original(upload jobs) returns your columns followed byrv_status,rv_sub_status,rv_score, ... (see Download Results).bulk resultsis paginated (--limitmax 1000) and shows asub_statuscolumn.
Scripting & CI
rocketverifier credits
rocketverifier verify hello@example.com --json | jq -r '.status' # deliverable|undeliverable|risky|unknown
rocketverifier verify hello@example.com --json | jq -r '.domain.disposable' # "yes" or "no" (a string)
rocketverifier config show # resolved config (key redacted)
rocketverifier config set-base-url # override the API base URLEvery command accepts --json. Any API error exits non-zero, so the CLI can gate a pipeline. Rate-limited requests (429) are retried up to twice, honouring Retry-After. Use a sandbox key (rv_test_...) while developing.
