---
title: "Get voice session transcript"
method: GET
path: "/voice/sessions/{voiceSessionId}/transcript"
tags: ["Voice"]
---

# Get voice session transcript

`GET /voice/sessions/{voiceSessionId}/transcript`

## Request

- Base URL: `https://api.natural.com`
- URL: `https://api.natural.com/voice/sessions/{voiceSessionId}/transcript`
- Auth: HTTP bearer

Get a voice session's transcript

## Path parameters

- `voiceSessionId` string, required: Voice session ID (vos_*).

## Query parameters

- `customerPartyId` string: Customer party to act for (pty_*). Omit for your account's call log, including delegated activity. Requires authorization from that customer.

## Headers

- `X-Instance-ID` string, nullable

## Response `200`

Successful Response

- object
  - `data` VoiceSessionTranscript, required
    - `id` string, required: Parent voice session ID (vos_*).
    - `type` 'voiceSessionTranscript', required: Resource type. Always `voiceSessionTranscript`.
    - `attributes` object, required
      - `status` 'available' | 'notAvailable', required: Transcript availability. `notAvailable` when no call started. A missing provider link after call start is an error.
      - `turns` object[], required: Transcript turns in order. Empty when not available.
        - `role` 'caller' | 'assistant' | 'system', required: Speaker or an explicitly supported call event.
        - `text` string, required: Redacted customer-facing dialogue or a supported system event label.
        - `at` string, nullable, required: RFC 3339 timestamp of the turn, or null when unavailable.
    - `relationships` object, required
      - `voiceSession` object, required: Parent voice session.
        - `data` object, required: Related resource identifier.
          - `type` 'voiceSession', required: Resource type. Always `voiceSession`.
          - `id` string, required

## Other responses

- `400`: Validation Error
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found. Returned when the resource does not exist, or when it exists but is not accessible to your account. The two cases are intentionally indistinguishable, so that resource IDs cannot be enumerated by probing.
- `409`: Conflict
- `422`: Validation Error. The response contains one error object for each invalid request value.
- `428`: Precondition Required
- `429`: Too Many Requests
- `500`: Internal Server Error
- `501`: Not Implemented
- `502`: Bad Gateway
- `503`: Service Unavailable

## Changes

- **2026-09-29** `4fab756be152`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/natural/apis/natural-api/changes/voice/sessions/:voiceSessionId/transcript/get.md)

---

[API](https://skmtc.dev/natural/apis/natural-api.md) - [All operations](https://skmtc.dev/natural/apis/natural-api/llms.txt) - [OpenAPI document](https://skmtc.dev/natural/apis/natural-api/revisions/59c1208fa5dc?raw)
