Extract limit
The Extract limit option in the Start run modal caps the number of rows pulled from the source for each resource type. It is the simplest way to sample a source before committing to a full extract — useful for iterating on mappings, previewing cost, or smoke-testing a fresh source connection.
Setting the limit
In the Start run modal, with Extract in the phase set, an Extract limit input appears next to the other run options. Leave it blank to pull everything (the default). Enter a positive number to cap each resource type at that many rows.
The footer summary shows a limit N/resource badge whenever a limit is
in effect, so you can confirm at a glance before clicking Start.
What the cap applies to
- Per resource type. A limit of
100on a run scoped to products, customers, and orders pulls up to 100 of each — not 100 in total. The count is independent for each resource because each one is its own run item. - Primary endpoint only. Auxiliary lookup endpoints (for example, the list of countries on a Magento store) are still fetched in full. Transform and load assume that lookup data is complete, so capping auxiliaries risks unrelated failures during the rest of the pipeline.
- Successful upserts. Rows that the source returns without an identifier are skipped (a known quirk on some platforms) and do not count against the cap. The number you enter is the number of usable sample rows you receive.
When to use it
Mapping iteration. Pull a small slice of products, run transform against it, refine your JSONata, repeat. You shrink the “extract → transform → preview” loop from minutes to seconds without having to re-extract a full catalog every time you tweak the mapping.
Pre-flight cost preview. Run a small extract + transform + load to confirm that your destination Shopify shop accepts the output before running a paid full migration. The Monitoring → Run costs page shows what the sample actually billed.
Smoke test a new source. When you first connect a new platform,
extract 10 of each resource to verify credentials, pagination, and the
shape of raw_data before paying for a full pull.
The extract limit is a per-run setting. It is not stored on the migration; the next run starts unlimited again unless you set the field a second time. Your last value is remembered in the modal’s “pre-filled from your last run” helper.
What the cap does not do
The limit is not a Shopify-side cap. If you run a full extract → transform → load with a limit of 100, you load the transformed payloads of those 100 records into Shopify — they are real Shopify writes and count toward your billed records. To preview without touching Shopify, combine the extract limit with Dry run.
The limit does not affect resource scope — they are independent. A run scoped to products with a limit of 50 pulls up to 50 products and nothing else.