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

# Queue a structural Browser action

> Queues one caller-minimal structural action for the exact Computer Screen. The caller selects only click, keypress, scroll, target switch, or target close plus a required source observation where stale DOM matters and a short deadline. The owning Session freezes the live RunAttempt and derives every Computer, Screen, attachment, actor, profile, ActionPolicy, ActionApproval, and UsageBudget coordinate before any provider contact. When ActionPolicy requires approval, the first attempt creates one exact durable Browser ActionApproval and admits no action; after a human decision, retry the identical request with the same Idempotency-Key so the Session re-evaluates current policy, rejoins only the matching approved decision, and persists the action. Navigation destinations and transient text cannot fit this operation.

Checkfu support posture: alpha; hosted. No release evidence journey applies to this operation.



## OpenAPI

````yaml /openapi.json post /v1/computers/{id}/screens/{screen_id}/actions
openapi: 3.1.0
info:
  title: Checkfu API
  version: '2026-08-27'
  description: >-
    Authentication is declared per operation: API-key, runtime, or connector
    bearer; Automation signature; or credential-free pairing redemption. Every
    general Checkfu REST request requires the dated `Checkfu-Version` header
    (one of: 2026-08-27); the three MCP JSON-RPC transports use
    `MCP-Protocol-Version`, A2A uses `A2A-Version`, and the provider OAuth
    callback carries neither Checkfu header. API keys resolve one Workspace
    without a request selector; authenticated responses identify it with
    `Checkfu-Workspace-Id`.
servers:
  - url: https://api.checkfu.com
security:
  - bearerAuth: []
tags:
  - name: organizations
  - name: sourceRepositories
  - name: tenants
  - name: workspaces
  - name: principals
  - name: principalGroups
  - name: principalAccessCredentials
  - name: apiKeys
  - name: agents
  - name: harnesses
  - name: harnessRuntime
  - name: sandboxProfiles
  - name: computerProfiles
  - name: permissionAssignments
  - name: actionPolicies
  - name: files
  - name: memoryStores
  - name: dreams
  - name: modelCredentials
  - name: modelRoutingProfiles
  - name: blueprintInstallations
  - name: toolSources
  - name: skills
  - name: skillSources
  - name: agentSources
  - name: skillProposals
  - name: instructionProposals
  - name: catalog
  - name: concepts
  - name: support
  - name: connections
  - name: connectionVaults
  - name: connectionAssignments
  - name: connectedRuntimes
  - name: projects
  - name: collaboration
  - name: automationGraphs
  - name: automations
  - name: actionApprovals
  - name: standingApprovals
  - name: usage
  - name: models
  - name: outcomes
  - name: budgets
  - name: billing
  - name: sessions
  - name: audit
  - name: sessionExports
  - name: runs
  - name: runnerPools
  - name: transcripts
  - name: sessionWatches
  - name: webhookEndpoints
  - name: integrationGateway
  - name: agentDeployments
  - name: workEnvironments
  - name: computers
  - name: computerScreens
  - name: computerBrowserObservations
  - name: computerBrowserActions
  - name: environments
  - name: vaults
  - name: apiMcp
  - name: a2a
paths:
  /v1/computers/{id}/screens/{screen_id}/actions:
    post:
      tags:
        - computerBrowserActions
      summary: Queue a structural Browser action
      description: >-
        Queues one caller-minimal structural action for the exact Computer
        Screen. The caller selects only click, keypress, scroll, target switch,
        or target close plus a required source observation where stale DOM
        matters and a short deadline. The owning Session freezes the live
        RunAttempt and derives every Computer, Screen, attachment, actor,
        profile, ActionPolicy, ActionApproval, and UsageBudget coordinate before
        any provider contact. When ActionPolicy requires approval, the first
        attempt creates one exact durable Browser ActionApproval and admits no
        action; after a human decision, retry the identical request with the
        same Idempotency-Key so the Session re-evaluates current policy, rejoins
        only the matching approved decision, and persists the action. Navigation
        destinations and transient text cannot fit this operation.


        Checkfu support posture: alpha; hosted. No release evidence journey
        applies to this operation.
      operationId: computerBrowserActions.createComputerBrowserAction
      parameters:
        - name: id
          in: path
          schema:
            $ref: '#/components/schemas/ComputerId'
          required: true
        - name: screen_id
          in: path
          schema:
            $ref: '#/components/schemas/ScreenId'
          required: true
        - name: checkfu-version
          in: header
          schema:
            type: string
            enum:
              - '2026-08-27'
          required: true
        - name: idempotency-key
          in: header
          schema:
            type: string
            allOf:
              - maxLength: 255
          required: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrowserSemanticActionIntent'
        required: true
      responses:
        '202':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  envelope:
                    $ref: '#/components/schemas/Objects_445'
                  action_fingerprint:
                    type: string
                    allOf:
                      - pattern: ^sha256:[0-9a-f]{64}$
                  destination_decision:
                    anyOf:
                      - anyOf:
                          - type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - allow
                              rule_key:
                                type: string
                                allOf:
                                  - minLength: 1
                                  - maxLength: 128
                                  - pattern: ^[a-z0-9][a-z0-9._-]*$
                              purpose:
                                $ref: '#/components/schemas/Union_395'
                              policy_digest:
                                type: string
                                allOf:
                                  - pattern: ^sha256:[0-9a-f]{64}$
                              destination_digest:
                                type: string
                                allOf:
                                  - pattern: ^sha256:[0-9a-f]{64}$
                              decided_at:
                                $ref: '#/components/schemas/CurrentTimestamp'
                            required:
                              - status
                              - rule_key
                              - purpose
                              - policy_digest
                              - destination_digest
                              - decided_at
                            additionalProperties: false
                          - type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - deny
                              reason:
                                type: string
                                enum:
                                  - destination_digest_mismatch
                                  - host_not_allowed
                                  - invalid_url
                                  - no_resolved_addresses
                                  - nonpublic_address
                                  - path_not_allowed
                                  - port_not_allowed
                                  - purpose_changed
                                  - purpose_not_allowed
                                  - scheme_not_allowed
                              policy_digest:
                                type: string
                                allOf:
                                  - pattern: ^sha256:[0-9a-f]{64}$
                              destination_digest:
                                type: string
                                allOf:
                                  - pattern: ^sha256:[0-9a-f]{64}$
                              decided_at:
                                $ref: '#/components/schemas/CurrentTimestamp'
                            required:
                              - status
                              - reason
                              - policy_digest
                              - destination_digest
                              - decided_at
                            additionalProperties: false
                      - type: 'null'
                  admitted_at:
                    $ref: '#/components/schemas/CurrentTimestamp'
                required:
                  - envelope
                  - action_fingerprint
                  - destination_decision
                  - admitted_at
                additionalProperties: false
          headers:
            checkfu-workspace-id:
              description: The Workspace resolved from the authenticated bearer credential.
              required: true
              schema:
                $ref: '#/components/schemas/WorkspaceId'
        '400':
          description: Typed Checkfu wire error
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - validation.malformed
                      message:
                        type: string
                      more:
                        type: string
                        enum:
                          - >-
                            https://docs.checkfu.com/reference/errors#validation-malformed
                        description: >-
                          Stable public documentation and remedy for this error
                          type.
                    required:
                      - type
                      - message
                      - more
                    additionalProperties: false
                additionalProperties: false
        '401':
          description: Typed Checkfu wire error
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - type
                      - message
                      - more
                    properties:
                      type:
                        type: string
                        enum:
                          - auth.invalid_key
                      message:
                        type: string
                      more:
                        type: string
                        enum:
                          - >-
                            https://docs.checkfu.com/reference/errors#auth-invalid-key
                        description: >-
                          Stable public documentation and remedy for this error
                          type.
                    additionalProperties: false
                additionalProperties: false
        '403':
          description: >-
            The organization, tenant, or workspace backing this key is
            administratively disabled. | Deployment governance or retention
            policy denied the request.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    required:
                      - error
                    properties:
                      error:
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - auth.disabled_tenancy
                          message:
                            type: string
                          more:
                            type: string
                            enum:
                              - >-
                                https://docs.checkfu.com/reference/errors#auth-disabled-tenancy
                            description: >-
                              Stable public documentation and remedy for this
                              error type.
                        required:
                          - type
                          - message
                          - more
                        additionalProperties: false
                    additionalProperties: false
                  - $ref: '#/components/schemas/PolicyDeniedError'
        '404':
          description: >-
            The requested resource does not exist in the resolved deployment
            boundary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationNotFoundError'
        '409':
          description: >-
            The request conflicts with the resource's current state. | An
            idempotent mutation conflicts with a completed or in-progress
            request for the same key.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ValidationConflictError'
                  - $ref: '#/components/schemas/IdempotencyConflictError'
        '429':
          description: Typed Checkfu wire error
          headers:
            retry-after:
              description: >-
                Delay in seconds for rate limits or deployment quotas with a
                known release or UTC reset boundary
              required: false
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - type
                      - message
                      - more
                    properties:
                      type:
                        type: string
                        enum:
                          - budget.exceeded
                      message:
                        type: string
                      more:
                        type: string
                        enum:
                          - >-
                            https://docs.checkfu.com/reference/errors#budget-exceeded
                        description: >-
                          Stable public documentation and remedy for this error
                          type.
                    additionalProperties: false
                additionalProperties: false
        '500':
          description: >-
            An unexpected internal failure occurred; the message contains an
            opaque incident reference.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuntimeInternalError'
      security:
        - bearerAuth: []
components:
  schemas:
    ComputerId:
      type: string
      allOf:
        - pattern: ^comp_[0-9a-f]{32}$
    ScreenId:
      type: string
      allOf:
        - pattern: ^scrn_[0-9a-f]{32}$
    BrowserSemanticActionIntent:
      type: object
      properties:
        source_observation_id:
          anyOf:
            - $ref: '#/components/schemas/BrowserObservationId'
            - type: 'null'
        action:
          anyOf:
            - $ref: '#/components/schemas/Objects_440'
            - $ref: '#/components/schemas/Objects_441'
            - $ref: '#/components/schemas/Objects_442'
            - $ref: '#/components/schemas/Objects_443'
            - $ref: '#/components/schemas/Objects_444'
        deadline:
          $ref: '#/components/schemas/CurrentTimestamp'
      required:
        - source_observation_id
        - action
        - deadline
      additionalProperties: false
    Objects_445:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/BrowserActionId'
        workspace_id:
          $ref: '#/components/schemas/WorkspaceId'
        computer_id:
          $ref: '#/components/schemas/ComputerId'
        expected_computer_generation:
          type: integer
          allOf:
            - exclusiveMinimum: 0
        screen_id:
          $ref: '#/components/schemas/ScreenId'
        attachment_id:
          $ref: '#/components/schemas/ComputerAttachmentId'
        session_id:
          $ref: '#/components/schemas/SessionId'
        run_id:
          $ref: '#/components/schemas/RunId'
        run_attempt_id:
          $ref: '#/components/schemas/RunAttemptId'
        acting_principal_id:
          $ref: '#/components/schemas/PrincipalId'
        expected_control_epoch:
          type: integer
          allOf:
            - minimum: 0
        expected_observation_generation:
          type: integer
          allOf:
            - minimum: 0
        source_observation_id:
          anyOf:
            - $ref: '#/components/schemas/BrowserObservationId'
            - type: 'null'
        action:
          anyOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - navigate
                destination_digest:
                  type: string
                  allOf:
                    - pattern: ^sha256:[0-9a-f]{64}$
              required:
                - type
                - destination_digest
              additionalProperties: false
            - $ref: '#/components/schemas/Objects_440'
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - type_text
                locator:
                  $ref: '#/components/schemas/Union_394'
                text_digest:
                  type: string
                  allOf:
                    - pattern: ^sha256:[0-9a-f]{64}$
                utf8_bytes:
                  type: integer
                  allOf:
                    - exclusiveMinimum: 0
                    - maximum: 16384
              required:
                - type
                - locator
                - text_digest
                - utf8_bytes
              additionalProperties: false
            - $ref: '#/components/schemas/Objects_441'
            - $ref: '#/components/schemas/Objects_442'
            - $ref: '#/components/schemas/Objects_443'
            - $ref: '#/components/schemas/Objects_444'
        policy_context_digest:
          type: string
          allOf:
            - pattern: ^sha256:[0-9a-f]{64}$
        action_approval_context_digest:
          anyOf:
            - type: string
              allOf:
                - pattern: ^sha256:[0-9a-f]{64}$
            - type: 'null'
        usage_budget_context_digest:
          type: string
          allOf:
            - pattern: ^sha256:[0-9a-f]{64}$
        requested_at:
          $ref: '#/components/schemas/CurrentTimestamp'
        deadline:
          $ref: '#/components/schemas/CurrentTimestamp'
      required:
        - id
        - workspace_id
        - computer_id
        - expected_computer_generation
        - screen_id
        - attachment_id
        - session_id
        - run_id
        - run_attempt_id
        - acting_principal_id
        - expected_control_epoch
        - expected_observation_generation
        - source_observation_id
        - action
        - policy_context_digest
        - action_approval_context_digest
        - usage_budget_context_digest
        - requested_at
        - deadline
      additionalProperties: false
    Union_395:
      type: string
      enum:
        - navigate
        - popup
        - download
        - websocket
        - background_request
    CurrentTimestamp:
      type: string
      allOf:
        - maxLength: 24
        - pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$
          description: A canonical UTC ISO-8601 timestamp with millisecond precision.
    WorkspaceId:
      type: string
      allOf:
        - pattern: ^wrkspc_[0-9a-f]{32}$
    PolicyDeniedError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - policy.denied
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#policy-denied
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: Deployment governance or retention policy denied the request.
    ValidationNotFoundError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.not_found
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#validation-not-found
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: >-
        The requested resource does not exist in the resolved deployment
        boundary.
    ValidationConflictError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.conflict
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#validation-conflict
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: The request conflicts with the resource's current state.
    IdempotencyConflictError:
      anyOf:
        - $ref: '#/components/schemas/ValidationIdempotencyConflictError'
        - $ref: '#/components/schemas/ValidationIdempotencyInProgressError'
      description: >-
        An idempotent mutation conflicts with a completed or in-progress request
        for the same key.
    RuntimeInternalError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - runtime.internal
            message:
              type: string
            more:
              type: string
              enum:
                - https://docs.checkfu.com/reference/errors#runtime-internal
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: >-
        An unexpected internal failure occurred; the message contains an opaque
        incident reference.
    BrowserObservationId:
      type: string
      allOf:
        - pattern: ^bobs_[0-9a-f]{32}$
    Objects_440:
      type: object
      properties:
        type:
          type: string
          enum:
            - click
        locator:
          $ref: '#/components/schemas/Union_394'
      required:
        - type
        - locator
      additionalProperties: false
    Objects_441:
      type: object
      properties:
        type:
          type: string
          enum:
            - keypress
        keys:
          type: array
          items:
            type: string
            allOf:
              - minLength: 1
              - maxLength: 32
              - pattern: ^[a-zA-Z0-9+_-]+$
          allOf:
            - minItems: 1
            - maxItems: 4
      required:
        - type
        - keys
      additionalProperties: false
    Objects_442:
      type: object
      properties:
        type:
          type: string
          enum:
            - scroll
        locator:
          anyOf:
            - $ref: '#/components/schemas/Union_394'
            - type: 'null'
        delta_x:
          type: integer
          allOf:
            - minimum: -100000
              maximum: 100000
        delta_y:
          type: integer
          allOf:
            - minimum: -100000
              maximum: 100000
      required:
        - type
        - locator
        - delta_x
        - delta_y
      additionalProperties: false
    Objects_443:
      type: object
      properties:
        type:
          type: string
          enum:
            - switch_target
        target_label:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 128
            - pattern: ^[a-z0-9][a-z0-9._-]*$
      required:
        - type
        - target_label
      additionalProperties: false
    Objects_444:
      type: object
      properties:
        type:
          type: string
          enum:
            - close_target
        target_label:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 128
            - pattern: ^[a-z0-9][a-z0-9._-]*$
      required:
        - type
        - target_label
      additionalProperties: false
    BrowserActionId:
      type: string
      allOf:
        - pattern: ^bact_[0-9a-f]{32}$
    ComputerAttachmentId:
      type: string
      allOf:
        - pattern: ^catt_[0-9a-f]{32}$
    SessionId:
      type: string
      allOf:
        - pattern: ^sess_[0-9a-f]{32}$
    RunId:
      type: string
      allOf:
        - pattern: ^run_[0-9a-f]{32}$
    RunAttemptId:
      type: string
      allOf:
        - pattern: ^ratt_[0-9a-f]{32}$
    PrincipalId:
      type: string
      allOf:
        - pattern: ^prin_[0-9a-f]{32}$
    Union_394:
      anyOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - role
            role:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
            accessible_name:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
          required:
            - type
            - role
            - accessible_name
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              enum:
                - label
            label:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
          required:
            - type
            - label
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              enum:
                - stable_attribute
            attribute_name:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
            value:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
          required:
            - type
            - attribute_name
            - value
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              enum:
                - visible_text
            text:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
            occurrence:
              type: integer
              allOf:
                - exclusiveMinimum: 0
          required:
            - type
            - text
            - occurrence
          additionalProperties: false
    ValidationIdempotencyConflictError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.idempotency_conflict
            message:
              type: string
            more:
              type: string
              enum:
                - >-
                  https://docs.checkfu.com/reference/errors#validation-idempotency-conflict
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: The Idempotency-Key is already bound to a different request.
    ValidationIdempotencyInProgressError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - validation.idempotency_in_progress
            message:
              type: string
            more:
              type: string
              enum:
                - >-
                  https://docs.checkfu.com/reference/errors#validation-idempotency-in-progress
              description: Stable public documentation and remedy for this error type.
          required:
            - type
            - message
            - more
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: >-
        An identical idempotent request is still in progress and may be retried
        later.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````