REST API·intermediate·4 min
Bulk import
Send up to 1,000 products in one call. Atomic on plan caps.
For loading a catalog or running a nightly sync, the bulk endpoint accepts up to 1,000 products per request and is upsert by SKU.
Request
POST /api/public/v1/products/bulk
Content-Type: application/json
{
"products": [
{ "sku": "TEE-BLACK-S", "title": "Tee S", "price_amount": 48.00, "price_currency": "USD" },
{ "sku": "TEE-BLACK-M", "title": "Tee M", "price_amount": 48.00, "price_currency": "USD" }
]
}Response
{
"created": 1,
"updated": 1,
"skipped": [],
"products": [{ "id": "prd_...", "sku": "TEE-BLACK-S" }, ...]
}Atomic on plan caps
If the request would push you past your plan's product cap, nothing is written and you get
402 plan_limit. Either upgrade or split the call.Validation
- Each product is validated independently. Bad rows return in
skippedwith a reason. - The whole call still succeeds; check the response.
Throughput
Workspaces are limited to 60 bulk calls per minute. Each call commits in a single transaction, so a 1,000-row import typically completes in 200–400 ms.