Skip to content
Start here

Create a preset

realtime_kit.presets.create(strapp_id, PresetCreateParams**kwargs) -> PresetCreateResponse
POST/accounts/{account_id}/realtime/kit/{app_id}/presets

Creates a preset belonging to the current App

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
config: Config
max_screenshare_count: int

Maximum number of screen shares that can be active at a given time

max_video_streams: ConfigMaxVideoStreams

Maximum number of streams that are visible on a device

desktop: int

Maximum number of video streams visible on desktop devices

mobile: int

Maximum number of streams visible on mobile devices

media: ConfigMedia

Media configuration options. eg: Video quality

screenshare: ConfigMediaScreenshare

Configuration options for participant screen shares

frame_rate: int

Frame rate of screen share

quality: Literal["hd", "vga", "qvga"]

Quality of screen share

One of the following:
"hd"
"vga"
"qvga"
video: ConfigMediaVideo

Configuration options for participant videos

frame_rate: int

Frame rate of participants' video

maximum30
quality: Literal["hd", "vga", "qvga"]

Video quality of participants

One of the following:
"hd"
"vga"
"qvga"
audio: Optional[ConfigMediaAudio]

Control options for Audio quality.

enable_high_bitrate: Optional[bool]

Enable High Quality Audio for your meetings

enable_stereo: Optional[bool]

Enable Stereo for your meetings

view_type: Literal["GROUP_CALL", "WEBINAR", "AUDIO_ROOM"]

Type of the meeting

One of the following:
"GROUP_CALL"
"WEBINAR"
"AUDIO_ROOM"
name: str

Name of the preset

ui: UI
design_tokens: UIDesignTokens
border_radius: Literal["rounded"]
border_width: Literal["thin"]
colors: UIDesignTokensColors
background: UIDesignTokensColorsBackground
_1000: str
_600: str
_700: str
_800: str
_900: str
brand: UIDesignTokensColorsBrand
_300: str
_400: str
_500: str
_600: str
_700: str
danger: str
success: str
text: str
text_on_brand: str
video_bg: str
warning: str
spacing_base: float
theme: Literal["dark"]
config_diff: Optional[object]
permissions: Optional[Permissions]
accept_waiting_requests: bool

Whether this participant can accept waiting requests

can_accept_production_requests: bool
can_change_participant_permissions: bool
can_edit_display_name: bool
can_livestream: bool
can_record: bool
can_spotlight: bool
chat: PermissionsChat

Chat permissions

private: PermissionsChatPrivate
can_receive: bool
can_send: bool
files: bool
text: bool
public: PermissionsChatPublic
can_send: bool

Can send messages in general

files: bool

Can send file messages

text: bool

Can send text messages

connected_meetings: PermissionsConnectedMeetings
can_alter_connected_meetings: bool
can_switch_connected_meetings: bool
can_switch_to_parent_meeting: bool
disable_participant_audio: bool
disable_participant_screensharing: bool
disable_participant_video: bool
hidden_participant: bool

Whether this participant is visible to others or not

kick_participant: bool
media: PermissionsMedia

Media permissions

audio: PermissionsMediaAudio

Audio permissions

can_produce: Literal["ALLOWED", "NOT_ALLOWED", "CAN_REQUEST"]

Can produce audio

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
screenshare: PermissionsMediaScreenshare

Screenshare permissions

can_produce: Literal["ALLOWED", "NOT_ALLOWED", "CAN_REQUEST"]

Can produce screen share video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
video: PermissionsMediaVideo

Video permissions

can_produce: Literal["ALLOWED", "NOT_ALLOWED", "CAN_REQUEST"]

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: bool
plugins: PermissionsPlugins

Plugin permissions

can_close: bool

Can close plugins that are already open

can_edit_config: bool

Can edit plugin config

can_start: bool

Can start plugins

config: PermissionsPluginsConfig
One of the following:
str
class PermissionsPluginsConfigUnionMember1:
access_control: Literal["FULL_ACCESS", "VIEW_ONLY"]
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: bool
polls: PermissionsPolls

Poll permissions

can_create: bool

Can create polls

can_view: bool

Can view polls

can_vote: bool

Can vote on polls

recorder_type: Literal["RECORDER", "LIVESTREAMER", "NONE"]

Type of the recording peer

One of the following:
"RECORDER"
"LIVESTREAMER"
"NONE"
show_participant_list: bool
waiting_room_type: Literal["SKIP", "ON_PRIVILEGED_USER_ENTRY", "SKIP_ON_ACCEPT"]

Waiting room type

One of the following:
"SKIP"
"ON_PRIVILEGED_USER_ENTRY"
"SKIP_ON_ACCEPT"
is_recorder: Optional[bool]
ReturnsExpand Collapse
class PresetCreateResponse:
data: Data

Data returned by the operation

id: str

ID of the preset

formatuuid
config: DataConfig
max_screenshare_count: int

Maximum number of screen shares that can be active at a given time

max_video_streams: DataConfigMaxVideoStreams

Maximum number of streams that are visible on a device

desktop: int

Maximum number of video streams visible on desktop devices

mobile: int

Maximum number of streams visible on mobile devices

media: DataConfigMedia

Media configuration options. eg: Video quality

screenshare: DataConfigMediaScreenshare

Configuration options for participant screen shares

frame_rate: int

Frame rate of screen share

quality: Literal["hd", "vga", "qvga"]

Quality of screen share

One of the following:
"hd"
"vga"
"qvga"
video: DataConfigMediaVideo

Configuration options for participant videos

frame_rate: int

Frame rate of participants' video

maximum30
quality: Literal["hd", "vga", "qvga"]

Video quality of participants

One of the following:
"hd"
"vga"
"qvga"
audio: Optional[DataConfigMediaAudio]

Control options for Audio quality.

enable_high_bitrate: Optional[bool]

Enable High Quality Audio for your meetings

enable_stereo: Optional[bool]

Enable Stereo for your meetings

view_type: Literal["GROUP_CALL", "WEBINAR", "AUDIO_ROOM"]

Type of the meeting

One of the following:
"GROUP_CALL"
"WEBINAR"
"AUDIO_ROOM"
name: str

Name of the preset

ui: DataUI
design_tokens: DataUIDesignTokens
border_radius: Literal["rounded"]
border_width: Literal["thin"]
colors: DataUIDesignTokensColors
background: DataUIDesignTokensColorsBackground
_1000: str
_600: str
_700: str
_800: str
_900: str
brand: DataUIDesignTokensColorsBrand
_300: str
_400: str
_500: str
_600: str
_700: str
danger: str
success: str
text: str
text_on_brand: str
video_bg: str
warning: str
spacing_base: float
theme: Literal["dark"]
config_diff: Optional[object]
permissions: Optional[DataPermissions]
accept_waiting_requests: bool

Whether this participant can accept waiting requests

can_accept_production_requests: bool
can_change_participant_permissions: bool
can_edit_display_name: bool
can_livestream: bool
can_record: bool
can_spotlight: bool
chat: DataPermissionsChat

Chat permissions

private: DataPermissionsChatPrivate
can_receive: bool
can_send: bool
files: bool
text: bool
public: DataPermissionsChatPublic
can_send: bool

Can send messages in general

files: bool

Can send file messages

text: bool

Can send text messages

connected_meetings: DataPermissionsConnectedMeetings
can_alter_connected_meetings: bool
can_switch_connected_meetings: bool
can_switch_to_parent_meeting: bool
disable_participant_audio: bool
disable_participant_screensharing: bool
disable_participant_video: bool
hidden_participant: bool

Whether this participant is visible to others or not

kick_participant: bool
media: DataPermissionsMedia

Media permissions

audio: DataPermissionsMediaAudio

Audio permissions

can_produce: Literal["ALLOWED", "NOT_ALLOWED", "CAN_REQUEST"]

Can produce audio

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
screenshare: DataPermissionsMediaScreenshare

Screenshare permissions

can_produce: Literal["ALLOWED", "NOT_ALLOWED", "CAN_REQUEST"]

Can produce screen share video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
video: DataPermissionsMediaVideo

Video permissions

can_produce: Literal["ALLOWED", "NOT_ALLOWED", "CAN_REQUEST"]

Can produce video

One of the following:
"ALLOWED"
"NOT_ALLOWED"
"CAN_REQUEST"
pin_participant: bool
plugins: DataPermissionsPlugins

Plugin permissions

can_close: bool

Can close plugins that are already open

can_edit_config: bool

Can edit plugin config

can_start: bool

Can start plugins

config: DataPermissionsPluginsConfig
One of the following:
str
class DataPermissionsPluginsConfigUnionMember1:
access_control: Literal["FULL_ACCESS", "VIEW_ONLY"]
One of the following:
"FULL_ACCESS"
"VIEW_ONLY"
handles_view_only: bool
polls: DataPermissionsPolls

Poll permissions

can_create: bool

Can create polls

can_view: bool

Can view polls

can_vote: bool

Can vote on polls

recorder_type: Literal["RECORDER", "LIVESTREAMER", "NONE"]

Type of the recording peer

One of the following:
"RECORDER"
"LIVESTREAMER"
"NONE"
show_participant_list: bool
waiting_room_type: Literal["SKIP", "ON_PRIVILEGED_USER_ENTRY", "SKIP_ON_ACCEPT"]

Waiting room type

One of the following:
"SKIP"
"ON_PRIVILEGED_USER_ENTRY"
"SKIP_ON_ACCEPT"
is_recorder: Optional[bool]
success: bool

Success status of the operation

Create a preset

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
preset = client.realtime_kit.presets.create(
    app_id="app_id",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
    config={
        "max_screenshare_count": 0,
        "max_video_streams": {
            "desktop": 0,
            "mobile": 0,
        },
        "media": {
            "screenshare": {
                "frame_rate": 0,
                "quality": "hd",
            },
            "video": {
                "frame_rate": 30,
                "quality": "hd",
            },
        },
        "view_type": "GROUP_CALL",
    },
    name="name",
    ui={
        "design_tokens": {
            "border_radius": "rounded",
            "border_width": "thin",
            "colors": {
                "background": {
                    "_600": "600",
                    "_700": "700",
                    "_800": "800",
                    "_900": "900",
                    "_1000": "1000",
                },
                "brand": {
                    "_300": "300",
                    "_400": "400",
                    "_500": "500",
                    "_600": "600",
                    "_700": "700",
                },
                "danger": "danger",
                "success": "success",
                "text": "text",
                "text_on_brand": "text_on_brand",
                "video_bg": "video_bg",
                "warning": "warning",
            },
            "logo": "logo",
            "spacing_base": 0,
            "theme": "dark",
        }
    },
)
print(preset.data)
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "config": {
      "max_screenshare_count": 0,
      "max_video_streams": {
        "desktop": 0,
        "mobile": 0
      },
      "media": {
        "screenshare": {
          "frame_rate": 0,
          "quality": "hd"
        },
        "video": {
          "frame_rate": 30,
          "quality": "hd"
        },
        "audio": {
          "enable_high_bitrate": true,
          "enable_stereo": true
        }
      },
      "view_type": "GROUP_CALL"
    },
    "name": "name",
    "ui": {
      "design_tokens": {
        "border_radius": "rounded",
        "border_width": "thin",
        "colors": {
          "background": {
            "600": "600",
            "700": "700",
            "800": "800",
            "900": "900",
            "1000": "1000"
          },
          "brand": {
            "300": "300",
            "400": "400",
            "500": "500",
            "600": "600",
            "700": "700"
          },
          "danger": "danger",
          "success": "success",
          "text": "text",
          "text_on_brand": "text_on_brand",
          "video_bg": "video_bg",
          "warning": "warning"
        },
        "logo": "logo",
        "spacing_base": 0,
        "theme": "dark"
      },
      "config_diff": {}
    },
    "permissions": {
      "accept_waiting_requests": true,
      "can_accept_production_requests": true,
      "can_change_participant_permissions": true,
      "can_edit_display_name": true,
      "can_livestream": true,
      "can_record": true,
      "can_spotlight": true,
      "chat": {
        "private": {
          "can_receive": true,
          "can_send": true,
          "files": true,
          "text": true
        },
        "public": {
          "can_send": true,
          "files": true,
          "text": true
        }
      },
      "connected_meetings": {
        "can_alter_connected_meetings": true,
        "can_switch_connected_meetings": true,
        "can_switch_to_parent_meeting": true
      },
      "disable_participant_audio": true,
      "disable_participant_screensharing": true,
      "disable_participant_video": true,
      "hidden_participant": true,
      "kick_participant": true,
      "media": {
        "audio": {
          "can_produce": "ALLOWED"
        },
        "screenshare": {
          "can_produce": "ALLOWED"
        },
        "video": {
          "can_produce": "ALLOWED"
        }
      },
      "pin_participant": true,
      "plugins": {
        "can_close": true,
        "can_edit_config": true,
        "can_start": true,
        "config": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      },
      "polls": {
        "can_create": true,
        "can_view": true,
        "can_vote": true
      },
      "recorder_type": "RECORDER",
      "show_participant_list": true,
      "waiting_room_type": "SKIP",
      "is_recorder": true
    }
  },
  "success": true
}
Returns Examples
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "config": {
      "max_screenshare_count": 0,
      "max_video_streams": {
        "desktop": 0,
        "mobile": 0
      },
      "media": {
        "screenshare": {
          "frame_rate": 0,
          "quality": "hd"
        },
        "video": {
          "frame_rate": 30,
          "quality": "hd"
        },
        "audio": {
          "enable_high_bitrate": true,
          "enable_stereo": true
        }
      },
      "view_type": "GROUP_CALL"
    },
    "name": "name",
    "ui": {
      "design_tokens": {
        "border_radius": "rounded",
        "border_width": "thin",
        "colors": {
          "background": {
            "600": "600",
            "700": "700",
            "800": "800",
            "900": "900",
            "1000": "1000"
          },
          "brand": {
            "300": "300",
            "400": "400",
            "500": "500",
            "600": "600",
            "700": "700"
          },
          "danger": "danger",
          "success": "success",
          "text": "text",
          "text_on_brand": "text_on_brand",
          "video_bg": "video_bg",
          "warning": "warning"
        },
        "logo": "logo",
        "spacing_base": 0,
        "theme": "dark"
      },
      "config_diff": {}
    },
    "permissions": {
      "accept_waiting_requests": true,
      "can_accept_production_requests": true,
      "can_change_participant_permissions": true,
      "can_edit_display_name": true,
      "can_livestream": true,
      "can_record": true,
      "can_spotlight": true,
      "chat": {
        "private": {
          "can_receive": true,
          "can_send": true,
          "files": true,
          "text": true
        },
        "public": {
          "can_send": true,
          "files": true,
          "text": true
        }
      },
      "connected_meetings": {
        "can_alter_connected_meetings": true,
        "can_switch_connected_meetings": true,
        "can_switch_to_parent_meeting": true
      },
      "disable_participant_audio": true,
      "disable_participant_screensharing": true,
      "disable_participant_video": true,
      "hidden_participant": true,
      "kick_participant": true,
      "media": {
        "audio": {
          "can_produce": "ALLOWED"
        },
        "screenshare": {
          "can_produce": "ALLOWED"
        },
        "video": {
          "can_produce": "ALLOWED"
        }
      },
      "pin_participant": true,
      "plugins": {
        "can_close": true,
        "can_edit_config": true,
        "can_start": true,
        "config": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      },
      "polls": {
        "can_create": true,
        "can_view": true,
        "can_vote": true
      },
      "recorder_type": "RECORDER",
      "show_participant_list": true,
      "waiting_room_type": "SKIP",
      "is_recorder": true
    }
  },
  "success": true
}