Skip to main content

Supported formats

The product import endpoint accepts:
  • CSV (.csv) — comma or semicolon separated
  • Excel (.xlsx) — first sheet is used

Required columns

ColumnRequiredDescription
titleYesProduct name
skuYesUnique stock-keeping unit
priceYesSelling price (numeric)
currencyNoISO 4217 code (defaults to workspace currency)
descriptionNoProduct description
brandNoBrand name (must exist in workspace)
categoryPathNoCategory hierarchy separated by >
primaryImageUrlNoMain product image URL
gtinNoGlobal Trade Item Number
originalPriceNoOriginal price for discount display
availabilityNoStock status (e.g. “in stock”, “out of stock”)
Additional columns are stored as flexible attributes.

Import via API

curl -X POST ".../catalog/products/import" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "catalogId=CATALOG_ID"

Import response

The import returns a summary:
{
  "total": 500,
  "created": 487,
  "errors": 13,
  "errorDetails": [
    {"row": 45, "field": "price", "message": "Invalid number format"},
    {"row": 112, "field": "sku", "message": "Duplicate SKU: PROD-112"}
  ]
}

Best practices

Use a small test file (10-20 rows) before importing your full catalog. Check the error details to fix formatting issues.
Follow a consistent hierarchy format: Level 1 > Level 2 > Level 3. Inconsistent paths create duplicate categories.
Products with GTINs score higher on optimization and are required for most shopping feeds (Google, Meta).
After importing, use the AI enhance endpoint to improve descriptions in bulk. This is the fastest way to raise optimization scores.