Skip to content
Stashtab Vault API
Esc
navigateopen⌘Jpreview

Import products from CSV

Upload a UTF-8 CSV with a header row. Columns: name, sku, upc, length, width, height, dimension_unit, weight, weight_unit, image_url. Valid rows are created while invalid rows return field-level errors.

POST/products/csv
Authorization
X-API-KeyAPI key · headerrequired
API key in format `sk_*`. Scoped to your partner account; server-side use only.
Header parameters
Idempotency-Keystringrequired
Unique key for safe retries. Reusing a key on the same endpoint returns the original result.
max length 255
Request body
requiredmultipart/form-data
filestringrequired
Responses
200Rows processed independently.
createdProduct[]required
Show properties
Array of Product
dimensionsDimensionsrequired
Show properties
heightnumberrequired
lengthnumberrequired
unitstringrequired
Allowed:incm
widthnumberrequired
image_urlstring<uri> | null
namestringrequired
skustringrequired
Unique within the partner organization.
upcstring | null
weightWeightrequired
Show properties
unitstringrequired
Allowed:ozg
valuenumberrequired
created_atstring<date-time>required
product_idstring<uuid>required
updated_atstring<date-time>required
errorsCsvRowError[]required
Show properties
Array of CsvRowError
codeErrorCoderequired
Stable machine-readable error vocabulary for v1.
Allowed:validation_errorstate_conflictenvironment_mismatchunsupported_destinationinvalid_api_keynot_foundrate_limited
fieldsobjectrequired
messagestringrequired
rowintegerrequired
One-based CSV data-row number, excluding the header.
min 1
totalsCsvBatchTotalsrequired
Show properties
createdintegerrequired
min 0
failedintegerrequired
min 0
submittedintegerrequired
min 0
400Validation failed.
codeErrorCoderequired
Stable machine-readable error vocabulary for v1.
Allowed:validation_errorstate_conflictenvironment_mismatchunsupported_destinationinvalid_api_keynot_foundrate_limited
extraobjectrequired
Structured details such as field errors or SKU availability.
messagestringrequired
Human-readable summary.
401Missing, invalid, expired, or environment-mismatched API key.
codeErrorCoderequired
Stable machine-readable error vocabulary for v1.
Allowed:validation_errorstate_conflictenvironment_mismatchunsupported_destinationinvalid_api_keynot_foundrate_limited
extraobjectrequired
Structured details such as field errors or SKU availability.
messagestringrequired
Human-readable summary.
429Rate limit exceeded for this API key.
codeErrorCoderequired
Stable machine-readable error vocabulary for v1.
Allowed:validation_errorstate_conflictenvironment_mismatchunsupported_destinationinvalid_api_keynot_foundrate_limited
extraobjectrequired
Structured details such as field errors or SKU availability.
messagestringrequired
Human-readable summary.
Try it
Server
Authorization
Parameters
Bodymultipart/form-data
Request
curl -X POST "https://api.vault.stashtab.gg/v1/products/csv" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: multipart/form-data" \
  -d '{
  "file": "string"
}'
Response
{
  "created": [
    {
      "dimensions": {
        "height": 0,
        "length": 0,
        "unit": "in",
        "width": 0
      },
      "image_url": "http://example.com",
      "name": "string",
      "sku": "string",
      "upc": "string",
      "weight": {
        "unit": "oz",
        "value": 0
      },
      "created_at": "2019-08-24T14:15:22Z",
      "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "errors": [
    {
      "code": "validation_error",
      "fields": {
        "property1": [
          "string"
        ],
        "property2": [
          "string"
        ]
      },
      "message": "string",
      "row": 1
    }
  ],
  "totals": {
    "created": 0,
    "failed": 0,
    "submitted": 0
  }
}