Skip to content

API reference

Update privacy settings

workspace.UpdatePrivacySettingsWriteAPI key

Update meeting transcript retention and attendee-disclosure settings. Enabling the calendar notice requires disclosure text.

POST/v1/operations/workspace.UpdatePrivacySettings
On this page

Access & visibility

Allow workspace.UpdatePrivacySettings on your API key.

Workspace access by default. Private member data requires approved member delegation through Brigg-Act-As; the key supplies permissions while private ownership and project boundaries remain enforced.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

retentionstringOptional

Transcript policy: immediate deletes verbatim text once the closing summary exists; hours24 keeps the archive for one day; days30, days90, days180 and days365 retain it for that many days; forever has no automatic expiry. This governs transcripts, not the meeting's saved summary.

Allowed: "immediate", "hours24", "days30", "days90", "days180", "days365", "forever".

ai_disclosure_reminder_enabledbooleanOptional

Whether Brigg reminds the host at recording start to tell attendees that AI is being used. This does not notify attendees itself.

ai_disclosure_reminder_messagestring or nullOptional

Custom reminder; null or whitespace resets to the localized built-in message. Omit to preserve the current value.

ai_disclosure_notice_enabledbooleanOptional

Enable or disable the invitation notice. The resulting enabled state must have nonblank text; include ai_disclosure_notice_text when none is saved.

ai_disclosure_notice_textstring or nullOptional

Text to append to eligible invitations. Omit to preserve it; null or whitespace clears it only when the notice is disabled.

Separate retention, host reminders and attendee notices

These are workspace policies, not the acting member's personal preferences. Any active member can read them; canManage tells you whether that member is a workspace owner or administrator who may change them. The API key needs the update operation as well as approved delegation to that manager.

The reminder is a private prompt to the host when recording starts. The notice adds disclosure text to eligible future Google/Microsoft invitations with a conference URL and an external attendee that Brigg has permission to update. Changing settings does not prove that every provider invitation has already been updated.

Use the exact values in retentionOptions when changing retention. A shorter policy can cause existing archived transcripts to expire; immediate deletes verbatim text after its closing summary exists. Saved summaries are separate. A deleted transcript cannot be recovered by selecting a longer policy later.

Response

Returns 200 OK with a JSON body.

Send only the settings you intend to change. Omitted settings remain unchanged. Read GetPrivacySettings after the save when you also need supported values, localized defaults or management capability.

okbooleanRequired

Whether the action completed successfully.

retentionstringRequired

Transcript policy: immediate deletes verbatim text once the closing summary exists; hours24 keeps the archive for one day; days30, days90, days180 and days365 retain it for that many days; forever has no automatic expiry. This governs transcripts, not the meeting's saved summary.

ai_disclosure_reminder_enabledbooleanRequired

Whether Brigg reminds the host at recording start to tell attendees that AI is being used. This does not notify attendees itself.

ai_disclosure_reminder_messagenull or stringOptional

Custom host-reminder text, or null to use the localized built-in message.

ai_disclosure_notice_enabledbooleanRequired

Whether Brigg adds the disclosure text to eligible connected-calendar invitations. This is separate from the private host reminder.

ai_disclosure_notice_textnull or stringOptional

Saved invitation disclosure text, or null when unset. Enabling the notice requires nonblank saved text.

Errors & retries

Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.

For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.

HTTP status Code What to do
400 invalid_json Send a JSON object with Content-Type: application/json.
400 invalid_input Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters.
401 invalid_key The workspace API key is missing, invalid or revoked.
403 forbidden Check the key’s operation and resource grants. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member.
404 not_found The requested operation or resource is not available to this credential.
429 rate_limited Wait for Retry-After before retrying. Reuse the original Idempotency-Key.
400 disclosure_notice_text_required The resulting enabled invitation notice has no text. Supply nonblank ai_disclosure_notice_text, or disable the notice when clearing it.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "retention": {
      "type": "string",
      "enum": [
        "immediate",
        "hours24",
        "days30",
        "days90",
        "days180",
        "days365",
        "forever"
      ],
      "description": "Transcript policy: immediate deletes verbatim text once the closing summary exists; hours24 keeps the archive for one day; days30, days90, days180 and days365 retain it for that many days; forever has no automatic expiry. This governs transcripts, not the meeting's saved summary."
    },
    "ai_disclosure_reminder_enabled": {
      "type": "boolean",
      "description": "Whether Brigg reminds the host at recording start to tell attendees that AI is being used. This does not notify attendees itself."
    },
    "ai_disclosure_reminder_message": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500,
          "description": "Custom reminder; null or whitespace resets to the localized built-in message. Omit to preserve the current value."
        },
        {
          "type": "null",
          "description": "Custom reminder; null or whitespace resets to the localized built-in message. Omit to preserve the current value."
        }
      ],
      "description": "Custom reminder; null or whitespace resets to the localized built-in message. Omit to preserve the current value."
    },
    "ai_disclosure_notice_enabled": {
      "type": "boolean",
      "description": "Enable or disable the invitation notice. The resulting enabled state must have nonblank text; include ai_disclosure_notice_text when none is saved."
    },
    "ai_disclosure_notice_text": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500,
          "description": "Text to append to eligible invitations. Omit to preserve it; null or whitespace clears it only when the notice is disabled."
        },
        {
          "type": "null",
          "description": "Text to append to eligible invitations. Omit to preserve it; null or whitespace clears it only when the notice is disabled."
        }
      ],
      "description": "Text to append to eligible invitations. Omit to preserve it; null or whitespace clears it only when the notice is disabled."
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "retention": "days30"
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether the action completed successfully."
    },
    "retention": {
      "type": "string",
      "description": "Transcript policy: immediate deletes verbatim text once the closing summary exists; hours24 keeps the archive for one day; days30, days90, days180 and days365 retain it for that many days; forever has no automatic expiry. This governs transcripts, not the meeting's saved summary."
    },
    "ai_disclosure_reminder_enabled": {
      "type": "boolean",
      "description": "Whether Brigg reminds the host at recording start to tell attendees that AI is being used. This does not notify attendees itself."
    },
    "ai_disclosure_reminder_message": {
      "description": "Custom host-reminder text, or null to use the localized built-in message.",
      "title": "OpenAdThreadSubtaskAgent_phase",
      "anyOf": [
        {
          "type": "null",
          "description": "Custom host-reminder text, or null to use the localized built-in message."
        },
        {
          "type": "string",
          "description": "Custom host-reminder text, or null to use the localized built-in message."
        }
      ]
    },
    "ai_disclosure_notice_enabled": {
      "type": "boolean",
      "description": "Whether Brigg adds the disclosure text to eligible connected-calendar invitations. This is separate from the private host reminder."
    },
    "ai_disclosure_notice_text": {
      "description": "Saved invitation disclosure text, or null when unset. Enabling the notice requires nonblank saved text.",
      "title": "OpenAdThreadSubtaskAgent_phase",
      "anyOf": [
        {
          "type": "null",
          "description": "Saved invitation disclosure text, or null when unset. Enabling the notice requires nonblank saved text."
        },
        {
          "type": "string",
          "description": "Saved invitation disclosure text, or null when unset. Enabling the notice requires nonblank saved text."
        }
      ]
    }
  },
  "required": [
    "ok",
    "retention",
    "ai_disclosure_reminder_enabled",
    "ai_disclosure_notice_enabled"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "ok": true,
      "retention": "days30",
      "ai_disclosure_reminder_enabled": true,
      "ai_disclosure_reminder_message": null,
      "ai_disclosure_notice_enabled": false,
      "ai_disclosure_notice_text": null
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.