Skyvern: Create credential
Skyvern credentials.createCredential: arguments, response, policy and SDK examples.
← Credentials operations · Get started
Operation skyvern.create_credential_v1_credentials_post
Provider route: POST /v1/credentials. 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["credentials"]["createCredential"]>[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.credentials.createCredential(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.credentials.create_credential(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 Create credential — request body — body The credential data to create |
Referenced models: Create credential — 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 Create credential — response body |
Referenced models: Create credential — response body
Schemas
Section titled “Schemas”8 more schemas are linked from the tables above, on the schema pages.
Create credential — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Request model for creating a new credential. |
auto_profile_disabled | boolean | Optional | Disable automatic saving and reuse of this credential's browser profile. Default: false |
browser_profile_id | JSON | Optional | Optional plain browser profile to link as this credential's saved profile. Must be an unmanaged profile in your organization that no other credential already owns. |
browser_profile_id (anyOf 1) | string | Alternative | |
browser_profile_id (anyOf 2) | null | Alternative | |
credential | JSON | Required within parent | The credential data to store |
credential (anyOf 1) | Model | Alternative | Expand Create credential — request body — body / credential / totp_type: authenticator, email, text, passkey, none |
credential (anyOf 2) | Model | Alternative | Expand Create credential — request body — body credential billing address, billing email, billing phone, card brand, card cvv, card exp month, card exp year, card holder name, card number, metadata |
credential (anyOf 3) | Model | Alternative | Expand Create credential — request body — body credential Generic secret credential |
credential_type | string | Required within parent | Type of credential stored in the system. Type of credential to create One of: password, credit_card, secret |
name | string | Required within parent | Name of the credential |
pin_saved_session_ip | boolean | Optional | Keep the same IP across sign-ins that reuse this credential's saved profile. Default: false |
proxy_location | JSON | Optional | Optional proxy location for this credential's pinned proxy identity. |
proxy_location (anyOf 1) | string | Alternative | One of: RESIDENTIAL, US-CA, US-NY, US-TX, US-FL, US-WA, RESIDENTIAL_ES, RESIDENTIAL_IE, RESIDENTIAL_GB, RESIDENTIAL_IN, RESIDENTIAL_JP, RESIDENTIAL_FR, RESIDENTIAL_DE, RESIDENTIAL_NZ, RESIDENTIAL_ZA, RESIDENTIAL_AR, RESIDENTIAL_AU, RESIDENTIAL_BR, RESIDENTIAL_TR, RESIDENTIAL_CA, RESIDENTIAL_MX, RESIDENTIAL_IT, RESIDENTIAL_NL, RESIDENTIAL_PH, RESIDENTIAL_KR, RESIDENTIAL_SA, RESIDENTIAL_ISP, NONE |
proxy_location (anyOf 2) | Model | Alternative | Expand Update an agent — response body — proxy location city, country, is ISP, subdivision |
proxy_location (anyOf 3) | object | Alternative | Additional keys: allowed |
proxy_location (anyOf 4) | null | Alternative | |
proxy_session_id | JSON | Optional | Optional advanced reuse key for this credential's pinned proxy identity. |
proxy_session_id (anyOf 1) | string | Alternative | |
proxy_session_id (anyOf 2) | null | Alternative | |
rotate_proxy_session_id | boolean | Optional | Rotate the Skyvern-managed proxy sticky-session id when updating this credential. Default: false |
tested_url | JSON | Optional | Login page URL used during the credential test |
tested_url (anyOf 1) | string | Alternative | |
tested_url (anyOf 2) | null | Alternative | |
vault_type | JSON | Optional | Which vault to store this credential in. If omitted, uses the instance default. Use this to mix Skyvern-hosted and custom credentials within the same organization. |
vault_type (anyOf 1) | string | Alternative | One of: skyvern, bitwarden, azure_vault, gcp, custom, onepassword, bitwarden_connected |
vault_type (anyOf 2) | null | Alternative |
Referenced models: Update an agent — response body — proxy location city, country, is ISP, subdivision, Create credential — request body — body credential billing address, billing email, billing phone, card brand, card cvv, card exp month, card exp year, card holder name, card number, metadata, Create credential — request body — body / credential / totp_type: authenticator, email, text, passkey, none, Create credential — request body — body credential Generic secret credential
Create credential — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Response model for credential operations. |
auto_profile_disabled | JSON | Optional | Whether automatic saving and reuse of this credential's browser profile is disabled. |
auto_profile_disabled (anyOf 1) | boolean | Alternative | |
auto_profile_disabled (anyOf 2) | null | Alternative | |
browser_profile_id | JSON | Optional | Browser profile ID linked to this credential |
browser_profile_id (anyOf 1) | string | Alternative | |
browser_profile_id (anyOf 2) | null | Alternative | |
created_by | JSON | Optional | ID of the user who created the credential |
created_by (anyOf 1) | string | Alternative | |
created_by (anyOf 2) | null | Alternative | |
credential | JSON | Required within parent | The credential data |
credential (anyOf 1) | Model | Alternative | Expand Create credential — response body — credential / totp_type: authenticator, email, text, passkey, none |
credential (anyOf 2) | Model | Alternative | Expand Create credential — response body — credential brand, last four |
credential (anyOf 3) | Model | Alternative | Expand Create credential — response body — credential secret label |
credential_id | string | Required within parent | Unique identifier for the credential |
credential_type | string | Required within parent | Type of credential stored in the system. Type of the credential Known values: password, credit_card, secret |
folder_id | JSON | Optional | ID of the credential folder this credential belongs to, if any |
folder_id (anyOf 1) | string | Alternative | |
folder_id (anyOf 2) | null | Alternative | |
item_id | JSON | Optional | 1Password item ID for linked credentials |
item_id (anyOf 1) | string | Alternative | |
item_id (anyOf 2) | null | Alternative | |
name | string | Required within parent | Name of the credential |
pin_saved_session_ip | boolean | Optional | Whether sign-ins reusing this credential's saved profile keep the same IP Default: false |
proxy_location | JSON | Optional | Optional proxy location used for the credential's pinned proxy identity. |
proxy_location (anyOf 1) | Model | Alternative | Expand Update an agent — response body — proxy location string |
proxy_location (anyOf 2) | Model | Alternative | Expand Update an agent — response body — proxy location city, country, is ISP, subdivision |
proxy_location (anyOf 3) | object | Alternative | Additional keys: allowed |
proxy_location (anyOf 4) | null | Alternative | |
proxy_session_id | JSON | Optional | Opaque Skyvern-managed proxy sticky-session id. |
proxy_session_id (anyOf 1) | string | Alternative | |
proxy_session_id (anyOf 2) | null | Alternative | |
run_sequentially | boolean | Optional | Default: false |
save_browser_session_intent | JSON | Optional | Whether the user intends to save a browser session, regardless of test outcome |
save_browser_session_intent (anyOf 1) | boolean | Alternative | |
save_browser_session_intent (anyOf 2) | null | Alternative | |
tested_url | JSON | Optional | Login page URL used during the credential test |
tested_url (anyOf 1) | string | Alternative | |
tested_url (anyOf 2) | null | Alternative | |
upstream_missing_at | JSON | Optional | When the linked 1Password item was last found missing upstream |
upstream_missing_at (anyOf 1) | string | Alternative | Format: date-time |
upstream_missing_at (anyOf 2) | null | Alternative | |
user_context | JSON | Optional | User-provided context describing the login sequence (e.g., 'click SSO button first') |
user_context (anyOf 1) | string | Alternative | |
user_context (anyOf 2) | null | Alternative | |
vault_id | JSON | Optional | 1Password vault ID for linked credentials |
vault_id (anyOf 1) | string | Alternative | |
vault_id (anyOf 2) | null | Alternative | |
vault_type | JSON | Optional | Which vault stores this credential (e.g., 'skyvern', 'bitwarden', 'azure_vault', 'custom') |
vault_type (anyOf 1) | string | Alternative | Known values: skyvern, bitwarden, azure_vault, gcp, custom, onepassword, bitwarden_connected |
vault_type (anyOf 2) | null | Alternative |
Referenced models: Create credential — response body — credential brand, last four, Update an agent — response body — proxy location city, country, is ISP, subdivision, Create credential — response body — credential / totp_type: authenticator, email, text, passkey, none, Update an agent — response body — proxy location string, Create credential — response body — credential secret label
Update an agent — response body — proxy location city, country, is ISP, subdivision
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Granular proxy geo-targeting request with country, optional subdivision, and optional city. |
city | JSON | Optional | City name in English from GeoNames (e.g., 'New York', 'Los Angeles', 'London') |
city (anyOf 1) | string | Alternative | Maximum length: 100 |
city (anyOf 2) | null | Alternative | |
country | string | Required within parent | ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB', 'DE') Maximum length: 2 Minimum length: 2 |
isISP | boolean | Optional | Whether this geo target is marked as an ISP proxy location. Default: false |
subdivision | JSON | Optional | ISO 3166-2 subdivision code without country prefix (e.g., 'CA' for California, 'NY' for New York) |
subdivision (anyOf 1) | string | Alternative | Maximum length: 10 |
subdivision (anyOf 2) | null | Alternative |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: skyvern.create_credential_v1_credentials_post. Catalog operation: create_credential_v1_credentials_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.