Bulk Operations for Large Catalogs
Process large product catalogs reliably today, and what to know before reaching for the older Bulk API.
Process a large catalog of products reliably. This guide covers the confirmed working approach today, pacing single-item requests within the API's rate limits, and what to know before reaching for the older Bulk API.
FLAG
This API version doesn't currently have bulk create, update, or delete endpoints. If you came here expecting a single call that processes thousands of products at once, the pattern below (single-item requests, paced to the rate limit) is the confirmed working approach today.
Prerequisites
- A bearer token. See the Quickstart guide for the authentication flow.
- The single-item read, create, and update patterns from "Syncing Your ERP with Plytix." This guide builds on those, applied at scale.
Steps
-
Know your account's rate limit before writing a processing loop.
Rate limits vary by account and are embedded in your access token's claims. Check the limit for your account with your Plytix contact if it's not otherwise documented for your plan, and build your loop to stay under it rather than hard-coding a number.
-
Page through reads instead of requesting everything at once.
curl -G "https://pim.plytix.com/api/v3/products" \ -H "Authorization: Bearer <access_token>" \ --data-urlencode "_fields=id" \ --data-urlencode "_fields=sku" \ --data-urlencode "_page_size=100"See "Exporting Your Full Catalog" for the full pagination pattern. A larger
_page_sizereduces the number of requests needed to read the whole catalog. -
Pace writes to stay under the rate limit, and back off on
429.Space out
POSTandPATCHcalls so you don't exceed your account's request limit. If a call returns429, wait before retrying rather than immediately resending, and consider slowing your loop's overall pace rather than only handling the single failed request. -
Track per-item results yourself.
Since there's no bulk endpoint returning a combined success and failure report, log each item's outcome (its ID, the status code, and any error message) as you process it. This gives you your own record of what succeeded, what failed, and why, which you'll need for step 5.
-
Retry only the items that actually failed.
Use the log from step 4 to retry failed items specifically, instead of reprocessing the whole catalog. This is the main efficiency you lose without a bulk endpoint, and the main thing to build deliberately into your own processing loop.
Before reaching for the older Bulk API
Plytix's v2 API includes a Bulk API for batch operations, but it comes with two things worth knowing before you build against it:
- It isn't available to every account. Confirm with your Plytix contact whether your account has access before planning around it.
- Partial failures aren't clearly reported. A Bulk API response doesn't reliably distinguish between an item that was skipped because nothing changed and one that failed silently, which has been a recurring point of customer feedback. If you do use it, don't assume every item not showing an explicit success actually failed; expect to verify results the same way described in steps 4 and 5 above.
FLAG
The Bulk API wasn't independently tested in this project. The single-item pattern in steps 1 to 5 is the one confirmed working approach documented here.