> ## Documentation Index
> Fetch the complete documentation index at: https://tbd-6fc993ce-hypeship-changelog-august-13.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update auth connection

> Update an auth connection's configuration. Only the fields provided will be updated.



## OpenAPI

````yaml https://api.onkernel.com/spec.json patch /auth/connections/{id}
openapi: 3.1.0
info:
  description: Developer tools and cloud infrastructure for AI agents to use web browsers
  title: Kernel API
  version: 0.1.0
servers:
  - description: API Server
    url: https://api.onkernel.com
security:
  - bearerAuth: []
tags:
  - description: Create and manage browser sessions.
    name: Browsers
  - description: Control mouse, keyboard, and screen on the browser instance.
    name: Browser Computer Controls
  - description: Execute Playwright code against the browser instance.
    name: Browser Playwright
  - description: Read, write, and manage files on the browser instance.
    name: Browser Filesystem
  - description: Execute and manage processes on the browser instance.
    name: Browser Processes
  - description: Record and manage browser session video replays.
    name: Browser Replays
  - description: Stream logs from the browser instance.
    name: Browser Logs
  - description: Stream live telemetry events from a browser session.
    name: Browser Telemetry
  - description: Create, list, retrieve, and delete browser profiles.
    name: Profiles
  - description: Create and manage proxy configurations for routing browser traffic.
    name: Proxies
  - description: Create, list, retrieve, and delete browser extensions.
    name: Extensions
  - description: Create and manage browser pools for acquiring and releasing browsers.
    name: Browser Pools
  - description: Inspect the identity and authorization context for the current request.
    name: Authentication
  - description: >-
      Create and manage auth connections for automated credential capture and
      login.
    name: Managed Auth
  - description: Create and manage credentials for authentication.
    name: Credentials
  - description: Configure external credential providers like 1Password.
    name: Credential Providers
  - description: List applications and versions.
    name: Apps
  - description: Create and manage app deployments and stream deployment events.
    name: Deployments
  - description: Invoke actions and stream or query invocation status and events.
    name: Invocations
  - description: Read and manage organization-level limits.
    name: Organization
  - description: |
      Create and manage projects for resource isolation within an organization.
      When projects are disabled for the organization, project operations return
      `404` with code `projects_disabled`.
    name: Projects
  - description: Create and manage API keys for organization and project-scoped access.
    name: API Keys
  - description: Read audit log records for the authenticated organization.
    name: Audit Logs
  - description: Resolve browser and proxy recommendations for bot-protected sites.
    name: Site Configs
paths:
  /auth/connections/{id}:
    patch:
      tags:
        - Managed Auth
      summary: Update auth connection
      description: >-
        Update an auth connection's configuration. Only the fields provided will
        be updated.
      operationId: patchAuthConnectionsById
      parameters:
        - description: Auth connection ID
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedAuthUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedAuth'
          description: Auth connection updated successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - bearerAuth: []
components:
  schemas:
    ManagedAuthUpdateRequest:
      additionalProperties: false
      description: Request to update an auth connection's configuration
      properties:
        allowed_domains:
          description: Additional domains valid for this auth flow (replaces existing list)
          example:
            - login.netflix.com
            - auth.netflix.com
          items:
            type: string
          type: array
        auto_reauth:
          description: >
            Whether automatic re-authentication is permitted for this
            connection. This is an opt-in

            flag only — it does not check whether re-auth is actually feasible.
            Even when true,

            re-auth only runs when the system has what it needs to perform it
            (for example, saved

            credentials for the required login fields), and only after a
            scheduled health check

            detects an expired session — so this flag has no effect when
            `health_checks` is false.

            When false, expired sessions detected by a health check are marked
            as `NEEDS_AUTH`

            instead of attempting re-auth.
          example: true
          type: boolean
        browser:
          $ref: '#/components/schemas/ManagedAuthBrowserConfig'
          description: >-
            Browser configuration updates for future login, reauthentication,
            and health-check sessions. Omitted properties remain unchanged.
        browser_telemetry:
          $ref: '#/components/schemas/BrowserTelemetryRequestConfig'
          deprecated: true
          description: >-
            Deprecated. Use browser.telemetry. Retained during migration for
            existing clients.
          nullable: true
        credential:
          $ref: '#/components/schemas/CredentialReference'
        health_check_interval:
          description: Interval in seconds between automatic health checks
          example: 3600
          maximum: 86400
          minimum: 300
          type: integer
        health_checks:
          description: >
            Whether periodic health checks are enabled. When set to false, the
            system will not

            automatically verify authentication status, and `auto_reauth` has no
            effect on the

            automatic flow (since re-auth is only triggered by a failed
            scheduled health check).
          example: true
          type: boolean
        login_url:
          description: Login page URL. Set to empty string to clear.
          example: https://netflix.com/login
          format: uri
          type: string
        proxy:
          $ref: '#/components/schemas/ProxyRef'
          deprecated: true
          description: >-
            Deprecated. Use browser.proxy. Retained during migration for
            existing clients.
        record_session:
          description: Whether to record browser sessions for this connection by default
          example: false
          type: boolean
        save_credentials:
          description: Whether to save credentials after every successful login
          example: true
          type: boolean
      type: object
    ManagedAuth:
      additionalProperties: false
      description: >-
        Managed authentication that keeps a profile logged into a specific
        domain. Flow fields (flow_status, flow_step, discovered_fields,
        mfa_options) reflect the most recent login flow and are null when no
        flow has been initiated.
      properties:
        allowed_domains:
          description: >
            Additional domains that are valid for this auth flow (besides the
            primary domain). Useful when login pages redirect to different
            domains.


            The following SSO/OAuth provider domains are automatically allowed
            by default and do not need to be specified:

            - Google: accounts.google.com

            - Microsoft/Azure AD: login.microsoftonline.com, login.live.com

            - Okta: *.okta.com, *.oktapreview.com

            - Auth0: *.auth0.com, *.us.auth0.com, *.eu.auth0.com, *.au.auth0.com

            - Apple: appleid.apple.com

            - GitHub: github.com

            - Facebook/Meta: www.facebook.com

            - LinkedIn: www.linkedin.com

            - Amazon Cognito: *.amazoncognito.com

            - OneLogin: *.onelogin.com

            - Ping Identity: *.pingone.com, *.pingidentity.com
          example:
            - login.netflix.com
            - auth.netflix.com
          items:
            type: string
          type: array
        auto_reauth:
          description: >
            Whether automatic re-authentication is permitted for this
            connection. This is an opt-in

            flag only — it does not check whether re-auth is actually feasible.
            Even when true,

            re-auth only runs when the system has what it needs to perform it
            (for example, saved

            credentials for the required login fields), and only after a
            scheduled health check

            detects an expired session — so this flag has no effect when
            `health_checks` is false.

            When false, expired sessions detected by a health check are marked
            as `NEEDS_AUTH`

            instead of attempting re-auth.
          example: true
          type: boolean
        browser:
          $ref: '#/components/schemas/ManagedAuthBrowserConfig'
          description: >-
            Default browser configuration for login, reauthentication, and
            health-check sessions.
        browser_session_id:
          description: >
            ID of the underlying browser session driving the current flow
            (present when flow in progress).

            Use this to inspect or terminate the browser session via the
            `/browsers` API.
          example: bs_abc123xyz
          nullable: true
          type: string
        browser_telemetry:
          $ref: '#/components/schemas/BrowserTelemetryRequestConfig'
          deprecated: true
          description: >-
            Deprecated. Use browser.telemetry. Retained during migration for
            existing clients.
          nullable: true
        can_reauth:
          description: >-
            Whether Kernel can automatically re-authenticate this connection
            when the session expires. Requires a prior successful login plus
            either a Kernel credential or an external credential reference. See
            `can_reauth_reason` for the specific outcome.
          example: true
          type: boolean
        can_reauth_reason:
          description: |-
            Machine-readable reason for the current value of `can_reauth`.
            Affirmative values (re-auth is possible):
              - `external_credential` — an external credential provider is attached
              - `cua_has_credential` — CUA flow with a stored credential
              - `has_credential` — Kernel credential is attached (optimistic; plan viability not checked)
              - `viable_plans_found` — at least one stored login plan can be replayed
              - `no_requirements_recorded` — no recorded credential requirements to fail against
              - `requirements_satisfiable` — recorded requirements can be met by the attached credential

            Negative values (a human must complete the login flow):
              - `no_prior_successful_login` — connection has never completed a successful login
              - `no_credential` — no Kernel or external credential attached
              - `no_viable_plans` — credential attached but no replayable login plan exists yet
              - `viable_plans_require_external_action` — stored plans need an external step (email link, push, etc.)
              - `requires_external_action` — recorded requirements include an external step
              - `requires_totp_without_secret` — flow needs a TOTP code but no TOTP secret is stored
              - `requires_sms_code` — flow needs an SMS code that cannot be received automatically
              - `requires_email_code` — flow needs an email code that cannot be received automatically
              - `requires_customer_input` — flow needs another field or choice that is unavailable during unattended re-authentication
          enum:
            - external_credential
            - cua_has_credential
            - has_credential
            - viable_plans_found
            - no_requirements_recorded
            - requirements_satisfiable
            - no_prior_successful_login
            - no_credential
            - no_viable_plans
            - viable_plans_require_external_action
            - requires_external_action
            - requires_totp_without_secret
            - requires_sms_code
            - requires_email_code
            - requires_customer_input
          example: has_credential
          type: string
        choices:
          description: >-
            Canonical choices awaiting selection. Prefer this over
            pending_sso_buttons, mfa_options, and sign_in_options when present.
          items:
            $ref: '#/components/schemas/ManagedAuthChoice'
          nullable: true
          type: array
        credential:
          $ref: '#/components/schemas/CredentialReference'
        discovered_fields:
          description: >-
            Fields awaiting input (present when flow_step=awaiting_input; may
            also be present with awaiting_external_action as fallback actions)
          items:
            $ref: '#/components/schemas/DiscoveredField'
          nullable: true
          type: array
        domain:
          description: Target domain for authentication
          example: netflix.com
          type: string
        error_code:
          description: Machine-readable error code (present when flow_status=failed)
          nullable: true
          type: string
        error_message:
          description: Error message (present when flow_status=failed)
          example: Invalid password
          nullable: true
          type: string
        external_action_message:
          description: >-
            Instructions for external action (present when
            flow_step=awaiting_external_action)
          example: Tap 'Yes' on the Google prompt on your phone
          nullable: true
          type: string
        fields:
          description: >-
            Canonical fields awaiting input. Prefer this over discovered_fields
            when present.
          items:
            $ref: '#/components/schemas/ManagedAuthField'
          nullable: true
          type: array
        flow_expires_at:
          description: >-
            When the current flow expires (null when no flow in progress). A
            flow past this timestamp is no longer valid and its `flow_status`
            will be `EXPIRED`. Clients may start a new login to supersede a
            stale `IN_PROGRESS` flow past this timestamp.
          example: '2025-11-05T20:00:00Z'
          format: date-time
          nullable: true
          type: string
        flow_status:
          description: Current flow status (null when no flow in progress)
          enum:
            - IN_PROGRESS
            - SUCCESS
            - FAILED
            - EXPIRED
            - CANCELED
          example: IN_PROGRESS
          nullable: true
          type: string
        flow_step:
          description: Current step in the flow (null when no flow in progress)
          enum:
            - DISCOVERING
            - AWAITING_INPUT
            - AWAITING_EXTERNAL_ACTION
            - SUBMITTING
            - COMPLETED
          example: AWAITING_INPUT
          nullable: true
          type: string
        flow_type:
          description: Type of the current flow (null when no flow in progress)
          enum:
            - LOGIN
            - REAUTH
          example: LOGIN
          nullable: true
          type: string
        health_check_interval:
          description: >
            Interval in seconds between automatic health checks. When set, the
            system periodically

            verifies the authentication status and triggers re-authentication if
            needed.

            Maximum is 86400 (24 hours). Default is 3600 (1 hour) or your plan
            minimum, whichever

            is larger. The minimum depends on your plan: Enterprise: 300 (5
            minutes), Startup: 1200

            (20 minutes), Hobbyist: 3600 (1 hour), Free: 21600 (6 hours).
          example: 3600
          maximum: 86400
          minimum: 300
          nullable: true
          type: integer
        health_checks:
          description: >
            Whether periodic health checks are enabled for this connection. When
            false, the system

            will not automatically verify authentication status, and
            `auto_reauth` has no effect on

            the automatic flow (since re-auth is only triggered by a failed
            scheduled health check).

            Manually triggering a health check via the API still works
            regardless of this setting.
          example: true
          type: boolean
        hosted_url:
          description: >-
            URL to redirect user to for hosted login (present when flow in
            progress)
          example: https://auth.kernel.com/login/abc123xyz
          format: uri
          nullable: true
          type: string
        id:
          description: Unique identifier for the auth connection
          example: ma_abc123xyz
          type: string
        last_auth_at:
          deprecated: true
          description: >-
            Deprecated alias for `last_auth_check_at`. Despite the name, this is
            the last health-check timestamp, not the last successful
            authentication. Use `last_auth_check_at` instead.
          example: '2025-01-15T10:30:00Z'
          format: date-time
          type: string
        last_auth_check_at:
          description: >-
            When the most recent auth health check ran for this connection,
            regardless of outcome. Updated on every health check and does not by
            itself indicate that the profile is currently authenticated - use
            `status` for that. May be newer than `flow_expires_at` when a flow
            is still in progress because health checks continue to run in
            parallel.
          example: '2025-01-15T10:30:00Z'
          format: date-time
          type: string
        live_view_url:
          description: Browser live view URL for debugging (present when flow in progress)
          example: https://live.kernel.com/abc123xyz
          format: uri
          nullable: true
          type: string
        login_url:
          description: Optional login page URL to skip discovery
          example: https://example.com/login
          format: uri
          type: string
        mfa_options:
          description: >-
            MFA method options (present when flow_step=awaiting_input; may also
            be present with awaiting_external_action as fallback actions)
          items:
            $ref: '#/components/schemas/MFAOption'
          nullable: true
          type: array
        pending_sso_buttons:
          description: >-
            SSO buttons available (present when flow_step=awaiting_input; may
            also be present with awaiting_external_action as fallback actions)
          items:
            $ref: '#/components/schemas/SSOButton'
          nullable: true
          type: array
        post_login_url:
          description: URL where the browser landed after successful login
          example: https://www.netflix.com/browse
          format: uri
          type: string
        profile_name:
          description: Name of the profile associated with this auth connection
          example: my-netflix-profile
          type: string
        proxy_id:
          deprecated: true
          description: >-
            Deprecated. Read browser.proxy instead. Retained during migration
            for existing clients.
          type: string
        record_session:
          description: >-
            Whether to record browser session replays for this connection by
            default. Useful for debugging login flows. Can be overridden
            per-login.
          example: false
          type: boolean
        save_credentials:
          description: >-
            Whether credentials are saved after every successful login. One-time
            codes (TOTP, SMS, etc.) are not saved.
          example: true
          type: boolean
        sign_in_options:
          description: >-
            Non-MFA choices presented during the auth flow, such as account
            selection or org pickers (present when flow_step=awaiting_input; may
            also be present with awaiting_external_action as fallback actions).
          items:
            $ref: '#/components/schemas/SignInOption'
          nullable: true
          type: array
        sso_provider:
          description: SSO provider being used (e.g., google, github, microsoft)
          example: google
          nullable: true
          type: string
        status:
          description: Current authentication status of the managed profile
          enum:
            - AUTHENTICATED
            - NEEDS_AUTH
          example: AUTHENTICATED
          type: string
        website_error:
          description: >-
            Visible error message from the website (e.g., 'Incorrect password').
            Present when the website displays an error during login.
          nullable: true
          type: string
      required:
        - id
        - profile_name
        - domain
        - status
        - save_credentials
        - record_session
      type: object
    ManagedAuthBrowserConfig:
      additionalProperties: false
      description: >-
        Browser configuration applied to browser sessions created for a managed
        auth connection. Managed auth controls the profile, headless mode,
        timeout, start URL, kiosk mode, and viewport.
      properties:
        proxy:
          $ref: '#/components/schemas/BrowserProxyConfig'
          description: >-
            Proxy configuration for managed auth browser sessions. Omit on
            create to derive the default from stealth, or on update and login to
            preserve or inherit the connection default.
        stealth:
          description: >-
            Whether managed auth browser sessions use stealth mode. Defaults to
            true when omitted.
          example: false
          type: boolean
        telemetry:
          $ref: '#/components/schemas/BrowserTelemetryRequestConfig'
          description: >-
            Browser telemetry configuration using the same semantics as browser
            create.
          nullable: true
      type: object
    BrowserTelemetryRequestConfig:
      description: Telemetry request configuration for a browser session.
      properties:
        browser:
          $ref: '#/components/schemas/BrowserTelemetryCategoriesConfig'
          description: >-
            Per-category capture flags. The operational categories (control,
            connection, system, captcha) are captured whenever telemetry is
            enabled; set one to enabled=false to opt out. The CDP categories
            (console, network, page, interaction) and screenshot are off by
            default; set enabled=true to opt in. On create, provided categories
            layer onto the default set. On update, provided categories merge
            onto the session's current config; when no telemetry is active this
            falls back to the default set (matching create). If browser is
            omitted or empty, the default set is used. A browser config that
            disables every category stops capture on update and starts no
            capture on create.
        enabled:
          description: >-
            Request shortcut for browser telemetry capture. True enables
            capture; with no browser category settings it captures the default
            set (control, connection, system, captcha), and any browser category
            settings are layered onto that default set. On update, enabled=true
            resolves the config fresh from the default set plus any provided
            categories, replacing the session's current selection rather than
            merging onto it; omit enabled to merge categories onto the current
            selection instead. False stops capture on update and starts no
            capture on create. enabled=false cannot be combined with browser
            category settings.
          type: boolean
        export:
          $ref: '#/components/schemas/BrowserTelemetryExportRequestConfig'
          description: >-
            Where to export this session's captured telemetry. Omit to capture
            without exporting.
      type: object
    CredentialReference:
      additionalProperties: false
      description: |
        Reference to credentials for the auth connection. Use one of:
        - { name } for Kernel credentials
        - { provider, path } for external provider item
        - { provider, auto: true } for external provider domain lookup
      properties:
        auto:
          description: If true, lookup by domain from the specified provider
          example: true
          type: boolean
        name:
          description: Kernel credential name
          example: my-netflix-creds
          type: string
        path:
          description: Provider-specific path (e.g., "VaultName/ItemName" for 1Password)
          example: Personal/Netflix
          type: string
        provider:
          description: External provider name (e.g., "my-1p")
          example: my-1p
          type: string
      type: object
    ProxyRef:
      description: >
        Proxy selection. Provide either id or name. The proxy must be in the
        same project as the resource referencing it.

        When selecting by name, the name must match exactly one active proxy in
        the project. Ambiguous names return a 400; use id for stable references.
      oneOf:
        - required:
            - id
        - required:
            - name
      properties:
        id:
          description: Proxy ID
          type: string
        name:
          description: Proxy name
          type: string
      type: object
    ManagedAuthChoice:
      additionalProperties: false
      description: Canonical auth-flow choice awaiting user selection.
      properties:
        context:
          description: Context captured for a choice.
          nullable: true
          type: string
        description:
          description: Additional context for the choice.
          nullable: true
          type: string
        display_text:
          description: Display text captured for a choice.
          nullable: true
          type: string
        id:
          description: Stable choice identifier for canonical submit.
          example: google
          type: string
        label:
          description: Human-readable choice label.
          example: Google
          type: string
        masked_destination:
          description: Masked phone number or email address shown for an MFA choice.
          nullable: true
          type: string
        mfa_type:
          $ref: '#/components/schemas/ManagedAuthMFAMethod'
          description: >-
            Semantic MFA method. Choice id remains the stable identity of the
            exact option selected.
          nullable: true
        observed_selector:
          description: Selector for the visible choice, when available.
          example: button:has-text("Google")
          nullable: true
          type: string
        type:
          description: Choice type.
          enum:
            - mfa_method
            - sso_provider
            - sign_in_method
            - auth_method
            - identifier_method
            - account
            - other
          example: sso_provider
          type: string
      required:
        - id
        - type
        - label
      type: object
    DiscoveredField:
      additionalProperties: false
      description: A discovered form field
      properties:
        hint:
          description: >-
            Contextual help text near the field that tells the user what to
            enter (e.g., "Enter the phone ending in (***) ***-**92")
          example: Enter the phone ending in (***) ***-**92
          type: string
        label:
          description: Field label
          example: Email address
          type: string
        linked_mfa_type:
          $ref: '#/components/schemas/MFAType'
          description: >-
            If this field is associated with an MFA option, the type of that
            option (e.g., password field linked to "Enter password" option)
          nullable: true
        name:
          description: Field name
          example: email
          type: string
        placeholder:
          description: Field placeholder
          example: you@example.com
          type: string
        required:
          default: true
          description: Whether field is required
          example: true
          type: boolean
        selector:
          description: CSS selector for the field
          example: input#email
          type: string
        type:
          description: Field type
          enum:
            - text
            - email
            - password
            - tel
            - number
            - url
            - code
            - totp
          example: email
          type: string
      required:
        - name
        - type
        - label
        - selector
      type: object
    ManagedAuthField:
      additionalProperties: false
      description: Canonical field awaiting user input.
      properties:
        hint:
          description: Context shown near the field, including a masked code destination.
          type: string
        id:
          description: Stable field identifier for canonical submit.
          example: field_email
          type: string
        label:
          description: Human-readable label shown to the user.
          example: Email address
          type: string
        observed_selector:
          description: Selector for the visible field, when available.
          example: input[name="identifier"]
          nullable: true
          type: string
        ref:
          description: Credential reference name to store the submitted value under.
          example: email
          type: string
        replace_existing:
          default: false
          description: >-
            Whether the submitted value must replace an existing credential
            after explicit rejection.
          type: boolean
        required:
          default: true
          description: Whether this field is required.
          type: boolean
        type:
          description: Managed-auth field type.
          enum:
            - identifier
            - password
            - code
            - totp_code
            - totp_secret
            - text
          example: identifier
          type: string
      required:
        - id
        - ref
        - type
      type: object
    MFAOption:
      additionalProperties: false
      description: An MFA method option for verification
      properties:
        description:
          description: Additional instructions from the site
          example: We'll send a 6-digit code to your phone
          nullable: true
          type: string
        label:
          description: The visible option text
          example: Text me a code
          type: string
        target:
          description: The masked destination (phone/email) if shown
          example: '***-***-5678'
          nullable: true
          type: string
        type:
          $ref: '#/components/schemas/MFAType'
      required:
        - type
        - label
      type: object
    SSOButton:
      additionalProperties: false
      description: An SSO button for signing in with an external identity provider
      properties:
        label:
          description: Visible button text
          example: Continue with Google
          type: string
        provider:
          description: Identity provider name
          example: google
          type: string
        selector:
          description: XPath selector for the button
          example: xpath=//button[contains(text(), 'Continue with Google')]
          type: string
      required:
        - selector
        - provider
        - label
      type: object
    SignInOption:
      additionalProperties: false
      description: >-
        A non-MFA choice presented during the auth flow (e.g. account selection,
        org picker)
      properties:
        description:
          description: Additional context such as email address or org name
          example: user@company.com
          nullable: true
          type: string
        id:
          description: Unique identifier for this option (used to submit selection back)
          example: work-account
          type: string
        label:
          description: Display text for the option
          example: Work Account (user@company.com)
          type: string
      required:
        - id
        - label
      type: object
    Error:
      properties:
        code:
          description: Application-specific error code (machine-readable)
          example: bad_request
          type: string
        details:
          description: Additional error details (for multiple errors)
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        inner_error:
          $ref: '#/components/schemas/ErrorDetail'
        message:
          description: Human-readable error description for debugging
          example: 'Missing required field: app_name'
          type: string
      required:
        - code
        - message
      type: object
    BrowserProxyConfig:
      additionalProperties: false
      description: >
        Browser proxy configuration. Provide exactly one of mode, id, or name;
        an empty object is invalid.

        Set mode to direct for no proxy regardless of stealth. Set mode to
        default to use the browser's stealth-derived default: Kernel's default
        stealth proxy when stealth=true, or direct egress when stealth=false.

        Select id or name to use that proxy regardless of stealth. The selected
        proxy must be in the same project as the browser. Names must match
        exactly one active proxy; use id for stable references.

        Proxy configuration changes only egress and does not change stealth or
        CAPTCHA solver behavior. A stealth browser using mode=direct still runs
        in stealth mode with the CAPTCHA solver enabled.

        When proxy is omitted on browser creation, stealth browsers use Kernel's
        default stealth proxy and non-stealth browsers use direct egress. When
        omitted on update, the current configuration is unchanged.
      oneOf:
        - required:
            - mode
        - required:
            - id
        - required:
            - name
      properties:
        id:
          description: Proxy ID.
          minLength: 1
          type: string
        mode:
          $ref: '#/components/schemas/BrowserProxyMode'
        name:
          description: Proxy name. Must match exactly one active proxy in the project.
          minLength: 1
          type: string
      type: object
    BrowserTelemetryCategoriesConfig:
      description: >-
        Per-category telemetry capture settings layered onto the default set.
        The operational signals (control, connection, system, captcha) are on by
        default and are opt-out: set one to enabled=false to stop capturing it.
        The CDP categories (console, network, page, interaction) and screenshot
        are off by default and are opt-in: set enabled=true to capture them.
      properties:
        captcha:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: Captcha solve attempt outcomes. On by default.
        connection:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            Client attach/detach lifecycle for the CDP proxy and live view. On
            by default.
        console:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            Console output (log, warn, error) and uncaught exceptions. CDP
            category; off by default.
        control:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            Agent-driven actions against the browser, such as inbound calls to
            the in-VM API. On by default.
        interaction:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            User interaction events including clicks, keydowns, and
            scroll-settled events. CDP category; off by default.
        network:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            HTTP request and response metadata including URL, method, status
            code, and timing. Request post data is forwarded as-is from CDP.
            Text response bodies are truncated at 8 KB for structured types
            (JSON, XML, form data) and 4 KB for other text types. Binary
            responses (images, fonts, media) are excluded. CDP category; off by
            default.
        page:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            Page lifecycle events including navigation, DOMContentLoaded, load,
            layout shifts, and LCP. CDP category; off by default.
        screenshot:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            Periodic base64-encoded viewport screenshots. High volume; off by
            default and must be opted into.
        system:
          $ref: '#/components/schemas/BrowserTelemetryCategoryConfig'
          description: >-
            Browser VM health, such as out-of-memory kills and managed-service
            crashes. On by default.
      type: object
    BrowserTelemetryExportRequestConfig:
      description: >-
        Export destinations for a session's captured telemetry, by protocol.
        Honored when creating a browser, including the browser a managed auth
        connection creates for a login. Browser pools do not support export and
        reject it; on a browser update it is ignored, so the session keeps the
        destination it was created with.
      properties:
        otlp:
          $ref: '#/components/schemas/BrowserTelemetryOTLPExportRequestConfig'
          description: >-
            Export captured telemetry over OTLP to one of the org's configured
            destinations.
      type: object
    ManagedAuthMFAMethod:
      description: Canonical MFA method, independent of a site's stable choice identifier.
      enum:
        - sms
        - call
        - email
        - totp
        - push
        - password
        - passkey
        - switch
        - other
      example: sms
      type: string
    MFAType:
      description: >-
        The MFA delivery method type. Includes 'password' for auth method
        selection pages and 'switch' for generic method-switcher links like "Use
        another method" that do not name a specific method.
      enum:
        - sms
        - call
        - email
        - totp
        - push
        - password
        - switch
      example: sms
      type: string
    ErrorDetail:
      properties:
        code:
          description: Lower-level error code providing more specific detail
          example: invalid_input
          type: string
        message:
          description: Further detail about the error
          example: Provided version string is not semver compliant
          type: string
      type: object
    BrowserProxyMode:
      description: >
        Proxy egress mode. direct forces no proxy regardless of stealth. default
        uses the browser's stealth-derived default: Kernel's default stealth
        proxy when stealth=true, or direct egress when stealth=false.

        default is primarily useful on browser update to restore the browser
        default after selected-proxy egress.
      enum:
        - direct
        - default
      type: string
      x-enum-varnames:
        - Direct
        - Default
    BrowserTelemetryCategoryConfig:
      description: Per-category telemetry configuration.
      properties:
        enabled:
          description: >-
            Whether this category is captured. Operational categories (control,
            connection, system, captcha) default to true; set false to opt out.
            CDP categories (console, network, page, interaction) and screenshot
            default to false; set true to opt in.
          type: boolean
      type: object
    BrowserTelemetryOTLPExportRequestConfig:
      description: OTLP export settings for a browser session.
      properties:
        destination:
          $ref: '#/components/schemas/OTLPDestinationRef'
          description: >-
            OTLP destination to export this session's captured telemetry to.
            Provide either id or name. Requires telemetry capture to be enabled.
        enabled:
          description: >-
            Whether to export captured telemetry over OTLP. Setting destination
            implies enabled=true, so this only needs to be set explicitly to
            disable export (enabled=false with a destination is rejected).
          type: boolean
      type: object
    OTLPDestinationRef:
      description: >
        OTLP destination selection. Provide either id or name. The destination
        must belong to the caller's org.

        When selecting by name, the name must match exactly one destination in
        the org. Ambiguous names return a 400; use id for stable references.
      oneOf:
        - required:
            - id
        - required:
            - name
      properties:
        id:
          description: OTLP destination ID
          type: string
        name:
          description: OTLP destination name
          type: string
      type: object
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Bad Request – invalid input
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Unauthorized – missing or invalid authorization token
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Resource not found
    InternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````