Query outbound call list (QueryOutboundCallList)
Queries the outbound call list under a specified task in a paginated manner. Returns the call ID, status, customer name, phone number, duration, and call time for each call. Supports filtering by customer name, phone number, call status, and time range.
Prerequisites
-
The SDK is installed.
-
An AccessKey pair is obtained and configured. For more information, see Obtain an AccessKey and configure environment variables.
-
The TaskId (task ID) is obtained. You can obtain it from the Data.TaskId response parameter when you call CreateOutboundTask to create an outbound task, or from the QueryOutboundTaskList API to query existing tasks.
Request parameters
|
Name |
Type |
Required |
Description |
Example |
|
Action |
String |
Yes |
The operation that you want to perform. Set the value to QueryOutboundCallList. |
QueryOutboundCallList |
|
Version |
String |
Yes |
The API version number. The format is YYYY-MM-DD. Set the value to 2025-11-27. |
2025-11-27 |
|
TaskId |
Number |
Yes |
The outbound task ID. |
254 |
|
CustomerName |
String |
No |
The customer name (fuzzy match). |
John Doe |
|
PhoneNumber |
String |
No |
The phone number (fuzzy match). |
138 |
|
CallStatus |
String |
No |
The call status filter. |
ANSWERED |
|
StartTime |
String |
No |
The start time of the query range. |
2026-04-01 00:00:00 |
|
EndTime |
String |
No |
The end time of the query range. |
2026-04-10 23:59:59 |
|
Current |
Number |
No |
The current page number. Default value: 1. |
1 |
|
Size |
Number |
No |
The number of entries per page. Default value: 10. |
10 |
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. |
Success |
|
Total |
Long |
The total number of records. |
50 |
|
Current |
Long |
The current page number. |
1 |
|
Size |
Long |
The number of entries per page. |
10 |
|
Records |
Array |
The returned data. Contains fields such as CallId, CallStatus, CustomerName, PhoneNumber, Duration, and CallTime. For more information, see the following parameter description. |
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="QueryOutboundCallList",
method="POST",
pathname="/",
protocol="HTTPS",
auth_type="AK",
req_body_type="json",
body_type="json",
)
body = {'TaskId': 254, 'Current': 1, 'Size': 10}
# body['CustomerName'] = '张三'
# body['PhoneNumber'] = '138'
# body['CallStatus'] = 'ANSWERED'
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"调用失败: {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 {
// 初始化配置
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);
// 设置 API 参数
Params params = new Params()
.setStyle("RPC")
.setVersion("2025-11-27")
.setAction("QueryOutboundCallList")
.setMethod("POST")
.setPathname("/")
.setProtocol("HTTPS")
.setAuthType("AK")
.setReqBodyType("json")
.setBodyType("json");
// 构建请求参数
Map<String, Object> body = new HashMap<>();
body.put("TaskId", 1);
OpenApiRequest request = new OpenApiRequest()
.setQuery(com.aliyun.openapiutil.Client.query(body));
// 设置运行时选项(自动重试)
RuntimeOptions runtime = new RuntimeOptions()
.setAutoretry(true)
.setMaxAttempts(3);
try {
// 调用 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("调用失败: " + e.getMessage());
}
}
}
Sample response
{
"Success": true,
"Code": null,
"Message": "Success",
"RequestId": "xxxx-xxxx-xxxx",
"Total": 50,
"Current": 1,
"Size": 10,
"Records": [
{
"CallId": "call-abc123def456",
"CallStatus": "ANSWERED",
"CustomerName": "张三",
"PhoneNumber": "13800138000",
"Duration": 150,
"CallTime": "2026-04-10 10:00:00"
}
]
}
The specific results are contained in the Records node. The following table describes the parameters of the Records node.
|
Name |
Type |
Description |
Example |
|
CallId |
String |
The unique identifier of the call. |
call-abc123def456 |
|
CallStatus |
String |
The call status. |
ANSWERED |
|
CustomerName |
String |
The customer name. |
John Doe |
|
PhoneNumber |
String |
The phone number. |
13800138000 |
|
Duration |
Number |
The call duration in seconds. |
150 |
|
CallTime |
String |
The call time. |
2026-04-10 10:00:00 |
Error codes
If an error occurs, see Error codes for troubleshooting.