Skip to content
Start here

Update a meeting

realtime_kit.meetings.update_meeting_by_id(strmeeting_id, MeetingUpdateMeetingByIDParams**kwargs) -> MeetingUpdateMeetingByIDResponse
PATCH/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}

Updates a meeting in an App for the given meeting ID.

Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
Accepted Permissions (at least one required)
Realtime AdminRealtime
ParametersExpand Collapse
account_id: str

The account identifier tag.

maxLength32
app_id: str

The app identifier tag.

maxLength32
meeting_id: str
formatuuid
ai_config: Optional[AIConfig]

The AI Config allows you to customize the behavior of meeting transcriptions and summaries

summarization: Optional[AIConfigSummarization]

Summary Config

summary_type: Optional[Literal["general", "team_meeting", "sales_call", 6 more]]

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
"general"
"team_meeting"
"sales_call"
"client_check_in"
"interview"
"daily_standup"
"one_on_one_meeting"
"lecture"
"code_review"
text_format: Optional[Literal["plain_text", "markdown"]]

Determines the text format of the summary, such as plain text or markdown.

One of the following:
"plain_text"
"markdown"
word_limit: Optional[int]

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription: Optional[AIConfigTranscription]

Transcription Configurations

keywords: Optional[SequenceNotStr[str]]

Adds specific terms to improve accurate detection during transcription.

language: Optional[Literal["en-US", "en-IN", "de", 7 more]]

Specifies the language code for transcription to ensure accurate results.

One of the following:
"en-US"
"en-IN"
"de"
"hi"
"sv"
"ru"
"pl"
"el"
"fr"
"nl"
profanity_filter: Optional[bool]

Control the inclusion of offensive language in transcriptions.

live_stream_on_start: Optional[bool]

Specifies if the meeting should start getting livestreamed on start.

persist_chat: Optional[bool]

If a meeting is updated to persist_chat, meeting chat would remain for a week within the meeting space.

record_on_start: Optional[bool]

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

session_keep_alive_time_in_secs: Optional[float]

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status: Optional[Literal["ACTIVE", "INACTIVE"]]

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end: Optional[bool]

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title: Optional[str]

Title of the meeting

ReturnsExpand Collapse
class MeetingUpdateMeetingByIDResponse:
success: bool

Success status of the operation

data: Optional[Data]

Data returned by the operation

id: str

ID of the meeting.

formatuuid
created_at: datetime

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
updated_at: datetime

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
ai_config: Optional[DataAIConfig]

The AI Config allows you to customize the behavior of meeting transcriptions and summaries

summarization: Optional[DataAIConfigSummarization]

Summary Config

summary_type: Optional[Literal["general", "team_meeting", "sales_call", 6 more]]

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
"general"
"team_meeting"
"sales_call"
"client_check_in"
"interview"
"daily_standup"
"one_on_one_meeting"
"lecture"
"code_review"
text_format: Optional[Literal["plain_text", "markdown"]]

Determines the text format of the summary, such as plain text or markdown.

One of the following:
"plain_text"
"markdown"
word_limit: Optional[int]

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
transcription: Optional[DataAIConfigTranscription]

Transcription Configurations

keywords: Optional[List[str]]

Adds specific terms to improve accurate detection during transcription.

language: Optional[Literal["en-US", "en-IN", "de", 7 more]]

Specifies the language code for transcription to ensure accurate results.

One of the following:
"en-US"
"en-IN"
"de"
"hi"
"sv"
"ru"
"pl"
"el"
"fr"
"nl"
profanity_filter: Optional[bool]

Control the inclusion of offensive language in transcriptions.

live_stream_on_start: Optional[bool]

Specifies if the meeting should start getting livestreamed on start.

persist_chat: Optional[bool]

Specifies if Chat within a meeting should persist for a week.

record_on_start: Optional[bool]

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

recording_config: Optional[DataRecordingConfig]

Recording Configurations to be used for this meeting. This level of configs takes higher preference over App level configs on the RealtimeKit developer portal.

audio_config: Optional[DataRecordingConfigAudioConfig]

Object containing configuration regarding the audio that is being recorded.

channel: Optional[Literal["mono", "stereo"]]

Audio signal pathway within an audio file that carries a specific sound source.

One of the following:
"mono"
"stereo"
codec: Optional[Literal["MP3", "AAC"]]

Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.

One of the following:
"MP3"
"AAC"
export_file: Optional[bool]

Controls whether to export audio file seperately

file_name_prefix: Optional[str]

Adds a prefix to the beginning of the file name of the recording.

live_streaming_config: Optional[DataRecordingConfigLiveStreamingConfig]
rtmp_url: Optional[str]

RTMP URL to stream to

formaturi
max_seconds: Optional[float]

Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.

maximum86400
minimum60
realtimekit_bucket_config: Optional[DataRecordingConfigRealtimekitBucketConfig]
enabled: bool

Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, download_url, audio_download_url, download_url_expiry won't be generated for a recording.

storage_config: Optional[DataRecordingConfigStorageConfig]
type: Literal["aws", "azure", "digitalocean", 2 more]

Type of storage media.

One of the following:
"aws"
"azure"
"digitalocean"
"gcs"
"sftp"
access_key: Optional[str]

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

auth_method: Optional[Literal["KEY", "PASSWORD"]]

Authentication method used for "sftp" type storage medium

One of the following:
"KEY"
"PASSWORD"
bucket: Optional[str]

Name of the storage medium's bucket.

host: Optional[str]

SSH destination server host for SFTP type storage medium

password: Optional[str]

SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.

path: Optional[str]

Path relative to the bucket root at which the recording will be placed.

port: Optional[float]

SSH destination server port for SFTP type storage medium

private_key: Optional[str]

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

region: Optional[str]

Region of the storage medium.

secret: Optional[str]

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

username: Optional[str]

SSH destination server username for SFTP type storage medium

video_config: Optional[DataRecordingConfigVideoConfig]
codec: Optional[Literal["H264", "VP8"]]

Codec using which the recording will be encoded.

One of the following:
"H264"
"VP8"
export_file: Optional[bool]

Controls whether to export video file seperately

height: Optional[int]

Height of the recording video in pixels

maximum1920
minimum1
watermark: Optional[DataRecordingConfigVideoConfigWatermark]

Watermark to be added to the recording

position: Optional[Literal["left top", "right top", "left bottom", "right bottom"]]

Position of the watermark

One of the following:
"left top"
"right top"
"left bottom"
"right bottom"
size: Optional[DataRecordingConfigVideoConfigWatermarkSize]

Size of the watermark

height: Optional[int]

Height of the watermark in px

minimum1
width: Optional[int]

Width of the watermark in px

minimum1
url: Optional[str]

URL of the watermark image

formaturi
width: Optional[int]

Width of the recording video in pixels

maximum1920
minimum1
session_keep_alive_time_in_secs: Optional[float]

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
status: Optional[Literal["ACTIVE", "INACTIVE"]]

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
"ACTIVE"
"INACTIVE"
summarize_on_end: Optional[bool]

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

title: Optional[str]

Title of the meeting.

Update a meeting

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.realtime_kit.meetings.update_meeting_by_id(
    meeting_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
    app_id="app_id",
)
print(response.success)
{
  "success": true,
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "ai_config": {
      "summarization": {
        "summary_type": "general",
        "text_format": "plain_text",
        "word_limit": 150
      },
      "transcription": {
        "keywords": [
          "string"
        ],
        "language": "en-US",
        "profanity_filter": true
      }
    },
    "live_stream_on_start": true,
    "persist_chat": true,
    "record_on_start": true,
    "recording_config": {
      "audio_config": {
        "channel": "mono",
        "codec": "MP3",
        "export_file": true
      },
      "file_name_prefix": "file_name_prefix",
      "live_streaming_config": {
        "rtmp_url": "rtmp://a.rtmp.youtube.com/live2"
      },
      "max_seconds": 60,
      "realtimekit_bucket_config": {
        "enabled": true
      },
      "storage_config": {
        "type": "aws",
        "auth_method": "KEY",
        "bucket": "bucket",
        "host": "host",
        "password": "password",
        "path": "path",
        "port": 0,
        "private_key": "private_key",
        "region": "us-east-1",
        "secret": "secret",
        "username": "username"
      },
      "video_config": {
        "codec": "H264",
        "export_file": true,
        "height": 720,
        "watermark": {
          "position": "left top",
          "size": {
            "height": 1,
            "width": 1
          },
          "url": "https://example.com"
        },
        "width": 1280
      }
    },
    "session_keep_alive_time_in_secs": 60,
    "status": "ACTIVE",
    "summarize_on_end": true,
    "title": "title"
  }
}
Returns Examples
{
  "success": true,
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "ai_config": {
      "summarization": {
        "summary_type": "general",
        "text_format": "plain_text",
        "word_limit": 150
      },
      "transcription": {
        "keywords": [
          "string"
        ],
        "language": "en-US",
        "profanity_filter": true
      }
    },
    "live_stream_on_start": true,
    "persist_chat": true,
    "record_on_start": true,
    "recording_config": {
      "audio_config": {
        "channel": "mono",
        "codec": "MP3",
        "export_file": true
      },
      "file_name_prefix": "file_name_prefix",
      "live_streaming_config": {
        "rtmp_url": "rtmp://a.rtmp.youtube.com/live2"
      },
      "max_seconds": 60,
      "realtimekit_bucket_config": {
        "enabled": true
      },
      "storage_config": {
        "type": "aws",
        "auth_method": "KEY",
        "bucket": "bucket",
        "host": "host",
        "password": "password",
        "path": "path",
        "port": 0,
        "private_key": "private_key",
        "region": "us-east-1",
        "secret": "secret",
        "username": "username"
      },
      "video_config": {
        "codec": "H264",
        "export_file": true,
        "height": 720,
        "watermark": {
          "position": "left top",
          "size": {
            "height": 1,
            "width": 1
          },
          "url": "https://example.com"
        },
        "width": 1280
      }
    },
    "session_keep_alive_time_in_secs": 60,
    "status": "ACTIVE",
    "summarize_on_end": true,
    "title": "title"
  }
}