Credits and billing
ImportKit is free to install. Imports are paid for with credits, and one credit imports one row. There's no subscription, nothing recurring, and nothing to cancel.
What a credit is
One credit = one CSV row written to your store. “Written” means the row created something or updated something. If a row doesn't change your store, it doesn't cost anything.
That's the whole pricing model. A 500-row file where 380 rows are new and 120 already exist costs 380 credits in Skip mode.
What's charged and what isn't
| Activity | Cost |
|---|---|
| Installing the app | Free |
| Downloading templates and column guides | Free |
| Uploading a file | Free |
| Mapping columns | Free |
| The pre-import check, however many times | Free |
| A row that creates something | 1 credit |
| A row that updates something | 1 credit |
| A row skipped because it already exists | Free |
| A row reported as a conflict | Free |
| A row that errors | Refunded |
| A row interrupted mid-write (uncertain) | Refunded |
| Retrying the unprocessed rows of a job | 1 credit per row written |
| Rows already succeeded, on a retry | Never re-charged |
Net effect: an import that fails entirely costs nothing. The only rows you pay for are the ones that changed your store.
How the metering actually works
A credit is reserved immediately before each row is sent to Shopify, and released back the moment the outcome is known if the row wasn't written.
Two things follow, both useful:
- Your store can never be changed beyond what you paid for. Because the reservation happens first, there's no window where a row is written but uncharged.
- Running out is graceful. The import stops cleanly at your balance rather than half-writing something.
Every purchase, deduction and refund is a ledger entry, so your balance is auditable rather than a number that drifts.
The packs
| Pack | Credits | Price | Per row |
|---|---|---|---|
| Starter Pack | 50 | $1.99 | 4.0¢ |
| Value Pack | 250 | $7.99 | 3.2¢ |
| Pro Pack | 600 | $16.99 | 2.8¢ |
| Agency Pack | 1,500 | $34.99 | 2.3¢ |
- Prices in USD.
- Packs stack: buy several and they add to one balance.
- Credits don't expire while the app is installed.
- Credits belong to the store that bought them and aren't transferable between stores.
Pricing page, with worked examples →
Buying credits
- Open Credits in the app.
- Pick a pack.
- Approve the charge on Shopify's own confirmation screen.
- You're returned to the Credits page with the balance updated.
Purchases are one-time Shopify application charges, so they appear on your regular Shopify invoice and we never see your payment details. Grants are idempotent: a purchase can't be credited twice, however the confirmation reaches us.
Install ImportKit on a Shopify development store and practise the whole migration end to end before doing it live. A Starter Pack is enough for a rehearsal.
Reading your balance
| Figure | Meaning |
|---|---|
| Available | What you can spend right now. |
| Total purchased | Every credit you've ever bought. |
| Total used | Every credit consumed by a written row, net of refunds. |
The same summary is on the app's Home page.
Knowing the cost before you commit
Run the pre-import check. It reports “N of M rows will be written”, and N is the credit cost. It's free, and you can re-run it after every edit to your file.
Changing the conflict mode changes the number: rows that skip in Skip mode become charged updates in Update mode. Worth checking both if the difference matters.
Rough guidance when you can't run a check:
- Metafield definitions: one credit per definition. Setting up custom data is usually tens of credits, not hundreds.
- Metafield values: one credit per value per resource. Two fields on 400 products is 800 credits.
- Metaobject entries: one credit per entry.
- Blog articles: one credit per article.
Running out mid-import
The import stops cleanly at the point your balance is exhausted and reports:
Ran out of credits before all rows were imported.
Buy more credits and retry to finish.
You're charged only for rows that landed. Retry isn't offered for this case. To finish, buy a pack, then run the same file again in Skip mode: rows already in your store are skipped for free. Blog articles are the exception, since they'd be created again, so remove the article rows that already imported first.
Refunds
Row-level refunds are automatic and immediate: errored, skipped, conflicting and uncertain rows return their credit to your balance as part of processing. You don't have to ask, and there's nothing to reconcile.
For a pack refund, email support@importkitapp.com from the store in question. Packs are generally non-refundable once purchased, since credits are only consumed when work is done. We'll refund where credits were consumed because of a fault in ImportKit, or where a purchase was clearly made in error and is unused. Billing terms →
Billing questions
- Are there free credits or a trial?
- No free credits. But everything up to the moment of writing is free and unmetered, including unlimited pre-import checks, so you can validate a whole file before spending anything. The Starter Pack is $1.99.
- Is this a subscription?
- No. One-time charges only. Nothing recurs.
- Do credits expire?
- Not while the app is installed. If you uninstall, credits are kept only until Shopify's shop redaction request (normally 48 hours after uninstall), which deletes all of the store's data, credits included.
- Do I pay per store or per organisation?
- Per store. Agencies running imports for several clients buy credits on each store, and the charge lands on that store's Shopify invoice.
- Does a cancelled import waste credits?
- You're charged only for rows written before the cancel. The rest are untouched and resumable.
- What if the same row is charged twice?
- It can't be. Rows that succeeded are never revisited on a retry, and the credit ledger records every movement. If the numbers ever look wrong to you, send us the job number and we'll reconcile it.