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

In FERPA workspaces, only a workspace owner or admin can turn recordings on. Recordings that were enabled before the workspace became FERPA stop capturing until an owner or admin enables them again. App editors can still turn recordings off.

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


        In FERPA workspaces, only a workspace owner or admin can turn recordings
        on. Recordings that were enabled before the workspace became FERPA stop
        capturing until an owner or admin enables them again. App editors can
        still turn recordings off.


        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, or enabling recordings in a FERPA
            workspace requires an owner or admin
            (ferpa_recording_admin_required).
        '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.'
      security:
        - PersonalAccessTokenAuth:
            - full_access
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
        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.