> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telzino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Share Call Transcript

> Create a public link to a call transcript

Creates a public, unauthenticated link to a call's transcript — the same link the
dashboard's **Share Transcript** button produces. Anyone who has the link can open it;
no Telzino login is required.

The transcript is snapshotted at share time, so later edits to the call log do not
change what the link shows. If the call log is later deleted, the link stops working.

<Warning>
  Links are **permanent** and **cannot be revoked**. Only share transcripts you are
  comfortable making public to anyone who obtains the URL.
</Warning>

## Path Parameters

<ParamField path="callLogId" type="string" required>
  The call log ID (UUID format), as returned by [List Call Logs](/api-reference/call-logs)
</ParamField>

This endpoint takes no request body.

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.telzino.com/v1/call-logs/123e4567-e89b-12d3-a456-426614174000/share" \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const callLogId = '123e4567-e89b-12d3-a456-426614174000';

  const response = await fetch(
    `https://api.telzino.com/v1/call-logs/${callLogId}/share`,
    {
      method: 'POST',
      headers: { 'Authorization': 'Bearer YOUR_ACCESS_TOKEN' }
    }
  );

  const { data } = await response.json();
  console.log(data.url); // https://app.telzino.com/share/transcript/...
  ```

  ```python Python theme={null}
  import requests

  call_log_id = '123e4567-e89b-12d3-a456-426614174000'

  response = requests.post(
      f'https://api.telzino.com/v1/call-logs/{call_log_id}/share',
      headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}
  )

  share = response.json()['data']
  print(share['url'])
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "data": {
      "id": "9b2f1c3e-5d4a-4f6b-8c7d-0e1f2a3b4c5d",
      "url": "https://app.telzino.com/share/transcript/9b2f1c3e-5d4a-4f6b-8c7d-0e1f2a3b4c5d",
      "call_log_id": "123e4567-e89b-12d3-a456-426614174000",
      "agent_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
      "created_at": "2026-08-29T14:30:00.000Z"
    }
  }
  ```

  ```json 400 theme={null}
  {
    "error": "invalid_request",
    "error_description": "callLogId must be a UUID"
  }
  ```

  ```json 401 theme={null}
  {
    "error": "invalid_token",
    "error_description": "Missing or invalid authorization token"
  }
  ```

  ```json 403 (Secure Access) theme={null}
  {
    "error": "forbidden",
    "error_description": "Transcript sharing is disabled because Secure Access is enabled for this organization."
  }
  ```

  ```json 403 (Sharing disabled) theme={null}
  {
    "error": "forbidden",
    "error_description": "Transcript sharing is disabled for this organization."
  }
  ```

  ```json 404 theme={null}
  {
    "error": "not_found",
    "error_description": "Call log not found"
  }
  ```

  ```json 503 theme={null}
  {
    "error": "service_unavailable",
    "error_description": "Unable to verify organization policy. Try again."
  }
  ```

  ```json 500 theme={null}
  {
    "error": "internal_error",
    "error_description": "Share link base URL is not configured"
  }
  ```
</ResponseExample>

## Response

| Field | Type | Description |
| - | - | - |
| `id` | string | Share identifier (UUID) — the last path segment of `url` |
| `url` | string | The public transcript URL |
| `call_log_id` | string | The call log that was shared |
| `agent_id` | string | The agent that handled the call |
| `created_at` | datetime | When the link was created (ISO 8601) |

<Note>
  If the account has an active [custom domain](/admin-guide/dashboard/account-settings#custom-domains),
  `url` is built on that domain so the link carries your branding. Otherwise it uses the
  Telzino app domain.
</Note>

## Behaviour

* **Every call creates a new link.** Calling this endpoint twice for the same call log
  returns two different URLs, both of which work. Store the `url` you intend to hand
  out rather than calling again.
* **Links never expire** and there is no revoke endpoint, matching the dashboard.
* **Deleted call logs.** A link to a call log that is later deleted returns
  "This link is invalid or has expired" to the viewer.

## Errors

Both `403` cases use `error: "forbidden"`; distinguish them by `error_description`.

| Status | `error` | Reason |
| - | - | - |
| `403` | `forbidden` | The organization has **Secure Access** enabled. Public links are never available for these organizations; transcripts can only be viewed by logged-in dashboard users. |
| `403` | `forbidden` | **Transcript Sharing** is disabled for the organization — either the organization toggle is off, or the feature is locked by the reseller or partner through [Feature Administration](/admin-guide/dashboard/feature-administration). Check with [List Feature Availability](/api-reference/features) (`transcript_sharing`). |
| `404` | `not_found` | The call log does not exist, has been deleted, or belongs to an agent outside your account. |
| `503` | `service_unavailable` | The organization's sharing policy could not be verified (this includes an agent that has no organization). The link is **not** created; retry the request. |
| `500` | `internal_error` | The link could not be created — for example the share base URL is not configured, or the transcript could not be read. No link is created; retry, and contact support if it persists. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.