What You Can Migrate
Products & Pricing
Customers
Discount Codes
License Keys
Install the Tool
Run a Migration
Choose the command for your current provider:- Lemon Squeezy
- Stripe
- Polar.sh
- Paddle
- Your provider’s API key
- Your Dodo Payments API key
- Whether to test first or go live
- Which Dodo Payments brand to migrate to
- Which data to migrate (products, customers, discounts, license keys)
Non-Interactive Mode
To skip the prompts, pass values as flags.--mode takes test_mode or live_mode. Use a Dodo Payments API key created in the same mode. If you omit --dodo-brand-id, the tool lists your brands and asks you to pick one.
The flag that selects what to migrate is --types for Lemon Squeezy and --migrate-types for the other providers. If you omit it, the tool asks you to choose. When no terminal is attached, Paddle migrates only products and Polar.sh migrates products and discounts.
- Lemon Squeezy
- Stripe
- Polar.sh
- Paddle
License Key Migration
License keys can be migrated from Polar.sh and Lemon Squeezy. When you select license keys in the interactive prompt, or passlicense_keys in --types (Lemon Squeezy) or --migrate-types (Polar.sh), the tool imports your existing keys with the correct customer and product associations.
What Migrates
- License key strings
- Activation limits
- Expiration dates
- Customer and product associations
What Doesn’t Migrate
- License key activations — customers must re-activate on their devices after migration.
- Revoked or disabled keys — only active keys are migrated.
- Keys without a matching product or customer are skipped with a warning.
Get Help
- Tool help:
dodo-migrate --help - Provider-specific help:
dodo-migrate lemonsqueezy --help(orstripe,polar,paddle) - Community: Discord
- Report issues: GitHub