Skip to content

Reference

Skyvern

Connect Skyvern to Alter Vault for secure API access

Skyvern automates browser workflows with LLMs and computer vision: it fills forms, extracts data, and completes multi-step tasks on websites. Use a Skyvern API key to make authenticated API calls through Alter Vault without exposing the key in code.

PropertyValue
Provider IDskyvern
CategoryDeveloper Tools
Credential TypeAPI Key

Open Skyvern Settings

Sign in to Skyvern Cloud and open app.skyvern.com/settings.

Copy the key

Reveal the API key with the eye icon, or copy it with the copy icon.

Open the Developer Portal

Go to portal.alterauth.com and navigate to the application.

Add Skyvern

Go to Managed Secrets > Add Provider > Skyvern.

Enter credentials

Paste the API key into the credential field.

Save

Click Save. You’ll receive a grant_id to use with the SDK. Alter checks the key with Skyvern when you save, and rejects a key Skyvern does not accept.

response = await alter_app.request(
HttpMethod.POST,
"https://api.skyvern.com/v1/run/tasks",
grant_id="YOUR_GRANT_ID",
json={"url": "https://example.com", "prompt": "Extract the pricing table"},
)

Tasks run asynchronously. The response carries a run_id; poll GET https://api.skyvern.com/v1/runs/{run_id} for the status and output.

  • The key is injected via the x-api-key header, with no prefix.
  • Skyvern deletes agents and credentials with POST .../delete, not the HTTP DELETE method. A rule that blocks only the DELETE method does not stop them; target the delete family instead.
  • Skyvern renamed Workflows to Agents. The older /v1/workflows paths still work and are classified as the same operations below.
  • Starting a run (a task, agent, script, SDK action, retry, or a schedule that starts runs) is in the write, send, payment and delete families. A run drives a real browser with the organization’s stored credentials, so it can send messages or pay on any website; a send or payment rule covers it.
  • Opening, listing, reading, updating or extending a browser session returns its remote-control (CDP) address. Whoever holds that address can drive the browser directly, outside Alter, so these operations are treated like starting a run (the reads also stay in the read family).
  • Stored-credential operations are also in the admin family, so an admin rule stops an agent from adding, replacing or deleting the credentials that runs log in with.
  • The operations below cover runs, agents, schedules, scripts, browser sessions and profiles, uploaded files, and stored credentials. Folders, tags, custom LLMs and job recipes are not cataloged: once any operation rule applies to the grant, calls to them are denied.

Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.

Operation IDFamiliesMethodProvider pathNotes
run_task_v1_run_tasks_postdelete, payment, send, writePOST/v1/run/tasks—
login_v1_run_tasks_login_postdelete, payment, send, writePOST/v1/run/tasks/login—
download_files_v1_run_tasks_download_files_postdelete, payment, send, writePOST/v1/run/tasks/download_files—
run_workflow_v1_run_agents_postdelete, payment, send, writePOST/v1/run/agentsalso served at /v1/run/workflows
retry_workflow_run_v1_workflows_runs__workflow_run_id__retry_postdelete, payment, send, writePOST/v1/agents/runs/{workflow_run_id}/retryalso served at /v1/workflows/runs/{workflow_run_id}/retry
run_sdk_action_v1_sdk_run_action_postdelete, payment, send, writePOST/v1/sdk/run_action—
get_runs_v2_v1_runs_getreadGET/v1/runs—
get_run_v1_runs__run_id__getreadGET/v1/runs/{run_id}—
get_run_timeline_v1_runs__run_id__timeline_getreadGET/v1/runs/{run_id}/timeline—
get_run_artifacts_v1_runs__run_id__artifacts_getreadGET/v1/runs/{run_id}/artifacts—
get_artifact_content_v1_artifacts__artifact_id__content_getreadGET/v1/artifacts/{artifact_id}/content—
cancel_run_v1_runs__run_id__cancel_postwritePOST/v1/runs/{run_id}/cancel—
bulk_cancel_runs_v1_runs_cancel_postwritePOST/v1/runs/cancel—
retry_run_webhook_v1_runs__run_id__retry_webhook_postwritePOST/v1/runs/{run_id}/retry_webhook—
get_workflow_runs_v1_workflows_runs_getreadGET/v1/agents/runsalso served at /v1/workflows/runs
get_workflow_runs_by_id_v1_workflows__workflow_id__runs_getreadGET/v1/agents/{workflow_id}/runsalso served at /v1/workflows/{workflow_id}/runs
get_workflows_v1_workflows_getreadGET/v1/agentsalso served at /v1/workflows
get_workflow_v1_workflows__workflow_permanent_id__getreadGET/v1/agents/{workflow_permanent_id}also served at /v1/workflows/{workflow_permanent_id}
get_workflow_versions_v1_workflows__workflow_permanent_id__versions_getreadGET/v1/agents/{workflow_permanent_id}/versionsalso served at /v1/workflows/{workflow_permanent_id}/versions
create_workflow_v1_agents_postwritePOST/v1/agentsalso served at /v1/workflows
update_workflow_v1_agents__workflow_id__postwritePOST/v1/agents/{workflow_id}also served at /v1/workflows/{workflow_id}
delete_workflow_v1_agents__workflow_id__delete_postdeletePOST/v1/agents/{workflow_id}/deletealso served at /v1/workflows/{workflow_id}/delete
reset_workflow_browser_profiledelete, writePOST/v1/agents/{workflow_permanent_id}/browser_session/reset_profilealso served at /v1/workflows/{workflow_permanent_id}/browser_session/reset_profile
schedules_list_allreadGET/v1/schedules—
schedules_listreadGET/v1/agents/{workflow_permanent_id}/schedulesalso served at /v1/workflows/{workflow_permanent_id}/schedules
schedules_getreadGET/v1/agents/{workflow_permanent_id}/schedules/{workflow_schedule_id}also served at /v1/workflows/{workflow_permanent_id}/schedules/{workflow_schedule_id}
schedules_createdelete, payment, send, writePOST/v1/agents/{workflow_permanent_id}/schedulesalso served at /v1/workflows/{workflow_permanent_id}/schedules
schedules_updatedelete, payment, send, writePUT/v1/agents/{workflow_permanent_id}/schedules/{workflow_schedule_id}also served at /v1/workflows/{workflow_permanent_id}/schedules/{workflow_schedule_id}
schedules_enabledelete, payment, send, writePOST/v1/agents/{workflow_permanent_id}/schedules/{workflow_schedule_id}/enablealso served at /v1/workflows/{workflow_permanent_id}/schedules/{workflow_schedule_id}/enable
schedules_disablewritePOST/v1/agents/{workflow_permanent_id}/schedules/{workflow_schedule_id}/disablealso served at /v1/workflows/{workflow_permanent_id}/schedules/{workflow_schedule_id}/disable
schedules_cancelwritePOST/v1/agents/{workflow_permanent_id}/schedules/{workflow_schedule_id}/cancelalso served at /v1/workflows/{workflow_permanent_id}/schedules/{workflow_schedule_id}/cancel
schedules_deletedeleteDELETE/v1/agents/{workflow_permanent_id}/schedules/{workflow_schedule_id}also served at /v1/workflows/{workflow_permanent_id}/schedules/{workflow_schedule_id}
get_scripts_v1_scripts_getreadGET/v1/scripts—
get_script_v1_scripts__script_id__getreadGET/v1/scripts/{script_id}—
create_script_v1_scripts_postwritePOST/v1/scripts—
deploy_script_v1_scripts__script_id__deploy_postwritePOST/v1/scripts/{script_id}/deploy—
run_script_v1_scripts__script_id__run_postdelete, payment, send, writePOST/v1/scripts/{script_id}/run—
create_browser_session_v1_browser_sessions_postdelete, payment, send, writePOST/v1/browser_sessions—
get_browser_sessions_v1_browser_sessions_getdelete, payment, read, send, writeGET/v1/browser_sessions—
get_browser_session_v1_browser_sessions__browser_session_id__getdelete, payment, read, send, writeGET/v1/browser_sessions/{browser_session_id}—
update_browser_session_v1_browser_sessions__browser_session_id__patchdelete, payment, send, writePATCH/v1/browser_sessions/{browser_session_id}—
extend_browser_session_v1_browser_sessions__browser_session_id__extend_postdelete, payment, send, writePOST/v1/browser_sessions/{browser_session_id}/extend—
close_browser_session_v1_browser_sessions__browser_session_id__close_postdelete, writePOST/v1/browser_sessions/{browser_session_id}/close—
create_browser_profile_v1_browser_profiles_postwritePOST/v1/browser_profiles—
list_browser_profiles_v1_browser_profiles_getreadGET/v1/browser_profiles—
get_browser_profile_v1_browser_profiles__profile_id__getreadGET/v1/browser_profiles/{profile_id}—
get_browser_profile_usage_v1_browser_profiles__profile_id__usage_getreadGET/v1/browser_profiles/{profile_id}/usage—
update_browser_profile_v1_browser_profiles__profile_id__patchwritePATCH/v1/browser_profiles/{profile_id}—
delete_browser_profile_v1_browser_profiles__profile_id__deletedeleteDELETE/v1/browser_profiles/{profile_id}—
upload_file_v1_upload_file_postwritePOST/v1/upload_file—
delete_file_v1_files__file_id__deletedeleteDELETE/v1/files/{file_id}—
create_credential_v1_credentials_postadmin, writePOST/v1/credentials—
get_credentials_v1_credentials_getadmin, readGET/v1/credentials—
get_credential_v1_credentials__credential_id__getadmin, readGET/v1/credentials/{credential_id}—
update_credential_v1_credentials__credential_id__update_postadmin, writePOST/v1/credentials/{credential_id}/update—
delete_credential_v1_credentials__credential_id__delete_postadmin, deletePOST/v1/credentials/{credential_id}/delete—
send_totp_code_v1_credentials_totp_postwritePOST/v1/credentials/totp—

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.