Creating and running an import needs the Volume plan. Below it, every
write answers
403 with code: FEATURE_LOCKED and
details.requiredPlan: "volume" — API keys and MCP included. Reading an
import, its report and its row CSV, and cancelling, always work.Endpoints
source is gumroad, lemonsqueezy, stan or csv. kind is
products, customers, orders (purchase history) or subscribers.
Example: a Gumroad move
Dry run
How the run behaves
- Order: products, then customers, then purchase history (matched to the products by source id or name), then subscribers.
- Idempotent: products match on the platform’s product id or the name, customers and subscribers on the email, purchases on the platform’s order id (or a stable hash of the row). Nothing is created twice.
- Resumable: the run holds a lease and renews it per batch; if it stops,
the sweep resumes it within a minute from the first row not yet done.
starton afailedorcanceledimport imports the rest. - Existing data wins: a product, customer or subscriber you already have is skipped, never overwritten. A subscriber’s status is never changed.
- Consent: each imported subscriber carries
consent(sourcesuch asgumroad_csvorlemonsqueezy_api, the platform’s wording, the opt-in date). Statuses without consent (archived,requires_verification, unknown) are left out;unsubscribed/bouncedare imported with that status. Addresses on the bounce / spam complaint list are left out. - Files: product files download from public
https://links only (no private addresses, re-checked on every redirect), up to your plan’s upload size, for deliverable file types only. Otherwise the product is markedfileNeededwith the reason in the report.
White-glove imports
Our team can run the import for a Volume creator from the admin dashboard. Those imports show up inGET /migrations with createdBy.type: "admin"
and work exactly like yours.
MCP
list_import_platforms, list_import_jobs, create_import_job,
get_import_job, add_import_file, update_import_mapping,
list_import_rows, connect_import_account, dry_run_import_job,
start_import_job, cancel_import_job, get_import_report.