# 通话录音地址

获取某条洞察记录对应通话的录音播放地址，返回一个**有效期 15 分钟的签名 URL**，对应控制台洞察详情页的通话原声播放。

<span style="display:inline-block;background:#e6f8ea;color:#22a366;border-radius:6px;padding:2px 8px;font-weight:bold;font-family:monospace;margin-right:8px;">GET</span>
`https://dashboard.avavox.com/open/api/v1/insight/records/{insightId}/audio`

::: warning 地址不可复用
签名 URL 有效期仅 15 分钟，且每次调用都会重新签名。请**在用户点击播放的那一刻调用本接口**，不要提前批量拉取并入库。
:::

## 请求头

<span style="font-family:monospace; color:#3451b2; ">Authorization </span> <code style="background:#f0f0f0; ">string</code> <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

- 填写格式：`Authorization: Bearer <App Key>`
- `<App Key>` 为控制台「App Key 管理」页面生成的 Key。
- 获取方式详见：[《App Key 创建与管理》](https://avavox.com/docs/developer/app-key.html)。

## 路径参数

<span style="font-family:monospace; color:#3451b2;">insightId</span> <code style="background:#f0f0f0;">string</code> <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

洞察记录 ID，由[洞察列表查询](https://avavox.com/docs/developer/insight/record-query.html)接口的 `list[].insightId` 返回。

## 请求参数

无。

## 响应数据

<span style="font-family:monospace; color:#3451b2;">code</span> <code style="background:#f0f0f0;">int</code>

状态码，200 为成功，其他状态均为失败。

---

<span style="font-family:monospace; color:#3451b2;">success</span> <code style="background:#f0f0f0;">boolean</code>

是否成功，`true` 表示成功，`false` 表示失败。

---

<span style="font-family:monospace; color:#3451b2;">message</span> <code style="background:#f0f0f0;">string</code>

描述信息。

---

<span style="font-family:monospace; color:#3451b2;">data</span> <code style="background:#f0f0f0;">object</code>

<details>
<summary>点击展开字段说明</summary>
<div style="margin: 16px 0; padding: 16px;  border-left: 1px solid #f0f0f0; border-radius: 6px;">

<span style="font-family:monospace; color:#3451b2;">url</span> <code style="background:#f0f0f0;">string</code>

带签名的临时播放地址，可直接用于 `<audio>` 播放或下载。

---

<span style="font-family:monospace; color:#3451b2;">expireIn</span> <code style="background:#f0f0f0;">int</code>

有效期（秒），固定 `900`。

---

<span style="font-family:monospace; color:#3451b2;">expireAt</span> <code style="background:#f0f0f0;">string</code>

过期时刻，`yyyy-MM-dd HH:mm:ss`。

---

<span style="font-family:monospace; color:#3451b2;">format</span> <code style="background:#f0f0f0;">string</code>

音频格式，如 `mp3`。

---

<span style="font-family:monospace; color:#3451b2;">duration</span> <code style="background:#f0f0f0;">int</code>

录音时长（秒）。通话记录未落时长时为 `null`。

---

<span style="font-family:monospace; color:#3451b2;">fileSize</span> <code style="background:#f0f0f0;">long</code>

文件大小（字节）。未记录时为 `null`，请勿假定该字段一定有值。

</div>
</details>

## 请求示例

```shell
curl -X GET --location 'https://dashboard.avavox.com/open/api/v1/insight/records/ins_9f2c81b0/audio' \
--header 'Authorization: Bearer $Key'
```

## 响应示例

```json
{
  "code": 200,
  "success": true,
  "message": "操作成功",
  "data": {
    "url": "https://cdn.example.com/rec/2026/04/28/b4f26ded.mp3?e=1777000900&sign=xxx",
    "expireIn": 900,
    "expireAt": "2026-04-28 12:00:00",
    "format": "mp3",
    "duration": 73,
    "fileSize": 587264
  }
}
```

## 录音不可用的情况

以下情况均取不到录音，请在客户端做好「录音不可用」的兜底展示：

- 洞察记录不存在
- 关联的通话记录不存在
- 录音已被存储策略清理
- 录音地址为空或格式异常
- 对象存储判定文件不可读
