Skyvern: Run an SDK action
Skyvern sdk.runSdkAction: arguments, response, policy and SDK examples.
← Sdk operations · Get started
Operation skyvern.run_sdk_action_v1_sdk_run_action_post
Provider route: POST /v1/sdk/run_action. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/skyvern with npm, or alter-sdk-skyvern with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { SkyvernIntegration } from "@alter-ai/skyvern";
async function execute(input: Parameters<SkyvernIntegration["sdk"]["runSdkAction"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new SkyvernIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.sdk.runSdkAction(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_skyvern import SkyvernIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = SkyvernIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.sdk.run_sdk_action(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
body | Model | Required within parent | Expand Run an SDK action — request body — body |
Referenced models: Run an SDK action — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Run an SDK action — response body |
Referenced models: Run an SDK action — response body
Schemas
Section titled “Schemas”3 more schemas are linked from the tables above, on the schema pages.
Run an SDK action — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Response from running an SDK action. |
result | JSON | Optional | The result from the action (e.g., selector, value, extracted data) |
result (anyOf 1) | JSON | Alternative | |
result (anyOf 2) | null | Alternative | |
workflow_run_id | string | Required within parent | The workflow run ID used for this action |
Run an SDK action — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Request to run a single SDK action. |
action | JSON | Required within parent | The action to execute with its specific parameters |
action (oneOf 1) | Model | Alternative | Expand Run an SDK action — request body — body action type ai click |
action (oneOf 2) | Model | Alternative | Expand Run an SDK action — request body — body action type ai input text |
action (oneOf 3) | Model | Alternative | Expand Run an SDK action — request body — body action type ai select option |
action (oneOf 4) | Model | Alternative | Expand Run an SDK action — request body — body action type ai upload file |
action (oneOf 5) | Model | Alternative | Expand Run an SDK action — request body — body action type ai act |
action (oneOf 6) | Model | Alternative | Expand Run an SDK action — request body — body action type extract |
action (oneOf 7) | Model | Alternative | Expand Run an SDK action — request body — body action type locate element |
action (oneOf 8) | Model | Alternative | Expand Run an SDK action — request body — body action type validate |
action (oneOf 9) | Model | Alternative | Expand Run an SDK action — request body — body action type prompt |
browser_address | JSON | Optional | The browser address |
browser_address (anyOf 1) | string | Alternative | |
browser_address (anyOf 2) | null | Alternative | |
browser_session_id | JSON | Optional | The browser session ID |
browser_session_id (anyOf 1) | string | Alternative | |
browser_session_id (anyOf 2) | null | Alternative | |
url | string | Required within parent | The URL where the action should be executed |
workflow_run_id | JSON | Optional | Optional workflow run ID to continue an existing workflow run |
workflow_run_id (anyOf 1) | string | Alternative | |
workflow_run_id (anyOf 2) | null | Alternative |
Referenced models: Run an SDK action — request body — body action type ai act, Run an SDK action — request body — body action type ai click, Run an SDK action — request body — body action type extract, Run an SDK action — request body — body action type ai input text, Run an SDK action — request body — body action type locate element, Run an SDK action — request body — body action type prompt, Run an SDK action — request body — body action type ai select option, Run an SDK action — request body — body action type ai upload file, Run an SDK action — request body — body action type validate
Run an SDK action — request body — body action type ai act
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | AI act action parameters. |
data | JSON | Optional | Additional context data |
data (anyOf 1) | string | Alternative | |
data (anyOf 2) | object | Alternative | Additional keys: allowed |
data (anyOf 3) | null | Alternative | |
intention | string | Optional | Natural language prompt for the action Default: |
type | string | Required within parent | Must equal: ai_act Default: ai_act |
Run an SDK action — request body — body action type ai click
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Click action parameters. |
data | JSON | Optional | Additional context data |
data (anyOf 1) | string | Alternative | |
data (anyOf 2) | object | Alternative | Additional keys: allowed |
data (anyOf 3) | null | Alternative | |
intention | string | Optional | The intention or goal of the click Default: |
selector | JSON | Optional | CSS selector for the element Default: |
selector (anyOf 1) | string | Alternative | |
selector (anyOf 2) | null | Alternative | |
timeout | number | Optional | Timeout in milliseconds Default: 10000 |
type | string | Required within parent | Must equal: ai_click Default: ai_click |
Run an SDK action — request body — body action type extract
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Extract data action parameters. |
data | JSON | Optional | Additional context data |
data (anyOf 1) | string | Alternative | |
data (anyOf 2) | object | Alternative | Additional keys: allowed |
data (anyOf 3) | null | Alternative | |
error_code_mapping | JSON | Optional | Error code mapping for extraction |
error_code_mapping (anyOf 1) | object | Alternative | Additional keys: see wildcard field |
error_code_mapping (anyOf 1).* | string | Additional keys | |
error_code_mapping (anyOf 2) | null | Alternative | |
extract_schema | JSON | Optional | Schema for extraction |
extract_schema (anyOf 1) | object | Alternative | Additional keys: allowed |
extract_schema (anyOf 2) | array | Alternative | |
extract_schema (anyOf 2)[] | JSON | Each item | |
extract_schema (anyOf 3) | string | Alternative | |
extract_schema (anyOf 4) | null | Alternative | |
intention | JSON | Optional | The intention or goal of the extraction |
intention (anyOf 1) | string | Alternative | |
intention (anyOf 2) | null | Alternative | |
prompt | string | Optional | Extraction prompt Default: |
type | string | Required within parent | Must equal: extract Default: extract |
Run an SDK action — request body — body action type ai input text
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Input text action parameters. |
data | JSON | Optional | Additional context data |
data (anyOf 1) | string | Alternative | |
data (anyOf 2) | object | Alternative | Additional keys: allowed |
data (anyOf 3) | null | Alternative | |
intention | string | Optional | The intention or goal of the input Default: |
selector | JSON | Optional | CSS selector for the element Default: |
selector (anyOf 1) | string | Alternative | |
selector (anyOf 2) | null | Alternative | |
timeout | number | Optional | Timeout in milliseconds Default: 10000 |
totp_identifier | JSON | Optional | TOTP identifier for input_text actions |
totp_identifier (anyOf 1) | string | Alternative | |
totp_identifier (anyOf 2) | null | Alternative | |
totp_url | JSON | Optional | TOTP URL for input_text actions |
totp_url (anyOf 1) | string | Alternative | |
totp_url (anyOf 2) | null | Alternative | |
type | string | Required within parent | Must equal: ai_input_text Default: ai_input_text |
value | JSON | Optional | Value to input Default: |
value (anyOf 1) | string | Alternative | |
value (anyOf 2) | null | Alternative |
Run an SDK action — request body — body action type locate element
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Locate element action parameters. |
prompt | string | Optional | Natural language prompt to locate an element Default: |
type | string | Required within parent | Must equal: locate_element Default: locate_element |
Run an SDK action — request body — body action type prompt
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Prompt action parameters. |
model | JSON | Optional | Optional model configuration |
model (anyOf 1) | object | Alternative | Additional keys: allowed |
model (anyOf 2) | null | Alternative | |
prompt | string | Required within parent | The prompt to send to the LLM |
response_schema | JSON | Optional | Optional JSON schema to structure the response |
response_schema (anyOf 1) | object | Alternative | Additional keys: allowed |
response_schema (anyOf 2) | null | Alternative | |
type | string | Required within parent | Must equal: prompt Default: prompt |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: skyvern.run_sdk_action_v1_sdk_run_action_post. Catalog operation: run_sdk_action_v1_sdk_run_action_post. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.