POST /api/v1/products/bulk-import to queue a CSV bulk product import for your organization. The API accepts either a CSV file upload (multipart/form-data) or a JSON payload with inline csvText / documentId. It returns a bulk_... job ID that you poll with GET /api/v1/jobs/{jobId}.
Interactive reference: API docs
Authentication
Send an OmniCommerce API key or OAuth client token with thecatalog:write scope:
organizationId in the request body or multipart form fields.
Session-authenticated requests (browser cookie) must include organizationId in the request body or multipart form fields.
1. Upload a CSV file
.csv files up to 2MB.
2. Or send JSON programmatically
"organizationId": "org_1" to the JSON body or multipart form.
You can also pass documentId instead of csvText when the CSV is already stored in the organization’s document library.
Accepted response
3. Poll job status
data payload includes row counts (pending, enriching, applied, failed, skipped), progress fields, and the underlying import status.
4. Cancel an in-flight import (optional)
Multipart form fields
Job ID format
Developer bulk imports return IDs with thebulk_ prefix, for example bulk_7f4f5f0d-2f0a-4f0a-9a2f-8d2f0a7f4f5f. Use the same job polling and cancellation endpoints as single-product prod_... jobs and Look look_... jobs.
Errors
400- invalid JSON, missing CSV source, invalid field mapping, or CSV validation failure401- missing or invalid Bearer token403- token missingcatalog:writeor wrong organization413- multipart body or CSV file too large