Product Import
This documentation describes the technical process for importing product data using the API.
#Step-by-Step Process
Generate Signed Upload URL
#Get Upload URL
Request
POST /temporary-upload-url HTTP/1.1
{
"content_type": "text/csv",
"file_name": "example.csv"
}
Response
{
"path": "tmp/d24c7338-5eeb-4129-bae6-2f8e30f004bb-metaZXhhbXBsZS5jc3Y=-.csv",
"url": "https://smake-public.s3.eu-west-1.amazonaws.com/tmp/d24c7338-5e ...",
"headers": {
"Content-Type": "text/csv"
}
}
Note: The upload URL is valid for 10 minutes. Save the path value from the response – you will need it when creating the import.
#Upload Content
Upload the Content
Request
PUT /temporary-upload-url?... HTTP/1.1
Content-Type: text/plain
handle;locale;name;description;manufacturer;manufacturer_number;brand;color_handle;color_name;size_handle;size_name;code;weight;country_of_origin;hs_tariff_code;cost_price;price;tax_rate;image_front_url;image_back_url;image_left_url;image_right_url;published;is_master;external_identifier;track_inventory;sale_continue;command
HoodedSweat1;de;"DUMMY - Hooded Sweat";"DUMMY - Hooded Sweat";Dummy;DUMMY-02;Dummy;white;White;s;S;DUMMY-02-3;0,12;DE;6101209000;0;0;19;https://cdn.smake.com/kXbGm6L1aP2/signed?signature=708c970b6f1c2e5e238c7f1d2a91aee01fe46656728ff4073e6a8e444dbd2b8a;https://cdn.smake.com/L9wU7hF0L5I/signed?signature=3c1d251268cb397d34a9f8f9e0978428b8b057706be29b48ab28ab2d3b2f8e8b;https://cdn.smake.com/J3zT0Rz5U4X/signed?signature=ed2a0cb4c0e8b59dbd1ca6353b6fc9d4b3805ec51b19d72f0a85bc9c726ca514;https://cdn.smake.com/d7zHwK1p5N7/signed?signature=e77b2fb17a2c742451e4582d91c0702df159bb2d8593e16ef9f08efbfa07d03f;yes;no;;yes;yes;
Response — 201 Created
HTTP/1.1 200 OK
Note: Uploaded files will be automatically deleted after 24 hours.
#Create a new import
Creates a new asynchronous import of products based on a CSV file uploaded to S3.
#Parameters for creating a product import
| Field | Type | Description | Required |
|---|---|---|---|
| path | string | A path of csv file uploaded to S3 | Yes |
| overwrite_existing | boolean | If the switch is set to true, the existing data will be overwritten. | No |
| should_preserve_published | boolean | If the switch is set to true, the publishing settings for existing articles from the CSV file will be ignored. | No |
Request
POST /product-imports HTTP/1.1
{
"path": "tmp/d24c7338-5eeb-4129-bae6-2f8e30f004bb-metaZXhhbXBsZS5jc3Y=-.csv",
"overwrite_existing": true,
"should_preserve_published": false
}
Response
HTTP/1.1 202 Accepted
Location: /product-imports/1
Note: The import runs asynchronously. Use the Location header to poll the import status.
#Check Import Status
Returns a result of product import with the given id = x.
Request
GET /product-imports/1 HTTP/1.1
Response
{
"id": 1,
"options": {
"overwrite_existing": true,
"should_preserve_published": false
},
"state": "finished",
"failure_message": null,
"total_rows": 24,
"failed_rows": 0,
"processed_rows": 24,
"ignored_rows": 0,
"started_at": "2026-02-18T10:35:32+00:00",
"finished_at": "2026-02-18T10:36:15+00:00",
"source_file": {
"id": 5416,
"collection_name": "source-file",
"file_name": "product-import-example.csv",
"size": 14397,
"mime_type": "text/plain",
"download_url": "https://api.smake.test/storage/files/fb9c8ddc270843c7aaadcbd383fbaa2c/example.csv?expires=1768396599&signature=ed46888300b586baa5f31835b8a44ddddaf36cfc9ac22a42f38cf7b9fe0c09c3",
"state": null,
"requested": null,
"failure_message": null,
"created_at": "2026-02-18T10:35:29+00:00",
"updated_at": "2026-02-18T10:35:29+00:00"
},
"failed_report_file": null,
"created_at": "2026-02-18T10:35:29+00:00",
"updated_at": "2026-02-18T10:36:15+00:00"
}
Note: If not all data was processed successfully, the field failed_report_file will be filled and you can download an error report to check where the error lies.
#Example Import File
handle;locale;name;description;manufacturer;manufacturer_number;brand;color_handle;color_name;size_handle;size_name;code;weight;country_of_origin;hs_tariff_code;cost_price;price;tax_rate;image_front_url;image_back_url;image_left_url;image_right_url;published;is_master;external_identifier;track_inventory;sale_continue;command
HoodedSweat1;de;"DUMMY - Hooded Sweat";"DUMMY - Hooded Sweat";Dummy;DUMMY-02;Dummy;white;White;s;S;DUMMY-02-3;0,12;DE;6101209000;0;0;19;https://cdn.smake.com/kXbGm6L1aP2/signed?signature=708c970b6f1c2e5e238c7f1d2a91aee01fe46656728ff4073e6a8e444dbd2b8a;https://cdn.smake.com/L9wU7hF0L5I/signed?signature=3c1d251268cb397d34a9f8f9e0978428b8b057706be29b48ab28ab2d3b2f8e8b;https://cdn.smake.com/J3zT0Rz5U4X/signed?signature=ed2a0cb4c0e8b59dbd1ca6353b6fc9d4b3805ec51b19d72f0a85bc9c726ca514;https://cdn.smake.com/d7zHwK1p5N7/signed?signature=e77b2fb17a2c742451e4582d91c0702df159bb2d8593e16ef9f08efbfa07d03f;yes;no;;yes;yes;
HoodedSweat1;de;"DUMMY - Hooded Sweat";"DUMMY - Hooded Sweat";Dummy;DUMMY-02;Dummy;white;White;m;M;DUMMY-02-4;0,12;DE;6101209000;0;0;19;https://cdn.smake.com/kXbGm6L1aP2/signed?signature=708c970b6f1c2e5e238c7f1d2a91aee01fe46656728ff4073e6a8e444dbd2b8a;https://cdn.smake.com/L9wU7hF0L5I/signed?signature=3c1d251268cb397d34a9f8f9e0978428b8b057706be29b48ab28ab2d3b2f8e8b;https://cdn.smake.com/J3zT0Rz5U4X/signed?signature=ed2a0cb4c0e8b59dbd1ca6353b6fc9d4b3805ec51b19d72f0a85bc9c726ca514;https://cdn.smake.com/d7zHwK1p5N7/signed?signature=e77b2fb17a2c742451e4582d91c0702df159bb2d8593e16ef9f08efbfa07d03f;yes;no;;yes;yes;
HoodedSweat1;de;"DUMMY - Hooded Sweat";"DUMMY - Hooded Sweat";Dummy;DUMMY-02;Dummy;white;White;l;L;DUMMY-02-5;0,12;DE;6101209000;0;0;19;https://cdn.smake.com/kXbGm6L1aP2/signed?signature=708c970b6f1c2e5e238c7f1d2a91aee01fe46656728ff4073e6a8e444dbd2b8a;https://cdn.smake.com/L9wU7hF0L5I/signed?signature=3c1d251268cb397d34a9f8f9e0978428b8b057706be29b48ab28ab2d3b2f8e8b;https://cdn.smake.com/J3zT0Rz5U4X/signed?signature=ed2a0cb4c0e8b59dbd1ca6353b6fc9d4b3805ec51b19d72f0a85bc9c726ca514;https://cdn.smake.com/d7zHwK1p5N7/signed?signature=e77b2fb17a2c742451e4582d91c0702df159bb2d8593e16ef9f08efbfa07d03f;yes;no;;yes;yes;
HoodedSweat1;de;"DUMMY - Hooded Sweat";"DUMMY - Hooded Sweat";Dummy;DUMMY-02;Dummy;white;White;xl;XL;DUMMY-02-6;0,12;DE;6101209000;0;0;19;https://cdn.smake.com/kXbGm6L1aP2/signed?signature=708c970b6f1c2e5e238c7f1d2a91aee01fe46656728ff4073e6a8e444dbd2b8a;https://cdn.smake.com/L9wU7hF0L5I/signed?signature=3c1d251268cb397d34a9f8f9e0978428b8b057706be29b48ab28ab2d3b2f8e8b;https://cdn.smake.com/J3zT0Rz5U4X/signed?signature=ed2a0cb4c0e8b59dbd1ca6353b6fc9d4b3805ec51b19d72f0a85bc9c726ca514;https://cdn.smake.com/d7zHwK1p5N7/signed?signature=e77b2fb17a2c742451e4582d91c0702df159bb2d8593e16ef9f08efbfa07d03f;yes;no;;yes;yes;