---
title: "[beta] Get voice agent session details"
method: GET
path: "/agent-studio/voice-sessions"
tags: ["Beta APIs"]
---

# \[beta\] Get voice agent session details

`GET /agent-studio/voice-sessions`

## Request

- Base URL: `https://api.samsara.com`
- URL: `https://api.samsara.com/agent-studio/voice-sessions`
- Auth: HTTP bearer

Returns full details — including the transcript, tool calls, lifecycle events, and a recording URL — for a batch of voice agent sessions identified by `ids`. Discover session IDs with GET /agent-studio/voice-sessions/stream. Up to 100 IDs may be requested per call; IDs that are not found are omitted from the response.

 <b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).

To use this endpoint, select **Read Agent Studio Voice Sessions** under the Closed Beta category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
 

 **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.

## Query parameters

- `ids` string[], required

## Response `200`

OK response.

- AgentStudioVoiceSessionsGetVoiceSessionsResponseBody
  - `data` AgentStudioVoiceSessionDetailResponseBody[], required: Voice session details for the requested IDs. IDs that were not found are omitted.
    - `agentId` string, required: Identifier of the Agent Studio agent that handled the session.
    - `agentName` string, required: Display name of the agent that handled the session.
    - `callEvents` AgentStudioVoiceSessionCallEventResponseBody[], required: Lifecycle events that occurred during the session, ordered by time ascending.
      - `happenedAtTime` string, date-time, required: Time at which the event occurred, in RFC 3339 format.
      - `type` string, required: Human-readable description of the lifecycle event.
    - `durationMilliseconds` integer, required: Duration of the session, in milliseconds.
    - `happenedAtTime` string, date-time, required: Time at which the session started, in RFC 3339 format.
    - `id` string, required: Unique identifier for the voice session.
    - `recipient` string, required: Human-readable name of the call recipient (driver name, dashboard user name, or phone number). Empty string when the recipient could not be resolved.
    - `recordingUrl` string, required: Presigned URL for the call recording. Empty string when no recording is available (e.g. the session has not completed). Expires at recordingUrlExpiresAtTime.
    - `recordingUrlExpiresAtTime` string, required: Time at which recordingUrl stops working, in RFC 3339 format. Empty string when recordingUrl is empty.
    - `sessionStatus` 'completed' | 'running' | 'failed' | 'unknown', required: Lifecycle status of the session. Valid values: `completed`, `running`, `failed`, `unknown`
    - `toolCalls` AgentStudioVoiceSessionToolCallResponseBody[], required: Tool calls made by the agent during the session, ordered by start time ascending.
      - `arguments` string, required: Arguments passed to the tool, as a JSON-encoded string.
      - `durationMilliseconds` integer, required: Wall-clock duration of the tool call, in milliseconds. Zero when the duration is unknown.
      - `name` string, required: Name of the tool that was invoked.
      - `output` string, required: Output returned by the tool, as a string. Empty when the tool produced no output.
      - `startMilliseconds` integer, required: Offset from the start of the session at which the tool call started, in milliseconds.
      - `status` 'success' | 'error' | 'unknown', required: Outcome of the tool call. Defaults to `unknown` when the outcome could not be determined. Valid values: `success`, `error`, `unknown`
    - `transcript` AgentStudioVoiceSessionTranscriptEntryResponseBody[], required: Conversation transcript, ordered by start time ascending.
      - `endMilliseconds` integer, required: Offset from the start of the session at which this utterance ended, in milliseconds. Approximated from the start of the next utterance (or the end of the session for the final utterance).
      - `speakerType` 'agent' | 'driver' | 'admin' | 'unknown', required: Who produced this utterance. Defaults to `unknown` when the speaker cannot be confidently classified. Valid values: `agent`, `driver`, `admin`, `unknown`
      - `startMilliseconds` integer, required: Offset from the start of the session at which this utterance began, in milliseconds.
      - `text` string, required: Transcribed text of the utterance.
    - `triggerType` string, required: Human-readable name of the trigger that initiated the session, as configured in Automations. Empty string when no trigger is associated with the session.
    - `updatedAtTime` string, date-time, required: Time at which the session was last updated, in RFC 3339 format.

## Other responses

- `401`: Unauthorized response.
- `404`: Not Found response.
- `405`: Method Not Allowed response.
- `413`: Content Too Large response.
- `429`: Too Many Requests response.
- `500`: Internal Server Error response.
- `501`: Not Implemented response.
- `502`: Bad Gateway response.
- `503`: Service Unavailable response.
- `504`: Gateway Timeout response.
- `default`: Bad Request response.

---

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