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

# Update OTLP destination by ID or name

> Update an OTLP destination. Sessions already exporting to it pick up the new values without restarting, which makes this the way to rotate credentials without interrupting export.

Names must be unique within the project. Renaming is refused with a 409 while a managed auth connection selects this destination by name, since that connection resolves the name on every login. Every other field, including `headers`, stays editable.



## OpenAPI

````yaml https://api.onkernel.com/spec.json patch /telemetry/destinations/{id_or_name}
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, and manage the
      destinations sessions export them to.
    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:
  /telemetry/destinations/{id_or_name}:
    patch:
      tags:
        - Browser Telemetry
      summary: Update OTLP destination by ID or name
      description: >-
        Update an OTLP destination. Sessions already exporting to it pick up the
        new values without restarting, which makes this the way to rotate
        credentials without interrupting export.


        Names must be unique within the project. Renaming is refused with a 409
        while a managed auth connection selects this destination by name, since
        that connection resolves the name on every login. Every other field,
        including `headers`, stays editable.
      operationId: patchTelemetryDestinationByIdOrName
      parameters:
        - description: OTLP destination ID or name
          in: path
          name: id_or_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OTLPDestinationUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OTLPDestination'
          description: OTLP destination updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - bearerAuth: []
components:
  schemas:
    OTLPDestinationUpdateRequest:
      description: Fields to update. Omitted fields are left unchanged.
      properties:
        description:
          maxLength: 1024
          type: string
        endpoint:
          description: >-
            Base endpoint of the OTLP/HTTP collector, without a signal path.
            Same rules as on create.
          maxLength: 2048
          minLength: 1
          type: string
        headers:
          additionalProperties:
            nullable: true
            type: string
          description: >-
            Edits stored headers key by key rather than replacing the map. A
            string value adds or replaces that header, `null` deletes it, and
            any key you omit is left as it is. Names are matched
            case-insensitively, so `authorization` replaces a stored
            `Authorization` rather than adding a second entry. This is the
            credential rotation path; sessions already exporting pick up the new
            values without restarting. Names and values must be valid HTTP
            header tokens, and the names and values together cannot exceed 8192
            bytes.
          maxProperties: 32
          type: object
        name:
          pattern: ^[a-zA-Z0-9._-]{1,255}$
          type: string
      type: object
    OTLPDestination:
      description: >-
        An OTLP endpoint to export browser session telemetry to. Reference one
        from `telemetry.export.otlp.destination` when creating a browser to
        export that session's captured telemetry to it.
      properties:
        created_at:
          format: date-time
          type: string
        description:
          maxLength: 1024
          type: string
        endpoint:
          description: OTLP/HTTP endpoint telemetry is sent to.
          maxLength: 2048
          type: string
        headers:
          additionalProperties:
            type: string
          description: >-
            Headers sent with each export request. Names are returned in
            canonical form (`Authorization`, not `authorization`). Values are
            returned redacted as empty strings, so the keys are visible but the
            credentials are not.
          type: object
        id:
          maxLength: 128
          type: string
        name:
          description: >-
            Unique within the project. Usable in place of the ID when selecting
            a destination, so it cannot be shaped like an ID.
          pattern: ^[a-zA-Z0-9._-]{1,255}$
          type: string
        updated_at:
          format: date-time
          type: string
      required:
        - id
        - name
        - endpoint
        - headers
        - created_at
        - updated_at
      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
    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
  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
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Forbidden – insufficient permissions or plan
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Resource not found
    Conflict:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Conflict – resource already exists
    InternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````