Import Operations
Overview
The Import API allows you to bulk import and update products, stock levels, and images through file uploads or XML payloads. Import operations are processed asynchronously in the background, making them ideal for bulk data operations.
Import operations support two formats:
- File Upload: Upload CSV or XLSX files for bulk operations
- XML Payload: Send XML data directly in the request body for programmatic imports
All import operations return immediately with job information, and processing happens asynchronously. Processing time depends on file size and can range from milliseconds to several minutes.
Important:
- Only send changed data when performing bulk operations to optimize performance
- Split large requests into manageable chunks
- Monitor import status using the returned
feedIdorfeedUuid - File uploads accept
.csvor.xlsxextensions - XML endpoints require
text/xmlcontent type header
Update Products by File Upload
POST /v2/import/product-update
Summary: Update the products by uploading the file
Description: This endpoint allows you to update multiple products by uploading a CSV or XLSX file. The import file is processed in the background, meaning your request returns immediately with job information about the scheduled import task.
The endpoint has no limit on the amount of products in a request, however it is recommended to:
- Send only products that have changes
- Avoid sending products without updates
- Split large requests into smaller chunks for better performance
Note:
- Supported file formats:
.csvor.xlsx - Processing happens asynchronously in the background
- Use the returned
feedIdorfeedUuidto track import status - Processing time varies based on file size (milliseconds to minutes)
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing products to update
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/import/product-update" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Create Products by File Upload
POST /v2/import/product-creation
Summary: Create products by uploading the file
Description: Create multiple products by uploading a CSV or XLSX file. The import file is processed in the background, and your request returns immediately with job information about the scheduled import task.
This endpoint is ideal for bulk product creation when you have product data in spreadsheet format. Processing time depends on the size of the imported file and can range from milliseconds to several minutes.
Note:
- Supported file formats:
.csvor.xlsx - Processing happens asynchronously in the background
- Use the returned
feedIdorfeedUuidto track import status
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing products to create
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/import/product-creation" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Create Products by XML
POST /v2/import/product-creation-xml-import
Summary: Create the products by sending XML in the request body
Description: Create products by sending XML data directly in the request body. This endpoint accepts and sends only text/xml content type header.
Each product in the XML request can include various parameters such as SellerSku, Status, Name, Variation, ParentSku, PrimaryCategory, Categories, BrowseNodes, Description, Brand, Price, SalePrice, SaleStartDate, SaleEndDate, TaxClass, ShipmentType, ProductId, ProductData, Quantity, VolumetricWeight, and ProductGroup.
Key Parameters:
- SellerSku: The unique identifier of the product (required)
- Name: The name of the product as shown to the end-user (2-255 characters)
- PrimaryCategory: The ID of the primary category (use GetCategoryTree to get category IDs)
- Brand: The brand name of the product (mandatory)
- Price: The product's price (Decimal type)
- Description: Product description (6-25000 characters, HTML tags allowed if escaped)
- Status: One of 'active', 'inactive', or 'deleted' (optional, defaults to 'active')
- ParentSku: The unique identifier of a product with which this product should be associated
- Variation: The value of the variation if product is available in multiple variations (e.g., colors or size)
- ProductData: Additional product attributes that depend on the primary category
Note:
- Endpoint accepts and sends only
text/xmlcontent type - Required fields: SellerSku, Name, PrimaryCategory, Description, Brand, Price
- HTML tags in Description must be escaped as character data (use CDATA sections)
- SalePrice must be lower than Price
- If SalePrice is specified, either SaleStartDate or SaleEndDate must be given
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
application/xml
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/xml
application/json
application/json
curl -X POST "https://loading/v2/import/product-creation-xml-import" \ -H "Content-Type: application/xml" \ -d '<Request> <Product> <SellerSku>4105382173aaee4</SellerSku> <Name>Magic Product</Name> <PrimaryCategory>4</PrimaryCategory> <Description><![CDATA[This is a <b>bold</b> product.]]></Description> <Brand>ASM</Brand> <Price>100.00</Price> <Quantity>10</Quantity> </Product> </Request> '"<SuccessResponse>\n <Head>\n <RequestId>cb106552-87f3-450b-aa8b-412246a24b34</RequestId>\n <RequestAction>ProductCreate</RequestAction>\n <ResponseType></ResponseType>\n <Timestamp>2016-06-22T04:40:14+0200</Timestamp>\n </Head>\n <Body>\n <WarningDetail>\n <Field></Field>\n <Message></Message>\n <Value></Value>\n </WarningDetail>\n </Body>\n</SuccessResponse>\n"{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Update Products by XML
POST /v2/import/product-update-xml-import
Summary: Update the products by sending XML in the request body
Description: Update products by sending XML data directly in the request body. This endpoint accepts and sends only text/xml content type header.
Each product in the XML request can include parameters such as SellerSku, Status, Name, Variation, ParentSku, PrimaryCategory, Categories, BrowseNodes, Description, Brand, Price, SalePrice, SaleStartDate, SaleEndDate, TaxClass, ShipmentType, ProductId, ProductData, Quantity, VolumetricWeight, and ProductGroup.
Key Parameters:
- SellerSku: The unique identifier of the product (required)
- Name: The name of the product as shown to the end-user (2-255 characters)
- PrimaryCategory: The ID of the primary category
- Brand: The brand name of the product
- Price: The product's price (Decimal type)
- Description: Product description (6-25000 characters, HTML tags allowed if escaped)
- Status: One of 'active', 'inactive', or 'deleted' (optional, defaults to 'active')
- ProductData: Additional product attributes that depend on the primary category
Note:
- Endpoint accepts and sends only
text/xmlcontent type - Only SellerSku is required for updates (other fields are optional)
- This endpoint has no limit on amount of products in request, but it's recommended to send only products with changes and split big requests into chunks
- HTML tags in Description must be escaped as character data (use CDATA sections)
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
application/xml
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/xml
application/json
application/json
curl -X POST "https://loading/v2/import/product-update-xml-import" \ -H "Content-Type: application/xml" \ -d '<Request> <Product> <SellerSku>4105382173aaee4</SellerSku> <Name>Updated Product Name</Name> <Price>150.00</Price> </Product> </Request> '"<SuccessResponse>\n <Head>\n <RequestId>cb106552-87f3-450b-aa8b-412246a24b34</RequestId>\n <RequestAction>ProductUpdate</RequestAction>\n <ResponseType></ResponseType>\n <Timestamp>2016-06-22T04:40:14+0200</Timestamp>\n </Head>\n <Body>\n <WarningDetail>\n <Field></Field>\n <Message></Message>\n <Value></Value>\n </WarningDetail>\n </Body>\n</SuccessResponse>\n"{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Remove Products by File Upload
POST /v2/import/product-removal
Summary: Remove products by uploading the file
Description: Remove multiple products by uploading a CSV or XLSX file containing the products to be removed. The import file is processed in the background, and your request returns immediately with job information about the scheduled removal task.
Note:
- Supported file formats:
.csvor.xlsx - Processing happens asynchronously in the background
- Use the returned
feedIdorfeedUuidto track removal status - Processing time varies based on file size (milliseconds to minutes)
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing products to remove
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/import/product-removal" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Update Product Stock by File Upload
POST /v2/import/stock-update
Summary: Update the products by uploading the file
Description: Update product stock levels by uploading a CSV or XLSX file. The import file is processed in the background, and your request returns immediately with job information about the scheduled stock update task.
This endpoint has no limit on the amount of products in a request, however it is recommended to:
- Send only products that have stock changes
- Avoid sending products without stock updates
- Split large requests into smaller chunks for better performance
Note:
- Supported file formats:
.csvor.xlsx - Processing happens asynchronously in the background
- Use the returned
feedIdorfeedUuidto track stock update status - Processing time varies based on file size (milliseconds to minutes)
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing stock updates
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/import/stock-update" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Update Product Stock by XML
POST /v2/import/product-stock-update-xml
Summary: Update the product stocks by sending XML in the request body
Description: Update product stock levels by sending XML data directly in the request body. Each product is represented by a Product tag which includes SellerSku and Quantity. SellerSku is the unique identifier of the product, and Quantity is the stock level for that product.
This endpoint accepts and sends only text/xml content type header. The endpoint has no limit on the amount of products in a request, however it is recommended to send only products with stock changes and split big requests into chunks.
Note:
- Endpoint accepts and sends only
text/xmlcontent type - Each Product tag requires SellerSku (unique identifier) and Quantity (stock level)
- Only send products that have stock changes
- Split large requests into smaller chunks for better performance
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
application/xml
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/xml
application/json
application/json
curl -X POST "https://loading/v2/import/product-stock-update-xml" \ -H "Content-Type: application/xml" \ -d '<Request> <Product> <SellerSku>AAA3</SellerSku> <Quantity>1030</Quantity> </Product> <Product> <SellerSku>AAA1</SellerSku> <Quantity>1010</Quantity> </Product> </Request> '"<SuccessResponse>\n <Head>\n <RequestId>1adf8fc6-a08f-47d5-9613-e2af40243e2f</RequestId>\n <RequestAction>ProductStockUpdate</RequestAction>\n <ResponseType></ResponseType>\n <Timestamp>2023-05-26T17:26:50+0200</Timestamp>\n </Head>\n <Body>\n <WarningDetail>\n <Field></Field>\n <Message></Message>\n <Value></Value>\n </WarningDetail>\n </Body>\n</SuccessResponse>\n"{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Update Product Images by File Upload
POST /v2/import/image-update
Summary: Update the products' images by uploading the file
Description: Update product images by uploading a CSV or XLSX file. The import file is processed in the background, and your request returns immediately with job information about the scheduled image update task.
Note:
- Supported file formats:
.csvor.xlsx - Processing happens asynchronously in the background
- Use the returned
feedIdorfeedUuidto track image update status - Processing time varies based on file size (milliseconds to minutes)
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing image updates
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/import/image-update" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}User Import Operations
Execute API Key Removal Import
POST /v2/users/import/api_keys/removal
Summary: Execute API key removal import
Description: Remove API keys in bulk by uploading a file containing the API keys to be removed.
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing API keys to remove
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/users/import/api_keys/removal" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [
"Unknown field: Country"
],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Execute Seller Access Import
POST /v2/users/import/seller_access
Summary: Execute seller access import
Description: Import seller access permissions in bulk by uploading a file containing the access data.
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing seller access data
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/users/import/seller_access" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [
"Unknown field: Country"
],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}Import User Status
POST /v2/users/import/status
Summary: Import user status
Description: Update user statuses in bulk by uploading a file containing the user status updates.
Authorization
BearerAuth OAuth 2.0 Bearer token authentication
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
CSV or XLSX file containing user status updates
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v2/users/import/status" \ -F file1="string"{
"success": true,
"message": "<b>File has been successfully uploaded.</b> Please be patient while data is being processed.",
"errorMessages": [],
"warningMessages": [
"Unknown field: Country"
],
"feedId": 7,
"feedUuid": "060cef12-08ef-4ae6-b15e-79398fedc774"
}{
"title": "Unprocessable Entity",
"status": 422,
"detail": "The provided data failed validation"
}{
"title": "Service Unavailable",
"status": 500,
"detail": "The service is temporarily unavailable. Please try again later."
}{
"title": "Service Unavailable Due to Maintenance Mode",
"status": 503,
"detail": "The service is currently under maintenance. Please try again later."
}