Dodo Migrate is a CLI tool designed to help you safely and efficiently migrate your data from popular payment providers into Dodo Payments. Whether you're moving products, customers, or discount codes, Dodo Migrate guides you through a secure, auditable, and repeatable migration process with interactive prompts and sensible defaults.
Note: This tool is currently in Beta and may contain bugs. If you encounter any issues, please inform us promptly. Additionally, after the migration is completed, kindly verify the product information to ensure it has been migrated accurately as it was previously. Should you identify any discrepancies, kindly report them via our Discord or GitHub issues.
Supported providers:
- Lemon Squeezy
- Stripe
- Polar.sh
- Paddle
- Gumroad
- 2Checkout
- FastSpring
Supported models:
- Products
- Discount codes
- Customers
- Features
- Requirements
- Install
- Quick start
- CLI reference
- Providers
- Examples
- Update / Uninstall
- Roadmap
- Contributing
- License
- Safe, confirm-before-write migration flow
- Interactive prompts with sensible defaults
- Works with Dodo Payments test or live environments
- Incremental, repeatable runs
- Node.js ≥ 18 (for native
fetchused by the CLI) - Provider API key and Dodo Payments API key
npm i -g dodo-migrate
Migrate from Lemon Squeezy to Dodo Payments:
dodo-migrate lemonsqueezy
Migrate from Stripe to Dodo Payments:
dodo-migrate stripe
Migrate from Polar.sh to Dodo Payments:
dodo-migrate polar
Migrate from Paddle to Dodo Payments:
dodo-migrate paddle
You'll be prompted for any missing inputs (API keys, brand selection, environment).
Global usage:
dodo-migrate <provider> [options]
Options (all optional; interactive prompts will fill in when omitted):
| option | values | description |
|---|---|---|
--provider-api-key |
string | Provider API key (e.g., Lemon Squeezy) |
--dodo-api-key |
string | Dodo Payments API key |
--mode |
test_mode / live_mode |
Dodo Payments environment (default: test_mode) |
--dodo-brand-id |
string | Target Dodo Payments brand ID |
Helpful commands:
dodo-migrate --help
dodo-migrate lemonsqueezy --help
Detailed, provider-specific docs:
- Lemon Squeezy → Dodo Payments
- Stripe → Dodo Payments
- Polar.sh → Dodo Payments
- Paddle → Dodo Payments
- Minimal migration from Lemon Squeezy (interactive):
dodo-migrate lemonsqueezy
- Minimal migration from Stripe (interactive):
dodo-migrate stripe
- Minimal migration from Polar.sh (interactive):
dodo-migrate polar
- Minimal migration from Paddle (interactive):
dodo-migrate paddle
- Non-interactive run (all flags provided):
dodo-migrate lemonsqueezy \
--provider-api-key=lsq_XXXXXXXXXXXXXXXX \
--dodo-api-key=dp_XXXXXXXXXXXXXXXX \
--mode=test_mode \
--dodo-brand-id=brand_XXXXXX
dodo-migrate stripe \
--provider-api-key=sk_test_XXXXXXXXXXXXXXXX \
--dodo-api-key=dp_XXXXXXXXXXXXXXXX \
--mode=test_mode \
--dodo-brand-id=brand_XXXXXX \
--migrate-types=products,coupons
dodo-migrate polar \
--provider-api-key=polar_org_XXXXXXXXXXXXXXXX \
--dodo-api-key=dp_XXXXXXXXXXXXXXXX \
--mode=test_mode \
--dodo-brand-id=brand_XXXXXX \
--migrate-types=products,discounts,customers
dodo-migrate paddle \
--provider-api-key=paddle_XXXXXXXXXXXXXXXX \
--dodo-api-key=dp_XXXXXXXXXXXXXXXX \
--mode=test_mode \
--dodo-brand-id=brand_XXXXXX
npm update -g dodo-migrate
npm uninstall -g dodo-migrate
- Add more providers
- Add more data options per provider
Interested in contributing? See contributing.md for guidelines.
GPL-3.0 © Dodo Payments. See LICENSE.