---
title: "Get action result"
method: GET
path: "/browser_sessions/{id}/actions/{actionId}"
tags: ["Actions"]
---

# Get action result

`GET /browser_sessions/{id}/actions/{actionId}`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/browser_sessions/{id}/actions/{actionId}`
- Auth: HTTP bearer

Returns the stored status and result of an action. Use this to poll actions that returned 202; HTTP 200 can contain any action status. Stored observations contain metadata with empty tree and refs, not the full snapshot; submit a fresh observe action to obtain current refs.

## Path parameters

- `id` string, required
- `actionId` string, required

## Response `200`

Action details

- object
  - `data` ActionResponse
    - `id` string, required
    - `session_id` string, required
    - `seq` integer, required
    - `type` string, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'unknown', required: POST returns 202 for queued or running actions. Terminal states are succeeded, failed, and unknown (the execution outcome could not be determined, with error.code=execution_lost). GET returns 200 for both nonterminal and terminal states.
    - `result` object, nullable, required
      - `url` string
      - `title` string
      - `observation` object: Full tree and refs are delivered only in the original successful POST response when completed within wait_seconds. GET polling and idempotent replays return metadata with an empty tree and refs plus ref_count. Submit a fresh observe action to obtain usable refs.
        - `observation_id` string
        - `url` string
        - `title` string
        - `refs` object
        - `tree` string
        - `truncated` boolean
        - `ref_count` integer: Number of refs in the original observation, present on stored observation metadata.
      - `artifact` object
        - `artifact_id` string
        - `content_type` string
        - `size_bytes` integer
      - `results` object[]: Present only for batch actions.
    - `request` object, required: Normalized request metadata; defaults may be materialized and fill values are redacted as {redacted: true, length: number}, including inside batch actions.
    - `error` object, nullable, required: Null unless an execution failure is recorded. Action failures (policy_denied, stale_observation, stale_ref, navigation_blocked, timeout, execution_lost, result_too_large) are returned on the action resource with HTTP 200. An unknown action with execution_lost has retryable=false; inspect session state and reconcile possible effects before any new action. Separately, a request may return HTTP 503 with a top-level execution_lost error and retryable=true; that is not proof of safe re-execution.
      - `code` string, required
      - `retryable` boolean, required
    - `created_at` string, date-time, required
    - `started_at` string, date-time, nullable, required
    - `completed_at` string, date-time, nullable, required

## Other responses

- `401`: Unauthorized — missing or invalid API key.
- `404`: Session or artifact not found.

## Changes

> 152 revisions in range; 1 not diffed.

- **2026-10-22** `2961ffd5402d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/changes/browser_sessions/:id/actions/:actionId/get.md)

---

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