---
title: "GET /get-audio-links: Audio links | Trellus Call Data API"
description: "GET https://api.trellus.ai/get-audio-links. Return temporary download URLs for one readable call. Generate them only when needed. Authentication, parameters and a request example in cURL, JavaScript and Python."
source: "https://www.trellus.ai/developers/api/audio"
note: "Text-only copy of the page for AI assistants and agents. Link to the source address, not this file."
site_summary: "https://www.trellus.ai/llms.txt"
---

# Audio links

Return temporary download URLs for one readable call. Generate them only when needed.

GET `https://api.trellus.ai/get-audio-links`

The response is `{ session, audio, audio_links }`: one session object and two arrays aligned by index. URLs expire after one hour. Beyond recording retention, audio arrays may be empty. Within retention, a non-call session returns 400.

**Authentication:** send `api_key: $TRELLUS_API_KEY`. The key inherits the user’s existing permissions. See [Authentication](https://www.trellus.ai/developers/api/authentication).

Request

```bash
curl https://api.trellus.ai/get-audio-links \
  -H "api_key: $TRELLUS_API_KEY" \
  -H "session_id: SESSION_ID"
```

```javascript
const response = await fetch("https://api.trellus.ai/get-audio-links", {
  method: "GET",
  headers: {
    "api_key": process.env.TRELLUS_API_KEY,
    "session_id": "SESSION_ID",
  },
});
console.log(await response.text());
```

```python
import os
import requests

response = requests.get(
    "https://api.trellus.ai/get-audio-links",
    headers={
        "api_key": os.environ["TRELLUS_API_KEY"],
        "session_id": "SESSION_ID",
    },
)
print(response.text)
```

**Response 200.** Object containing session, audio metadata, and audio_links; audio arrays align by index and may be empty.

## Headers

| Header | Description |
| --- | --- |
| `api_key` Required | `$TRELLUS_API_KEY` The API key belonging to your Trellus user. |
| `session_id` Required, string | The exact `session_id` of one readable call, from a list row. |

## Response

| Status | What you receive |
| --- | --- |
| 200 | Object containing session, audio metadata, and audio_links; audio arrays align by index and may be empty. |
| Any other status `text/plain` | Read the HTTP status and response text; on 429 honor Retry-After seconds. |

- /get-audio-links returns one session object plus aligned audio and audio_links arrays. The URLs expire after one hour. Retention can leave both arrays empty.

More on rows, units and transcripts: [Responses and transcripts](https://www.trellus.ai/developers/api/responses).

## Errors

Error bodies can be plain text. Read the status and the response text.

### 429 Too Many Requests

Wait the Retry-After number of seconds, then retry with a bounded retry policy. Coordinate workers using the same user key. Default backend limits are per user, not per IP. If only your shared cloud host is blocked despite pacing, give support the UTC time, endpoint and response headers so upstream limits can be investigated.

Every documented case is on [Errors and troubleshooting](https://www.trellus.ai/developers/api/errors).
