Query outbound call recording (QueryOutboundCallRecord)

Updated at:
Copy as MD

Queries the outbound call recording by call ID and returns the recording file download URL and recording duration. The recording URL is time-sensitive. Download and save the recording within the validity period.

Prerequisites

Request parameters

Name

Type

Required

Description

Example

Action

String

Yes

The operation to perform. Set the value to QueryOutboundCallRecord.

QueryOutboundCallRecord

Version

String

Yes

The API version number. Format: YYYY-MM-DD. Set the value to 2025-11-27.

Fixed as 2025-11-27

CallId

String

Yes

The unique identifier of the call.

call-abc123def456

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

Data

Object

The returned data, which contains fields such as CallId, RecordUrl, and RecordDuration. 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="QueryOutboundCallRecord",
        method="POST",
        pathname="/",
        protocol="HTTPS",
        auth_type="AK",
        req_body_type="json",
        body_type="json",
    )

    body = {'CallId': 'call-abc123def456'}

    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("QueryOutboundCallRecord")
            .setMethod("POST")
            .setPathname("/")
            .setProtocol("HTTPS")
            .setAuthType("AK")
            .setReqBodyType("json")
            .setBodyType("json");

        // 构建请求参数
        Map<String, Object> body = new HashMap<>();
        body.put("CallId", 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",
  "Data": {
    "CallId": "call-abc123def456",
    "RecordUrl": "https://oss-example.com/record/abc123.wav",
    "RecordDuration": 150
  }
}

The specific results are contained in the Data node. The following table describes the parameters of the Data node.

Name

Type

Description

Example

CallId

String

The unique identifier of the call.

call-abc123def456

RecordUrl

String

The recording file download URL.

https://oss-example.com/record/abc123.wav

RecordDuration

Number

The recording duration in seconds.

150

Error codes

If an error occurs, see Error codes for troubleshooting.