Batch upload customer list (BatchUploadCustomerManagement)
Batch upload customer list data by file URL. The upload is an asynchronous operation. An upload task ID is returned for status tracking.
Prerequisites
-
The SDK is installed.
-
You have obtained an AccessKey and configured it in environment variables. For more information, see Obtain an AccessKey and configure it in environment variables.
-
You have obtained the CustomerListId (customer list ID). Call the QueryCustomerManagementList API to query the customer list and obtain it from the response parameter Records[].Id.
Request parameters
|
Name |
Type |
Required |
Description |
Example |
|
Action |
String |
Yes |
The operation that you want to perform. Set the value to BatchUploadCustomerManagement. |
BatchUploadCustomerManagement |
|
Version |
String |
Yes |
The API version number. Format: YYYY-MM-DD. Set the value to 2025-11-27. |
Fixed to 2025-11-27 |
|
CustomerListId |
Number |
Yes |
The customer list ID. |
1001 |
|
FileName |
String |
Yes |
The name of the file to upload. |
customers_202601.xlsx |
|
FileUrl |
String |
Yes |
The file download URL (must be publicly accessible over the Internet). |
https://example.com/customers.xlsx |
Response parameters
|
Name |
Type |
Description |
Example |
|
RequestId |
String |
The request ID. |
xxxx-xxxx-xxxx |
|
Success |
Boolean |
Indicates whether the request was successful. |
True |
|
Code |
String |
The error code. Empty when the request is successful. |
None |
|
Message |
String |
The error message or success message. |
The operation was successful. |
|
Data |
Object |
The returned data, which contains fields such as Success, Message, and UploadTaskId. For more information, see the response parameter description below. |
Examples
Python
import json
import os
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_openapi.client import Client as OpenApiClient
from alibabacloud_tea_util import models as util_models
from alibabacloud_openapi_util.client import Client as OpenApiUtilClient
def main():
config = open_api_models.Config(
access_key_id=os.getenv("ACCESS_KEY_ID"),
access_key_secret=os.getenv("ACCESS_KEY_SECRET"),
)
config.endpoint = "thirdswaicall.aliyuncs.com"
config.protocol = "HTTPS"
client = OpenApiClient(config)
params = open_api_models.Params(
style="RPC",
version="2025-11-27",
action="BatchUploadCustomerManagement",
method="POST",
pathname="/",
protocol="HTTPS",
auth_type="AK",
req_body_type="json",
body_type="json",
)
body = {'CustomerListId': 1001, 'FileName': 'customers_202601.xlsx', 'FileUrl': 'https://example.com/customers.xlsx'}
request = open_api_models.OpenApiRequest(query=OpenApiUtilClient.query(body))
runtime = util_models.RuntimeOptions(autoretry=True, max_attempts=3)
try:
resp = client.call_api(params, request, runtime)
print(json.dumps(resp.get("body", {}), ensure_ascii=False, indent=2))
except Exception as e:
print(f"Call failed: {e}")
if __name__ == "__main__":
main()
Java
import com.aliyun.teaopenapi.Client;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teaopenapi.models.OpenApiRequest;
import com.aliyun.teaopenapi.models.Params;
import com.aliyun.teautil.models.RuntimeOptions;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;
public class Demo {
public static void main(String[] args) throws Exception {
// Initialize configuration
Config config = new Config()
.setAccessKeyId(System.getenv("ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ACCESS_KEY_SECRET"))
.setEndpoint("thirdswaicall.aliyuncs.com")
.setProtocol("HTTPS");
Client client = new Client(config);
// Set API parameters
Params params = new Params()
.setStyle("RPC")
.setVersion("2025-11-27")
.setAction("BatchUploadCustomerManagement")
.setMethod("POST")
.setPathname("/")
.setProtocol("HTTPS")
.setAuthType("AK")
.setReqBodyType("json")
.setBodyType("json");
// Build request parameters
Map<String, Object> body = new HashMap<>();
body.put("CustomerListId", 1);
body.put("FileName", "example");
body.put("FileUrl", "example");
OpenApiRequest request = new OpenApiRequest()
.setQuery(com.aliyun.openapiutil.Client.query(body));
// Set runtime options (auto retry)
RuntimeOptions runtime = new RuntimeOptions()
.setAutoretry(true)
.setMaxAttempts(3);
try {
// Call the API
Map<String, ?> response = client.callApi(params, request, runtime);
Gson gson = new Gson();
System.out.println(gson.toJson(response.get("body")));
} catch (Exception e) {
System.err.println("Call failed: " + e.getMessage());
}
}
}
Sample response
{
"Success": true,
"Code": null,
"Message": "The operation was successful.",
"RequestId": "xxxx-xxxx-xxxx",
"Data": {
"Success": true,
"Message": "The upload task has been created.",
"UploadTaskId": 5001
}
}
The specific processing result is in the Data node. The following table describes the parameters in the Data node.
|
Name |
Type |
Description |
Example |
|
Success |
Boolean |
Indicates whether the operation was successful. |
true |
|
Message |
String |
The description of the operation result. |
The upload task has been created. |
|
UploadTaskId |
Number |
The upload task ID, which is used to query the upload progress. |
5001 |
Error information
If an error occurs, see Error codes for troubleshooting.