---
title: "Update a recording example"
method: POST
path: "/api/v1/update_example"
tags: ["add_example"]
---

# Update a recording example

`POST /api/v1/update_example`

Updates the automation, description, and endpoint name of an existing recording example.

## Headers

- `x-api-key` string, required

## Request body

- BodyUpdateExampleApiV1UpdateExamplePost
  - `automation` Automation, required
    - `browser_channel` 'chromium' | 'chrome' | 'cloakbrowser' | 'browser-use' | 'rdp'
    - `backend` 'browser-use' | 'computer-vision'
    - `os_emulation` 'windows' | 'linux', nullable
    - `allow_cookies` boolean
    - `max_retries` integer
    - `expected_downloads` integer
    - `remove_empty_nodes_in_axtree` boolean
    - `url` string, required
    - `take_final_screenshot` boolean
    - `parameters` Parameters, required
      - `input_parameters` object, required
      - `secure_parameters` object
      - `generated_parameters` object, required
    - `nodes` union[], required
      - union
        - ActionNode
          - `type` 'action_node', required
          - `interaction_action` InteractionAction — unresolved $ref
          - `assertion_action` AssertionAction
            - `network_call` NetworkCallAssertion
              - …
            - `llm` LLMAssertion
              - …
            - `python_script` PythonScriptAssertion
              - …
          - `extraction_action` ExtractionAction
            - `unique_identifier` string, nullable
            - `allow_none` boolean
            - `network_call` NetworkCallExtraction
              - …
            - `llm` LLMExtraction
              - …
            - `python_script` PythonScriptExtraction
              - …
            - `screenshot` ScreenshotExtraction
              - …
            - `state` StateExtraction
            - `two_fa_action` TwoFAAction
              - …
            - `pdf` PDFExtraction
              - …
            - `ocr_coordinates` OCRCoordinatesExtraction
              - …
            - `locator` LocatorExtraction
              - …
            - `vision` VisionExtraction
              - …
            - `api_call` APICallExtraction
              - …
          - `python_script_action` PythonScriptAction
            - `execution_code` string, required
          - `powershell_action` PowerShellAction — Run a list of PowerShell commands on the current RDP Windows machine. Opens PowerShell via Win+R, executes all commands sequentially, and closes the session (sends 'exit' automatically).
            - `commands` string[], required
            - `exit_after_commands` boolean
          - `sleep_action` SleepAction
            - `sleep_time` number, required
          - `fail_state_action` FailStateAction
            - `failure_message` string
          - `captcha_action` CaptchaAction
            - `locator` string, required
            - `secondary_locator` string, nullable
            - `wait_time` number
            - `llm_provider` 'gemini'
            - `llm_model_name` string
            - `config` object
          - `misc_action` MiscAction — Container for miscellaneous actions (set_variable, llm_query, etc.). Exactly one sub-action must be provided.
            - `set_variable` SetVariableAction — Set a value in generated_variables. Use `value` for a static value, or `expression` for a computed value (evaluated after variable replacement, e.g. "{counter[0]} + 1").
              - …
            - `llm_query` LLMQueryAction
              - …
          - `human_in_loop_action` HumanInLoopAction
            - `max_wait_time` number, required
          - `before_sleep_time` number
          - `end_sleep_time` number
          - `expect_new_tab` boolean
          - `max_new_tab_wait_time` number
          - `localized_axtree_string` string, nullable
        - ForLoopNode
          - `type` 'for_loop_node', required
          - `variable_name` string, required
          - `nodes` union[], required
            - union
              - …
          - `reset_nodes` union[]
            - union
              - …
          - `on_error_in_loop` 'continue' | 'break' | 'raise'
        - IfElseNode
          - `type` 'if_else_node', required
          - `condition` string, required
          - `if_nodes` union[], required
            - union
              - …
          - `else_nodes` union[]
            - union
              - …
        - AssertLocatorNode — Evaluate a Playwright locator assertion and store the boolean result. The locator is evaluated against `page` via Browser.get_locator_from_command (same `eval("page." + command)` style used by interaction actions). If the assertion holds within `timeout` seconds the result is True, otherwise False. The boolean is stored in generated_variables under `output_variable_name` (as a single-element list, e.g. {output_variable_name: [True]}) so it can be referenced later via `{output_variable_name[0]}`, e.g. in an if_else_node condition. When `output_variable_name` is omitted, the result is stored under `node{index}_output`, where index is the node's step index resolved at runtime.
          - `type` 'assert_locator_node', required
          - `locator` string, required
          - `assertion` 'to_be_visible' | 'to_be_hidden', required
          - `output_variable_name` string, nullable
          - `timeout` number
    - `automation_description` string, nullable
    - `automation_endpoint` string, nullable
    - `post_processing_nodes` union[]
      - union
        - ActionNode
          - `type` 'action_node', required
          - `interaction_action` InteractionAction — unresolved $ref
          - `assertion_action` AssertionAction
            - `network_call` NetworkCallAssertion
              - …
            - `llm` LLMAssertion
              - …
            - `python_script` PythonScriptAssertion
              - …
          - `extraction_action` ExtractionAction
            - `unique_identifier` string, nullable
            - `allow_none` boolean
            - `network_call` NetworkCallExtraction
              - …
            - `llm` LLMExtraction
              - …
            - `python_script` PythonScriptExtraction
              - …
            - `screenshot` ScreenshotExtraction
              - …
            - `state` StateExtraction
            - `two_fa_action` TwoFAAction
              - …
            - `pdf` PDFExtraction
              - …
            - `ocr_coordinates` OCRCoordinatesExtraction
              - …
            - `locator` LocatorExtraction
              - …
            - `vision` VisionExtraction
              - …
            - `api_call` APICallExtraction
              - …
          - `python_script_action` PythonScriptAction
            - `execution_code` string, required
          - `powershell_action` PowerShellAction — Run a list of PowerShell commands on the current RDP Windows machine. Opens PowerShell via Win+R, executes all commands sequentially, and closes the session (sends 'exit' automatically).
            - `commands` string[], required
            - `exit_after_commands` boolean
          - `sleep_action` SleepAction
            - `sleep_time` number, required
          - `fail_state_action` FailStateAction
            - `failure_message` string
          - `captcha_action` CaptchaAction
            - `locator` string, required
            - `secondary_locator` string, nullable
            - `wait_time` number
            - `llm_provider` 'gemini'
            - `llm_model_name` string
            - `config` object
          - `misc_action` MiscAction — Container for miscellaneous actions (set_variable, llm_query, etc.). Exactly one sub-action must be provided.
            - `set_variable` SetVariableAction — Set a value in generated_variables. Use `value` for a static value, or `expression` for a computed value (evaluated after variable replacement, e.g. "{counter[0]} + 1").
              - …
            - `llm_query` LLMQueryAction
              - …
          - `human_in_loop_action` HumanInLoopAction
            - `max_wait_time` number, required
          - `before_sleep_time` number
          - `end_sleep_time` number
          - `expect_new_tab` boolean
          - `max_new_tab_wait_time` number
          - `localized_axtree_string` string, nullable
        - ForLoopNode
          - `type` 'for_loop_node', required
          - `variable_name` string, required
          - `nodes` union[], required
            - union
              - …
          - `reset_nodes` union[]
            - union
              - …
          - `on_error_in_loop` 'continue' | 'break' | 'raise'
        - IfElseNode
          - `type` 'if_else_node', required
          - `condition` string, required
          - `if_nodes` union[], required
            - union
              - …
          - `else_nodes` union[]
            - union
              - …
        - AssertLocatorNode — Evaluate a Playwright locator assertion and store the boolean result. The locator is evaluated against `page` via Browser.get_locator_from_command (same `eval("page." + command)` style used by interaction actions). If the assertion holds within `timeout` seconds the result is True, otherwise False. The boolean is stored in generated_variables under `output_variable_name` (as a single-element list, e.g. {output_variable_name: [True]}) so it can be referenced later via `{output_variable_name[0]}`, e.g. in an if_else_node condition. When `output_variable_name` is omitted, the result is stored under `node{index}_output`, where index is the node's step index resolved at runtime.
          - `type` 'assert_locator_node', required
          - `locator` string, required
          - `assertion` 'to_be_visible' | 'to_be_hidden', required
          - `output_variable_name` string, nullable
          - `timeout` number
  - `description` string, required
  - `endpoint_name` string, required

## Response `200`

Successful Response

- SuccessMessageResponse
  - `success` boolean, required
  - `message` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-07-26** `653b9ca575a8` — 1 breaking, 2 info
  - the response's body type/format changed from ``/`` to `object`/`` for status `200`
  - added the required property `message` to the response with the `200` status
  - added the required property `success` to the response with the `200` status

[Change history](https://skmtc.dev/optexity/apis/dashboard-backend-api/changes/api/v1/update_example/post.md)

---

[API](https://skmtc.dev/optexity/apis/dashboard-backend-api.md) · [All operations](https://skmtc.dev/optexity/apis/dashboard-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/optexity/dashboard-backend-api/revisions/653b9ca575a8/schema)
