Have questions? Leave your message here or Schedule a quick call with our manager now

Using Batch Operations and Pagination for High-Volume eCommerce Data Sync

Updated 2 July 2026 | Yuriy Klymyk

Summary: API2Cart provides batch methods (product.update.batch, product.add.batch, order.shipment.add.batch) for processing multiple records in one request. Combined with pagination (count + start parameters) and date filters (modified_from), this enables efficient sync for stores with thousands of products.

When your application manages hundreds or thousands of products and orders across multiple stores, making individual API calls for each record becomes impractical. API2Cart provides batch operations that let you process multiple records in a single request, dramatically improving sync performance.

Available Batch Methods

API2Cart supports batch operations for the most common high-volume tasks:

  • product.add.batch — create multiple products at once
  • product.update.batch — update multiple products (price, quantity, status)
  • product.delete.batch — remove multiple products
  • product.variant.add.batch — create variants in bulk
  • product.variant.update.batch — update variant data in bulk
  • category.add.batch — create multiple categories
  • category.delete.batch — remove multiple categories
  • order.shipment.add.batch — add tracking to multiple orders at once

How Batch Operations Work

Batch methods accept an array of records and process them as a single job. The response indicates which records succeeded and which failed, with specific error details per item.

Example — updating prices and quantities for multiple products:

POST https://api.api2cart.com/v1.1/product.update.batch.json?api_key=YOUR_KEY&store_key=STORE_KEY

The request body contains the array of products to update, each with their ID and the fields to change.

Tracking Batch Job Results

For larger batch operations, API2Cart processes them asynchronously. Use these methods to track progress:

  • batch.job.list — view all batch jobs and their status
  • batch.job.result — get detailed results for a completed job (success/failure per record)

This lets your application submit a batch, continue with other work, and check back for results. You can also set up a webhook for batch.job completion to get notified automatically when processing finishes, instead of polling.

Pagination for Large Data Sets

When reading data, API2Cart supports pagination to handle stores with thousands of products or orders:

GET https://api.api2cart.com/v1.1/product.list.json?api_key=YOUR_KEY&store_key=STORE_KEY&count=200&start=0
  • count — number of records per page (up to 250)
  • start — offset for pagination

Use product.count or order.count first to determine the total number of records, then paginate through all pages.

Filtering to Reduce Data Volume

Instead of fetching all records and filtering locally, use API-level filters:

  • modified_from / modified_to — only get records changed within a time range
  • created_from / created_to — filter by creation date
  • response_fields — request only the fields you need, reducing response size. See response fields filtering documentation

Combining date filters with pagination gives you an efficient incremental sync pattern: on each run, only fetch records modified since your last sync timestamp.

High-Volume Sync Pattern

  1. Record the current timestamp before starting
  2. Use product.list with modified_from set to your last sync time
  3. Paginate through all changed records
  4. Process changes in your system
  5. Push updates back using product.update.batch
  6. Store the timestamp for the next run

Detailed Documentation

For more information on batch operations and data filtering, see these guides:

All batch operations API methods work consistently across 70+ supported platforms. See the API2Cart documentation for the full parameter reference.

Frequently Asked Questions

How many records can I process in one batch call?

Batch size limits depend on the specific method and data volume. Use batch.job.list and batch.job.result to track the status and results of batch operations.

What is the best way to do incremental sync?

Use the modified_from parameter set to your last sync timestamp. This returns only records that changed since your previous run, minimizing data transfer and processing time.

How do I handle pagination for large catalogs?

First call product.count to get the total, then iterate using count (page size, up to 250) and start (offset) parameters until all records are retrieved.

Related Articles