> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update session recording capture settings

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Changes how session recordings capture visits: whether the app's owners and admins are recorded, and what share of visits gets recorded. Send one field or both. A field you leave out keeps its value.

The app needs recording settings first, which the first call to [Turn session recordings on or off](/api-reference/turn-session-recordings-on-or-off) creates, whether it turns them on or off. After that, you can change these settings at any time.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json patch /api/session-recordings/apps/{app_id}/recording-settings
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/session-recordings/apps/{app_id}/recording-settings:
    patch:
      summary: Update session recording capture settings
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Changes how session recordings capture visits: whether the app's owners
        and admins are recorded, and what share of visits gets recorded. Send
        one field or both. A field you leave out keeps its value.


        The app needs recording settings first, which the first call to [Turn
        session recordings on or
        off](/api-reference/turn-session-recordings-on-or-off) creates, whether
        it turns them on or off. After that, you can change these settings at
        any time.


        <Note>This endpoint accepts a personal API key belonging to a user with
        editor access to the app. A read-only key is refused, and workspace API
        keys are not accepted.</Note>
      operationId: >-
        update_recording_capture_settings_api_session_recordings_apps__app_id__recording_settings_patch
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 64
            pattern: ^[a-zA-Z0-9._-]+$
            description: ID of the app.
            title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingCaptureSettingsUpdate'
      responses:
        '200':
          description: The app's updated session recording settings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingSettingsResponse'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: Your API key is read-only.
        '404':
          description: >-
            App not found, you don't have editor access to it, or it's outside
            the apps your API key can reach.
        '409':
          description: Recordings have never been turned on or off for this app.
        '422':
          description: >-
            The body has neither field, an unknown field, or a `sampling_rate`
            outside `0` to `1` or not a multiple of `0.05`.
      security:
        - PersonalAccessTokenAuth:
            - full_access
components:
  schemas:
    RecordingCaptureSettingsUpdate:
      properties:
        exclude_admins:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Exclude Admins
          description: >-
            `true` to leave visits by the app's owners and admins out of
            recording, `false` to record them too.
          example: false
        sampling_rate:
          anyOf:
            - type: number
              multipleOf: 0.05
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Sampling Rate
          description: >-
            Share of eligible visits to record, from `0` to `1` in steps of
            `0.05`. `1` records every visit.
          example: 0.5
      additionalProperties: false
      type: object
      title: RecordingCaptureSettingsUpdate
    RecordingSettingsResponse:
      properties:
        app_id:
          type: string
          title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
        can_enable_recordings:
          type: boolean
          title: Can Enable Recordings
          description: >-
            Whether your workspace role allows enabling recordings. In FERPA
            workspaces, only owners and admins can enable them.
          default: true
          example: true
        enabled:
          type: boolean
          title: Enabled
          description: >-
            Whether recordings are on. Reads `false` when they were turned on
            but the app has since moved to another owner or workspace, the
            owner's plan no longer includes recordings, or its FERPA workspace
            has not approved them.
          example: true
        enabled_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Enabled At
          description: >-
            When recordings were turned on, as a UTC timestamp in ISO 8601
            format, or `null` when they're off. A value read back carries no
            offset, and the response right after turning recordings on carries
            `+00:00`. The response to turning recordings off keeps the previous
            value.
          example: '2026-09-01T10:15:00.123000'
        enabled_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Enabled By
          description: >-
            Email of the user who turned recordings on, or `null` when they're
            off. The response to turning recordings off keeps the previous
            value.
          example: jane@acme.com
        exclude_admins:
          type: boolean
          title: Exclude Admins
          description: >-
            Whether visits by the app's owners and admins are left out of
            recording.
          default: true
          example: true
        sampling_rate:
          type: number
          title: Sampling Rate
          description: >-
            Share of eligible visits that get recorded, from `0` to `1`. `1`
            records every visit.
          default: 1
          example: 1
      type: object
      required:
        - app_id
        - enabled
      title: RecordingSettingsResponse
      description: An app's session recording settings.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.