Table of Contents

Enum RequestType

Namespace
OBSStudioClient.Enums
Assembly
OBSClient.dll

The requests that obs-websocket knows.

[JsonConverter(typeof(JsonStringEnumConverter))]
public enum RequestType

Fields

GetVersion = 0

Gets data about the current plugin and RPC version.

GetStats = 1

Gets statistics about OBS, obs-websocket, and the current session.

BroadcastCustomEvent = 2

Broadcasts a CustomEvent to all WebSocket clients. Receivers are clients which are identified and subscribed.

CallVendorRequest = 3

Call a request registered to a vendor. A vendor is a unique name registered by a third-party plugin or script, which allows for custom requests and events to be added to obs-websocket. If a plugin or script implements vendor requests or events, documentation is expected to be provided with them.

GetHotkeyList = 4

Gets an array of all hotkey names in OBS. Note: Hotkey functionality in obs-websocket comes as-is, and we do not guarantee support if things are broken. In 9/10 usages of hotkey requests, there exists a better, more reliable method via other requests.

TriggerHotkeyByName = 5

Triggers a hotkey using its name. See GetHotkeyList. Note: Hotkey functionality in obs-websocket comes as-is, and we do not guarantee support if things are broken. In 9/10 usages of hotkey requests, there exists a better, more reliable method via other requests.

TriggerHotkeyByKeySequence = 6

Triggers a hotkey using a sequence of keys. Note: Hotkey functionality in obs-websocket comes as-is, and we do not guarantee support if things are broken. In 9/10 usages of hotkey requests, there exists a better, more reliable method via other requests.

Sleep = 7

Sleeps for a time duration or number of frames. Only available in request batches with types SERIAL_REALTIME or SERIAL_FRAME.

GetPersistentData = 8

Gets the value of a "slot" from the selected persistent data realm.

SetPersistentData = 9

Sets the value of a "slot" from the selected persistent data realm.

GetSceneCollectionList = 10

Gets an array of all scene collections.

SetCurrentSceneCollection = 11

Switches to a scene collection. Note: This will block until the collection has finished changing.

CreateSceneCollection = 12

Creates a new scene collection, switching to it in the process. Note: This will block until the collection has finished changing.

GetProfileList = 13

Gets an array of all profiles.

SetCurrentProfile = 14

Switches to a profile.

CreateProfile = 15

Creates a new profile, switching to it in the process.

RemoveProfile = 16

Removes a profile. If the current profile is chosen, it will change to a different profile first.

GetProfileParameter = 17

Gets a parameter from the current profile's configuration.

SetProfileParameter = 18

Sets the value of a parameter in the current profile's configuration.

GetVideoSettings = 19

Gets the current video settings. Note: To get the true FPS value, divide the FPS numerator by the FPS denominator. Example: 60000/1001.

SetVideoSettings = 20

Sets the current video settings. Note: Fields must be specified in pairs. For example, you cannot set only baseWidth without needing to specify baseHeight.

GetStreamServiceSettings = 21

Gets the current stream service settings (stream destination).

SetStreamServiceSettings = 22

Sets the current stream service settings (stream destination). Note: Simple RTMP settings can be set with type rtmp_custom and the settings fields server and key.

GetRecordDirectory = 23

Gets the current directory that the record output is set to.

SetRecordDirectory = 24

Sets the current directory that the record output writes files to. Introduced in obs-websocket 5.3.0.

GetSourceActive = 25

Gets the active and show state of a source. Compatible with inputs and scenes..

GetSourceScreenshot = 26

Gets a Base64-encoded screenshot of a source. The imageWidth and imageHeight parameters are treated as "scale to inner", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. If imageWidth and imageHeight are not specified, the compressed image will use the full resolution of the source. Compatible with inputs and scenes..

SaveSourceScreenshot = 27

Saves a screenshot of a source to the filesystem. The imageWidth and imageHeight parameters are treated as "scale to inner", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. If imageWidth and imageHeight are not specified, the compressed image will use the full resolution of the source. Compatible with inputs and scenes..

GetSceneList = 28

Gets an array of scenes in OBS.

GetGroupList = 29

Gets an array of all groups in OBS. Groups in OBS are actually scenes, but renamed and modified. In obs-websocket, we treat them as scenes where we can.

GetCurrentProgramScene = 30

Gets the current program scene. Note 1: This request is slated to have the currentProgram-prefixed fields removed from in an upcoming RPC version. Note 2: Canvases do not have any concept of a program or preview scene, so this request does not support canvases.

SetCurrentProgramScene = 31

Sets the current program scene.

GetCurrentPreviewScene = 32

Gets the current preview scene. Only available when studio mode is enabled. Note: This request is slated to have the currentPreview-prefixed fields removed from in an upcoming RPC version.

SetCurrentPreviewScene = 33

Sets the current preview scene. Only available when studio mode is enabled.

CreateScene = 34

Creates a new scene in OBS.

RemoveScene = 35

Removes a scene from OBS.

SetSceneName = 36

Sets the name of a scene (rename).

GetSceneSceneTransitionOverride = 37

Gets the scene transition overridden for a scene. Note: A transition UUID response field is not currently able to be implemented as of 2024-1-18.

SetSceneSceneTransitionOverride = 38

Sets the scene transition overridden for a scene.

GetInputList = 39

Gets an array of all inputs in OBS.

GetInputKindList = 40

Gets an array of all available input kinds in OBS.

GetSpecialInputs = 41

Gets the names of all special inputs.

CreateInput = 42

Creates a new input, adding it as a scene item to the specified scene.

RemoveInput = 43

Removes an existing input. Note: Will immediately remove all associated scene items.

SetInputName = 44

Sets the name of an input (rename).

GetInputDefaultSettings = 45

Gets the default settings for an input kind.

GetInputSettings = 46

Gets the settings of an input. Note: Does not include defaults. To create the entire settings object, overlay inputSettings over the defaultInputSettings provided by GetInputDefaultSettings.

SetInputSettings = 47

Sets the settings of an input.

GetInputMute = 48

Gets the audio mute state of an input.

SetInputMute = 49

Sets the audio mute state of an input.

ToggleInputMute = 50

Toggles the audio mute state of an input.

GetInputVolume = 51

Gets the current volume setting of an input.

SetInputVolume = 52

Sets the volume setting of an input.

GetInputAudioBalance = 53

Gets the audio balance of an input.

SetInputAudioBalance = 54

Sets the audio balance of an input.

GetInputAudioSyncOffset = 55

Gets the audio sync offset of an input. Note: The audio sync offset can be negative too!

SetInputAudioSyncOffset = 56

Sets the audio sync offset of an input.

GetInputAudioMonitorType = 57

Gets the audio monitor type of an input. The available audio monitor types are: - OBS_MONITORING_TYPE_NONE - OBS_MONITORING_TYPE_MONITOR_ONLY - OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT.

SetInputAudioMonitorType = 58

Sets the audio monitor type of an input.

GetInputAudioTracks = 59

Gets the enable state of all audio tracks of an input.

GetInputDeinterlaceMode = 60

Gets the deinterlace mode of an input. Deinterlace Modes: - OBS_DEINTERLACE_MODE_DISABLE - OBS_DEINTERLACE_MODE_DISCARD - OBS_DEINTERLACE_MODE_RETRO - OBS_DEINTERLACE_MODE_BLEND - OBS_DEINTERLACE_MODE_BLEND_2X - OBS_DEINTERLACE_MODE_LINEAR - OBS_DEINTERLACE_MODE_LINEAR_2X - OBS_DEINTERLACE_MODE_YADIF - OBS_DEINTERLACE_MODE_YADIF_2X Note: Deinterlacing functionality is restricted to async inputs only. Introduced in obs-websocket 5.6.0.

SetInputDeinterlaceMode = 61

Sets the deinterlace mode of an input. Note: Deinterlacing functionality is restricted to async inputs only. Introduced in obs-websocket 5.6.0.

GetInputDeinterlaceFieldOrder = 62

Gets the deinterlace field order of an input. Deinterlace Field Orders: - OBS_DEINTERLACE_FIELD_ORDER_TOP - OBS_DEINTERLACE_FIELD_ORDER_BOTTOM Note: Deinterlacing functionality is restricted to async inputs only. Introduced in obs-websocket 5.6.0.

SetInputDeinterlaceFieldOrder = 63

Sets the deinterlace field order of an input. Note: Deinterlacing functionality is restricted to async inputs only. Introduced in obs-websocket 5.6.0.

SetInputAudioTracks = 64

Sets the enable state of audio tracks of an input.

GetInputPropertiesListPropertyItems = 65

Gets the items of a list property from an input's properties. Note: Use this in cases where an input provides a dynamic, selectable list of items. For example, display capture, where it provides a list of available displays.

PressInputPropertiesButton = 66

Presses a button in the properties of an input. Some known propertyName values are: - refreshnocache - Browser source reload button Note: Use this in cases where there is a button in the properties of an input that cannot be accessed in any other way. For example, browser sources, where there is a refresh button.

GetTransitionKindList = 67

Gets an array of all available transition kinds. Similar to GetInputKindList.

GetSceneTransitionList = 68

Gets an array of all scene transitions in OBS.

GetCurrentSceneTransition = 69

Gets information about the current scene transition.

SetCurrentSceneTransition = 70

Sets the current scene transition. Small note: While the namespace of scene transitions is generally unique, that uniqueness is not a guarantee as it is with other resources like inputs.

SetCurrentSceneTransitionDuration = 71

Sets the duration of the current scene transition, if it is not fixed.

SetCurrentSceneTransitionSettings = 72

Sets the settings of the current scene transition.

GetCurrentSceneTransitionCursor = 73

Gets the cursor position of the current scene transition. Note: transitionCursor will return 1.0 when the transition is inactive.

TriggerStudioModeTransition = 74

Triggers the current scene transition. Same functionality as the Transition button in studio mode.

SetTBarPosition = 75

Sets the position of the TBar. Very important note: This will be deprecated and replaced in a future version of obs-websocket.

GetSourceFilterKindList = 76

Gets an array of all available source filter kinds. Similar to GetInputKindList. Introduced in obs-websocket 5.4.0.

GetSourceFilterList = 77

Gets an array of all of a source's filters.

GetSourceFilterDefaultSettings = 78

Gets the default settings for a filter kind.

CreateSourceFilter = 79

Creates a new filter, adding it to the specified source.

RemoveSourceFilter = 80

Removes a filter from a source.

SetSourceFilterName = 81

Sets the name of a source filter (rename).

GetSourceFilter = 82

Gets the info for a specific source filter.

SetSourceFilterIndex = 83

Sets the index position of a filter on a source.

SetSourceFilterSettings = 84

Sets the settings of a source filter.

SetSourceFilterEnabled = 85

Sets the enable state of a source filter.

GetSceneItemList = 86

Gets a list of all scene items in a scene. Scenes only.

GetGroupSceneItemList = 87

Basically GetSceneItemList, but for groups. Using groups at all in OBS is discouraged, as they are very broken under the hood. Please use nested scenes instead. Groups only.

GetSceneItemId = 88

Searches a scene for a source, and returns its id. Scenes and Groups.

GetSceneItemSource = 89

Gets the source associated with a scene item. Introduced in obs-websocket 5.4.0.

CreateSceneItem = 90

Creates a new scene item using a source. Scenes only.

RemoveSceneItem = 91

Removes a scene item from a scene. Scenes only.

DuplicateSceneItem = 92

Duplicates a scene item, copying all transform and crop info. Scenes only.

GetSceneItemTransform = 93

Gets the transform and crop info of a scene item. Scenes and Groups.

SetSceneItemTransform = 94

Sets the transform and crop info of a scene item.

GetSceneItemEnabled = 95

Gets the enable state of a scene item. Scenes and Groups.

SetSceneItemEnabled = 96

Sets the enable state of a scene item. Scenes and Groups.

GetSceneItemLocked = 97

Gets the lock state of a scene item. Scenes and Groups.

SetSceneItemLocked = 98

Sets the lock state of a scene item. Scenes and Group.

GetSceneItemIndex = 99

Gets the index position of a scene item in a scene. An index of 0 is at the bottom of the source list in the UI. Scenes and Groups.

SetSceneItemIndex = 100

Sets the index position of a scene item in a scene. Scenes and Groups.

GetSceneItemBlendMode = 101

Gets the blend mode of a scene item. Blend modes: - OBS_BLEND_NORMAL - OBS_BLEND_ADDITIVE - OBS_BLEND_SUBTRACT - OBS_BLEND_SCREEN - OBS_BLEND_MULTIPLY - OBS_BLEND_LIGHTEN - OBS_BLEND_DARKEN Scenes and Groups.

SetSceneItemBlendMode = 102

Sets the blend mode of a scene item. Scenes and Groups.

GetVirtualCamStatus = 103

Gets the status of the virtualcam output.

ToggleVirtualCam = 104

Toggles the state of the virtualcam output.

StartVirtualCam = 105

Starts the virtualcam output.

StopVirtualCam = 106

Stops the virtualcam output.

GetReplayBufferStatus = 107

Gets the status of the replay buffer output.

ToggleReplayBuffer = 108

Toggles the state of the replay buffer output.

StartReplayBuffer = 109

Starts the replay buffer output.

StopReplayBuffer = 110

Stops the replay buffer output.

SaveReplayBuffer = 111

Saves the contents of the replay buffer output.

GetLastReplayBufferReplay = 112

Gets the filename of the last replay buffer save file.

GetOutputList = 113

Gets the list of available outputs.

GetOutputStatus = 114

Gets the status of an output.

ToggleOutput = 115

Toggles the status of an output.

StartOutput = 116

Starts an output.

StopOutput = 117

Stops an output.

GetOutputSettings = 118

Gets the settings of an output.

SetOutputSettings = 119

Sets the settings of an output.

GetStreamStatus = 120

Gets the status of the stream output.

ToggleStream = 121

Toggles the status of the stream output.

StartStream = 122

Starts the stream output.

StopStream = 123

Stops the stream output.

SendStreamCaption = 124

Sends CEA-608 caption text over the stream output.

GetRecordStatus = 125

Gets the status of the record output.

ToggleRecord = 126

Toggles the status of the record output.

StartRecord = 127

Starts the record output.

StopRecord = 128

Stops the record output.

ToggleRecordPause = 129

Toggles pause on the record output.

PauseRecord = 130

Pauses the record output.

ResumeRecord = 131

Resumes the record output.

SplitRecordFile = 132

Splits the current file being recorded into a new file. Introduced in obs-websocket 5.5.0.

CreateRecordChapter = 133

Adds a new chapter marker to the file currently being recorded. Note: As of OBS 30.2.0, the only file format supporting this feature is Hybrid MP4. Introduced in obs-websocket 5.5.0.

GetMediaInputStatus = 134

Gets the status of a media input. Media States: - OBS_MEDIA_STATE_NONE - OBS_MEDIA_STATE_PLAYING - OBS_MEDIA_STATE_OPENING - OBS_MEDIA_STATE_BUFFERING - OBS_MEDIA_STATE_PAUSED - OBS_MEDIA_STATE_STOPPED - OBS_MEDIA_STATE_ENDED - OBS_MEDIA_STATE_ERROR.

SetMediaInputCursor = 135

Sets the cursor position of a media input. This request does not perform bounds checking of the cursor position.

OffsetMediaInputCursor = 136

Offsets the current cursor position of a media input by the specified value. This request does not perform bounds checking of the cursor position.

TriggerMediaInputAction = 137

Triggers an action on a media input.

GetStudioModeEnabled = 138

Gets whether studio is enabled.

SetStudioModeEnabled = 139

Enables or disables studio mode.

OpenInputPropertiesDialog = 140

Opens the properties dialog of an input.

OpenInputFiltersDialog = 141

Opens the filters dialog of an input.

OpenInputInteractDialog = 142

Opens the interact dialog of an input.

GetMonitorList = 143

Gets a list of connected monitors and information about them.

OpenVideoMixProjector = 144

Opens a projector for a specific output video mix. Mix types: - OBS_WEBSOCKET_VIDEO_MIX_TYPE_PREVIEW - OBS_WEBSOCKET_VIDEO_MIX_TYPE_PROGRAM - OBS_WEBSOCKET_VIDEO_MIX_TYPE_MULTIVIEW Note: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release.

OpenSourceProjector = 145

Opens a projector for a source. Note: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release.

GetCanvasList = 146

Gets an array of canvases in OBS. Introduced in obs-websocket 5.7.0.

Remarks

The numeric values of the members are not part of the obs-websocket protocol, but they are embedded in the assemblies that use this enum. A member keeps its value (they are listed in tools/protocol/overlay.toml); new members get the next number.