Catalog Import API
Push your price list programmatically — same engine as the dashboard import wizard, applied in a single call. Typical use: a nightly job exporting from your inventory system.
This endpoint is optional. Merchants without an IT system use the dashboard wizard; both paths write to the same catalog.
POST /api/v1/catalog/import
X-API-Key: rsk_...
Content-Type: multipart/form-data
One form field: file — a CSV or XLSX, any column names, any of Uzbek/Russian/English headers.
curl -X POST "$BASE/api/v1/catalog/import" \
-H "X-API-Key: $API_KEY" \
-F "file=@prices.xlsx"
Success
{ "data": { "created": 3, "updated": 41, "total": 44 } }
The import is an upsert: rows matching an existing product (by SKU if present, else by name, case-insensitive) update it; new rows create products. Prices already quoted in past orders are never affected (they are snapshotted at order time).
How columns are resolved
- Saved mappings first — whatever was confirmed in the dashboard wizard for these header names is reused. Recommended setup: run your file through the wizard once, correct anything, and the API path inherits the mapping forever.
- Header heuristics — common names in en/ru/uz (
price,цена,narx, …) are recognized automatically. - Everything else becomes an attribute — extra columns are kept per product under your original header name.
Errors
| Code | Meaning |
|---|---|
| 400 | Unparseable file, row/size limit exceeded, invalid price value (row number included), or name/price column could not be resolved — the response's error.details.proposed_mappings shows what was inferred so you can rename headers or pre-save a mapping |
| 401 | Missing/invalid API key |
| 413/400 | File over 10 MB |
Limits: 10 MB, 5,000 rows per call, IP rate-limited. Only name and price columns are mandatory; an empty price cell means "price on request".
Getting a template of your own catalog
The dashboard's Export CSV/XLSX button returns your current catalog in exactly the format this endpoint accepts — the easiest way to see the expected shape.