> ## 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.

# Turn session recordings on or off

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

Turns session recordings on or off for the app. Recordings are available on the Builder plan and above, and capture starts once the app is published. See [Session recordings](/documentation/performance-and-seo/session-recordings).

The first time you turn recordings on starts the app's rolling 30-day recording window. Turning them off and on again doesn't restart it.

The response echoes the `enabled` value you sent. When you turn recordings off, `enabled_at` and `enabled_by` keep the values from the last time they were turned on, including after the app has moved to another owner. [Get session recording settings](/api-reference/get-session-recording-settings) reports `null` for both.

<Warning>Recording visitors may require their consent in some regions, such as the EU, the UK, and California. Base44 doesn't add a consent banner to your app, so make sure you meet the privacy laws that apply to your visitors before you turn recordings on.</Warning>

<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 post /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:
    post:
      summary: Turn session recordings on or off
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Turns session recordings on or off for the app. Recordings are available
        on the Builder plan and above, and capture starts once the app is
        published. See [Session
        recordings](/documentation/performance-and-seo/session-recordings).


        The first time you turn recordings on starts the app's rolling 30-day
        recording window. Turning them off and on again doesn't restart it.


        The response echoes the `enabled` value you sent. When you turn
        recordings off, `enabled_at` and `enabled_by` keep the values from the
        last time they were turned on, including after the app has moved to
        another owner. [Get session recording
        settings](/api-reference/get-session-recording-settings) reports `null`
        for both.


        <Warning>Recording visitors may require their consent in some regions,
        such as the EU, the UK, and California. Base44 doesn't add a consent
        banner to your app, so make sure you meet the privacy laws that apply to
        your visitors before you turn recordings on.</Warning>


        <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_settings_api_session_recordings_apps__app_id__recording_settings_post
      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/RecordingSettingsUpdate'
      responses:
        '200':
          description: The app's session recording settings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingSettingsResponse'
        '401':
          description: Missing or invalid credentials.
        '402':
          description: You're turning recordings on, and your plan doesn't include them.
        '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: >-
            You're turning recordings on, and they aren't available for this
            app's owner yet.
        '422':
          description: '`enabled` is missing or isn''t a boolean.'
components:
  schemas:
    RecordingSettingsUpdate:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: '`true` to turn recordings on, `false` to turn them off.'
          example: true
      type: object
      required:
        - enabled
      title: RecordingSettingsUpdate
    RecordingSettingsResponse:
      properties:
        app_id:
          type: string
          title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
        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, or the
            owner's plan no longer includes recordings.
          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>`.'

````