Refgrow CLI
Manage your Refgrow affiliate program from the command line. Wraps the public REST API v1 so shell scripts, cron jobs, and CI pipelines can do anything the dashboard does.
Install
npm install -g refgrowOr one-shot via npx, no install needed:
npx refgrow affiliates listAuthenticate
refgrow loginYou will be prompted for an API key. Generate one at Settings → API Keys. The key is saved to ~/.refgrowrc with mode 600.
Alternatives, evaluated in this order:
--api-key <key>flag — one-shot use, handy in CI where you keep the key in a secret store.REFGROW_API_KEYenvironment variable.~/.refgrowrcfromrefgrow login.
Verify the current setup:
refgrow whoamiConnect your coding agent
npx refgrow setupRun it in your project. It checks the API key (asking for one if none is saved), then sets up Claude Code, Cursor and Codex — the ones it finds on your machine, or the ones you name with --agent claude,cursor,codex:
| Agent | MCP server (holds the API key, per user) | Skill (in the project, no secrets) |
|---|---|---|
| Claude Code | claude mcp add, local scope (this project only) | .claude/skills/integrate-refgrow/SKILL.md |
| Cursor | ~/.cursor/mcp.json | .agents/skills/integrate-refgrow/SKILL.md |
| Codex | ~/.codex/config.toml | .agents/skills/integrate-refgrow/SKILL.md |
Then ask the agent to "Integrate Refgrow". The skill has it read your integration status, install the tracking script, pass the referral code to checkout (Stripe, LemonSqueezy, Paddle, Polar or Dodo), and prove attribution with a dry-run Stripe test sale that creates no conversions or commissions. Commit the skill files so your teammates' agents get them too.
Options: --dir <path> (default: the git root), --no-mcp (skill only), --dry-run, -y. Running it again updates the key and the skill and leaves the rest of your configs alone.
Commands
Affiliates
refgrow affiliates list [--status active|inactive] [--limit 100] [--page 1] [--all]
refgrow affiliates get <email>
refgrow affiliates create <email> [--code XYZ] [--partner-slug s] \
[--payment-method "USDT TRC-20"] [--payment-details "0xabc..."]
refgrow affiliates update <email> [--email new@x.com] [--code NEW] \
[--status active|inactive] [--payout-method paypal|wise|manual] \
[--paypal-email e] [--payment-method m] [--payment-details d]
refgrow affiliates delete <email> [--yes]Referrals
refgrow referrals list [--all]
refgrow referrals get <email>
refgrow referrals create <email> --affiliate-id 123 [--status active]
refgrow referrals update <email> [--email new@x.com] [--affiliate-id 456] [--status s]
refgrow referrals delete <email> [--yes]Conversions
refgrow conversions list [--type signup|purchase] [--all]
refgrow conversions get <id>
refgrow conversions create --email x@y.com --type purchase --value 100 \
[--currency USD] [--affiliate-code CODE] [--reference ord_xyz]
refgrow conversions update <id> [--value 200] [--type signup|purchase] [--reference ref] \
[--coupon-code CODE] [--paid] [--unpaid]
refgrow conversions delete <id> [--yes]Coupons
refgrow coupons list [--affiliate-id 123] [--coupon-code XYZ] [--all]
refgrow coupons get <id>
refgrow coupons create --affiliate-id 123 --code XYZ20
refgrow coupons update <id> [--code NEW] [--status active|inactive]
refgrow coupons delete <id> [--yes]Output formats
By default, list commands print a pretty aligned table and get prints key-value pairs. Override the format with:
--json— raw JSON, pipe-friendly withjq.--csv— CSV with header row.--quiet— drop headers and decorations, useful in shell loops.--no-color— disable ANSI colors. Auto-disabled when stdout is not a TTY.
Examples
Export every affiliate to a CSV file:
refgrow affiliates list --all --csv > affiliates.csvBulk-mark a list of conversion ids as paid:
cat conversion-ids.txt | while read id; do
refgrow conversions update "$id" --paid
doneRecord a manual conversion from a Stripe charge inside a webhook handler:
refgrow conversions create \
--email "$EMAIL" \
--type purchase \
--value "$AMOUNT" \
--currency USD \
--reference "$STRIPE_CHARGE_ID"Pipe into jq to find a referral's source affiliate:
refgrow referrals get user@example.com --json | jq '.affiliate_email'Exit codes
0— success1— user error (no API key configured, invalid flag)2— API error (4xx / 5xx response or network failure)
Which surface should I use?
| Surface | Best for |
|---|---|
| CLI (this page) | Shell scripts, cron jobs, CI, ad-hoc queries |
| MCP server | AI assistants (Claude Desktop, Cursor, etc.) |
| REST API | Custom backend integrations |
| Zapier / Make / n8n | No-code automation flows |
Support
Bug reports and feature requests: support@refgrow.com, or the chat widget in the bottom-right corner of any page on refgrow.com.