Submit a bulk import
Create and queue a bulk-import job. Two payload formats are supported:
- CSV (recommended) —
multipart/form-datawith a.csvfile (up to 20 MB), the importtype, and an optionalcolumn_mappingJSON string (system field → CSV header). File uploads are recommended for speed: the server streams rows directly from disk rather than parsing a JSON array in memory, so throughput is significantly higher for non-trivial datasets. - JSON —
application/jsonwithtypeandrows(up to 10,000 items).column_mappinghere maps system field names → keys present in each row object. Use CSV upload for anything larger.
File support
| Extension | Accepted | Notes |
|---|---|---|
.csv | ✅ | Preferred. Comma-delimited, UTF-8, header row required. |
.txt | ✅ | Treated as CSV (same parser, same expectations). |
.xlsx / .xls | ❌ | Excel files are not accepted — export to CSV first. |
Other CSV details:
- Max upload size: 20 MB. Larger files are rejected with
422. - Header row: the first row must contain column names. Headers are trimmed of whitespace.
- Delimiter / quoting: standard CSV — comma delimiter, double-quote enclosure.
Use double quotes to wrap fields that contain commas, newlines, or quotes
(escape an embedded quote by doubling it:
""). - Empty rows are skipped automatically.
- Encoding: UTF-8 is strongly recommended. Other encodings may parse but can corrupt non-ASCII characters.
On success the endpoint returns 201 with the import record (including its
job progress fields). Poll GET /imports/{id} to track progress.
Authorizations
Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.
Body
Import type key (see GET /imports/types)
"master_skus"
CSV file (.csv or .txt, max 20 MB)
JSON object as a string — system field name → CSV header name
"{\"MASTER_SKU\":\"Product ID\",\"PRODUCT_NAME\":\"Name\"}"
Email address to notify when the import finishes
Human-readable name for the job
255JSON object as a string — additional per-type options
Response
Import created and job queued
Bulk import job record. Returned from the imports endpoints and reflects the
async ImportJob that processes the rows.