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 onceproduct.update.batch— update multiple products (price, quantity, status)product.delete.batch— remove multiple productsproduct.variant.add.batch— create variants in bulkproduct.variant.update.batch— update variant data in bulkcategory.add.batch— create multiple categoriescategory.delete.batch— remove multiple categoriesorder.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 statusbatch.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 rangecreated_from/created_to— filter by creation dateresponse_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
- Record the current timestamp before starting
- Use
product.listwithmodified_fromset to your last sync time - Paginate through all changed records
- Process changes in your system
- Push updates back using
product.update.batch - Store the timestamp for the next run
Detailed Documentation
For more information on batch operations and data filtering, see these guides:
- Response Fields Filtering — how to use
response_fieldsto control which data is returned - Recommendations for Developers — best practices for working with the API at scale
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.