⌨️

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

npm
npx @rocketverifier/cli verify hello@example.com   # without installing
npm install -g @rocketverifier/cli
Authenticate
rocketverifier 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_xxxx

Verify a Single Email

Terminal
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:00

When 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

Terminal
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 summary

bulk 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)

Terminal
# 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_abc123

bulk 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

Terminal
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_abc123
  • jobs progress reads GET /v1/jobs/{id}/progress.
  • bulk download writes the full result file of a completed job verbatim. --filter keeps only deliverable, undeliverable, risky, unknown or send_safe rows; --include-original (upload jobs) returns your columns followed by rv_status, rv_sub_status, rv_score, ... (see Download Results).
  • bulk results is paginated (--limit max 1000) and shows a sub_status column.

Scripting & CI

Terminal
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 URL

Every 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.

View on npm