"description":"A request batch which processes all requests serially, as fast as possible.\n\nNote: To introduce artificial delay, use the `Sleep` request and the `sleepMillis` request field.",
"description":"A request batch type which processes all requests serially, in sync with the graphics thread. Designed to provide high accuracy for animations.\n\nNote: To introduce artificial delay, use the `Sleep` request and the `sleepFrames` request field.",
"description":"A request batch type which processes all requests using all available threads in the thread pool.\n\nNote: This is mainly experimental, and only really shows its colors during requests which require lots of\nactive processing, like `GetSourceScreenshot`.",
"description":"The resource does not support being configured.\n\nThis is particularly relevant to transitions, where they do not always have changeable settings.",
"description":"For internal use only to tell the request handler not to perform any close action.",
"enumIdentifier":"DontClose",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":0
},
{
"description":"Unknown reason, should never be used.",
"enumIdentifier":"UnknownReason",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4000
},
{
"description":"The server was unable to decode the incoming websocket message.",
"enumIdentifier":"MessageDecodeError",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4002
},
{
"description":"A data field is required but missing from the payload.",
"enumIdentifier":"MissingDataField",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4003
},
{
"description":"A data field's value type is invalid.",
"enumIdentifier":"InvalidDataFieldType",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4004
},
{
"description":"A data field's value is invalid.",
"enumIdentifier":"InvalidDataFieldValue",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4005
},
{
"description":"The specified `op` was invalid or missing.",
"enumIdentifier":"UnknownOpCode",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4006
},
{
"description":"The client sent a websocket message without first sending `Identify` message.",
"enumIdentifier":"NotIdentified",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4007
},
{
"description":"The client sent an `Identify` message while already identified.\n\nNote: Once a client has identified, only `Reidentify` may be used to change session parameters.",
"description":"The server detected the usage of an old version of the obs-websocket RPC protocol.",
"enumIdentifier":"UnsupportedRpcVersion",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4010
},
{
"description":"The websocket session has been invalidated by the obs-websocket server.\n\nNote: This is the code used by the `Kick` button in the UI Session List. If you receive this code, you must not automatically reconnect.",
"enumIdentifier":"SessionInvalidated",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4011
},
{
"description":"A requested feature is not supported due to hardware/software limitations.",
"enumIdentifier":"UnsupportedFeature",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":4012
}
]
},
{
"enumType":"WebSocketOpCode",
"enumIdentifiers":[
{
"description":"The initial message sent by obs-websocket to newly connected clients.",
"enumIdentifier":"Hello",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":0
},
{
"description":"The message sent by a newly connected client to obs-websocket in response to a `Hello`.",
"enumIdentifier":"Identify",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":1
},
{
"description":"The response sent by obs-websocket to a client after it has successfully identified with obs-websocket.",
"enumIdentifier":"Identified",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":2
},
{
"description":"The message sent by an already-identified client to update identification parameters.",
"enumIdentifier":"Reidentify",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":3
},
{
"description":"The message sent by obs-websocket containing an event payload.",
"enumIdentifier":"Event",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":5
},
{
"description":"The message sent by a client to obs-websocket to perform a request.",
"enumIdentifier":"Request",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":6
},
{
"description":"The message sent by obs-websocket in response to a particular request from a client.",
"enumIdentifier":"RequestResponse",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":7
},
{
"description":"The message sent by a client to obs-websocket to perform a batch of requests.",
"enumIdentifier":"RequestBatch",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":8
},
{
"description":"The message sent by obs-websocket in response to a particular batch of requests from a client.",
"enumIdentifier":"RequestBatchResponse",
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"enumValue":9
}
]
}
],
"requests":[
{
"description":"Gets the value of a \"slot\" from the selected persistent data realm.",
"requestType":"GetPersistentData",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"requestFields":[
{
"valueName":"realm",
"valueType":"String",
"valueDescription":"The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE`",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"slotName",
"valueType":"String",
"valueDescription":"The name of the slot to retrieve data from",
"valueDescription":"Category of the parameter to set",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"parameterName",
"valueType":"String",
"valueDescription":"Name of the parameter to set",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"parameterValue",
"valueType":"String",
"valueDescription":"Value of the parameter to set. Use `null` to delete",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Gets the current video settings.\n\nNote: To get the true FPS value, divide the FPS numerator by the FPS denominator. Example: `60000/1001`",
"requestType":"GetVideoSettings",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"requestFields":[],
"responseFields":[
{
"valueName":"fpsNumerator",
"valueType":"Number",
"valueDescription":"Numerator of the fractional FPS value"
},
{
"valueName":"fpsDenominator",
"valueType":"Number",
"valueDescription":"Denominator of the fractional FPS value"
},
{
"valueName":"baseWidth",
"valueType":"Number",
"valueDescription":"Width of the base (canvas) resolution in pixels"
},
{
"valueName":"baseHeight",
"valueType":"Number",
"valueDescription":"Height of the base (canvas) resolution in pixels"
},
{
"valueName":"outputWidth",
"valueType":"Number",
"valueDescription":"Width of the output resolution in pixels"
},
{
"valueName":"outputHeight",
"valueType":"Number",
"valueDescription":"Height of the output resolution in pixels"
}
]
},
{
"description":"Sets the current video settings.\n\nNote: Fields must be specified in pairs. For example, you cannot set only `baseWidth` without needing to specify `baseHeight`.",
"requestType":"SetVideoSettings",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"requestFields":[
{
"valueName":"fpsNumerator",
"valueType":"Number",
"valueDescription":"Numerator of the fractional FPS value",
"valueRestrictions":">= 1",
"valueOptional":true,
"valueOptionalBehavior":"Not changed"
},
{
"valueName":"fpsDenominator",
"valueType":"Number",
"valueDescription":"Denominator of the fractional FPS value",
"valueRestrictions":">= 1",
"valueOptional":true,
"valueOptionalBehavior":"Not changed"
},
{
"valueName":"baseWidth",
"valueType":"Number",
"valueDescription":"Width of the base (canvas) resolution in pixels",
"valueRestrictions":">= 1, <= 4096",
"valueOptional":true,
"valueOptionalBehavior":"Not changed"
},
{
"valueName":"baseHeight",
"valueType":"Number",
"valueDescription":"Height of the base (canvas) resolution in pixels",
"valueRestrictions":">= 1, <= 4096",
"valueOptional":true,
"valueOptionalBehavior":"Not changed"
},
{
"valueName":"outputWidth",
"valueType":"Number",
"valueDescription":"Width of the output resolution in pixels",
"valueRestrictions":">= 1, <= 4096",
"valueOptional":true,
"valueOptionalBehavior":"Not changed"
},
{
"valueName":"outputHeight",
"valueType":"Number",
"valueDescription":"Height of the output resolution in pixels",
"valueRestrictions":">= 1, <= 4096",
"valueOptional":true,
"valueOptionalBehavior":"Not changed"
}
],
"responseFields":[]
},
{
"description":"Gets the current stream service settings (stream destination).",
"requestType":"GetStreamServiceSettings",
"complexity":4,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"requestFields":[],
"responseFields":[
{
"valueName":"streamServiceType",
"valueType":"String",
"valueDescription":"Stream service type, like `rtmp_custom` or `rtmp_common`"
},
{
"valueName":"streamServiceSettings",
"valueType":"Object",
"valueDescription":"Stream service settings"
}
]
},
{
"description":"Sets the current stream service settings (stream destination).\n\nNote: Simple RTMP settings can be set with type `rtmp_custom` and the settings fields `server` and `key`.",
"requestType":"SetStreamServiceSettings",
"complexity":4,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"requestFields":[
{
"valueName":"streamServiceType",
"valueType":"String",
"valueDescription":"Type of stream service to apply. Example: `rtmp_common` or `rtmp_custom`",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"streamServiceSettings",
"valueType":"Object",
"valueDescription":"Settings to apply to the service",
"description":"Call a request registered to a vendor.\n\nA 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.\nIf a plugin or script implements vendor requests or events, documentation is expected to be provided with them.",
"description":"Creates a new input, adding it as a scene item to the specified scene.",
"requestType":"CreateInput",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"inputs",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene to add the input to as a scene item",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Name of the new input to created",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"inputKind",
"valueType":"String",
"valueDescription":"The kind of input to be created",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"inputSettings",
"valueType":"Object",
"valueDescription":"Settings object to initialize the input with",
"valueRestrictions":null,
"valueOptional":true,
"valueOptionalBehavior":"Default settings used"
},
{
"valueName":"sceneItemEnabled",
"valueType":"Boolean",
"valueDescription":"Whether to set the created scene item to enabled or disabled",
"valueRestrictions":null,
"valueOptional":true,
"valueOptionalBehavior":"True"
}
],
"responseFields":[
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"ID of the newly created scene item"
}
]
},
{
"description":"Removes an existing input.\n\nNote: Will immediately remove all associated scene items.",
"requestType":"RemoveInput",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"inputs",
"requestFields":[
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Name of the input to remove",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Sets the name of an input (rename).",
"requestType":"SetInputName",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"inputs",
"requestFields":[
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Current input name",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"newInputName",
"valueType":"String",
"valueDescription":"New name for the input",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Gets the default settings for an input kind.",
"requestType":"GetInputDefaultSettings",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"inputs",
"requestFields":[
{
"valueName":"inputKind",
"valueType":"String",
"valueDescription":"Input kind to get the default settings for",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"defaultInputSettings",
"valueType":"Object",
"valueDescription":"Object of default settings for the input kind"
}
]
},
{
"description":"Gets the settings of an input.\n\nNote: Does not include defaults. To create the entire settings object, overlay `inputSettings` over the `defaultInputSettings` provided by `GetInputDefaultSettings`.",
"requestType":"GetInputSettings",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"inputs",
"requestFields":[
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Name of the input to get the settings of",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"inputSettings",
"valueType":"Object",
"valueDescription":"Object of settings for the input"
},
{
"valueName":"inputKind",
"valueType":"String",
"valueDescription":"The kind of the input"
}
]
},
{
"description":"Sets the settings of an input.",
"requestType":"SetInputSettings",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"inputs",
"requestFields":[
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Name of the input to set the settings of",
"description":"Gets the audio monitor type of an input.\n\nThe available audio monitor types are:\n\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`",
"description":"Gets the items of a list property from an input's properties.\n\nNote: 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.",
"description":"Presses a button in the properties of an input.\n\nSome known `propertyName` values are:\n\n- `refreshnocache` - Browser source reload button\n\nNote: 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.",
"description":"Gets the status of a media input.\n\nMedia States:\n\n- `OBS_MEDIA_STATE_NONE`\n- `OBS_MEDIA_STATE_PLAYING`\n- `OBS_MEDIA_STATE_OPENING`\n- `OBS_MEDIA_STATE_BUFFERING`\n- `OBS_MEDIA_STATE_PAUSED`\n- `OBS_MEDIA_STATE_STOPPED`\n- `OBS_MEDIA_STATE_ENDED`\n- `OBS_MEDIA_STATE_ERROR`",
"valueDescription":"Total duration of the playing media in milliseconds. `null` if not playing"
},
{
"valueName":"mediaCursor",
"valueType":"Number",
"valueDescription":"Position of the cursor in milliseconds. `null` if not playing"
}
]
},
{
"description":"Sets the cursor position of a media input.\n\nThis request does not perform bounds checking of the cursor position.",
"requestType":"SetMediaInputCursor",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"media inputs",
"requestFields":[
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Name of the media input",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"mediaCursor",
"valueType":"Number",
"valueDescription":"New cursor position to set",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Offsets the current cursor position of a media input by the specified value.\n\nThis request does not perform bounds checking of the cursor position.",
"requestType":"OffsetMediaInputCursor",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"media inputs",
"requestFields":[
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Name of the media input",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"mediaCursorOffset",
"valueType":"Number",
"valueDescription":"Value to offset the current cursor position by",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Triggers an action on a media input.",
"requestType":"TriggerMediaInputAction",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"media inputs",
"requestFields":[
{
"valueName":"inputName",
"valueType":"String",
"valueDescription":"Name of the media input",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"mediaAction",
"valueType":"String",
"valueDescription":"Identifier of the `ObsMediaInputAction` enum",
"description":"Gets a list of all scene items in a scene.\n\nScenes only",
"requestType":"GetSceneItemList",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene to get the items of",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"sceneItems",
"valueType":"Array<Object>",
"valueDescription":"Array of scene items in the scene"
}
]
},
{
"description":"Basically GetSceneItemList, but for groups.\n\nUsing groups at all in OBS is discouraged, as they are very broken under the hood.\n\nGroups only",
"description":"Creates a new scene item using a source.\n\nScenes only",
"requestType":"CreateSceneItem",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene to create the new item in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sourceName",
"valueType":"String",
"valueDescription":"Name of the source to add to the scene",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemEnabled",
"valueType":"Boolean",
"valueDescription":"Enable state to apply to the scene item on creation",
"valueRestrictions":null,
"valueOptional":true,
"valueOptionalBehavior":"True"
}
],
"responseFields":[
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item"
}
]
},
{
"description":"Removes a scene item from a scene.\n\nScenes only",
"requestType":"RemoveSceneItem",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Duplicates a scene item, copying all transform and crop info.\n\nScenes only",
"requestType":"DuplicateSceneItem",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"destinationSceneName",
"valueType":"String",
"valueDescription":"Name of the scene to create the duplicated item in",
"valueRestrictions":null,
"valueOptional":true,
"valueOptionalBehavior":"`sceneName` is assumed"
}
],
"responseFields":[
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the duplicated scene item"
}
]
},
{
"description":"Gets the transform and crop info of a scene item.\n\nScenes and Groups",
"requestType":"GetSceneItemTransform",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"sceneItemTransform",
"valueType":"Object",
"valueDescription":"Object containing scene item transform info"
}
]
},
{
"description":"Sets the transform and crop info of a scene item.",
"requestType":"SetSceneItemTransform",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemTransform",
"valueType":"Object",
"valueDescription":"Object containing scene item transform info to update",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Gets the enable state of a scene item.\n\nScenes and Groups",
"requestType":"GetSceneItemEnabled",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"sceneItemEnabled",
"valueType":"Boolean",
"valueDescription":"Whether the scene item is enabled. `true` for enabled, `false` for disabled"
}
]
},
{
"description":"Sets the enable state of a scene item.\n\nScenes and Groups",
"requestType":"SetSceneItemEnabled",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemEnabled",
"valueType":"Boolean",
"valueDescription":"New enable state of the scene item",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Gets the lock state of a scene item.\n\nScenes and Groups",
"requestType":"GetSceneItemLocked",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"sceneItemLocked",
"valueType":"Boolean",
"valueDescription":"Whether the scene item is locked. `true` for locked, `false` for unlocked"
}
]
},
{
"description":"Sets the lock state of a scene item.\n\nScenes and Group",
"requestType":"SetSceneItemLocked",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemLocked",
"valueType":"Boolean",
"valueDescription":"New lock state of the scene item",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Gets the index position of a scene item in a scene.\n\nAn index of 0 is at the bottom of the source list in the UI.\n\nScenes and Groups",
"requestType":"GetSceneItemIndex",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"sceneItemIndex",
"valueType":"Number",
"valueDescription":"Index position of the scene item"
}
]
},
{
"description":"Sets the index position of a scene item in a scene.\n\nScenes and Groups",
"requestType":"SetSceneItemIndex",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemIndex",
"valueType":"Number",
"valueDescription":"New index position of the scene item",
"description":"Gets the blend mode of a scene item.\n\nBlend modes:\n\n- `OBS_BLEND_NORMAL`\n- `OBS_BLEND_ADDITIVE`\n- `OBS_BLEND_SUBTRACT`\n- `OBS_BLEND_SCREEN`\n- `OBS_BLEND_MULTIPLY`\n- `OBS_BLEND_LIGHTEN`\n- `OBS_BLEND_DARKEN`\n\nScenes and Groups",
"requestType":"GetSceneItemBlendMode",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"valueRestrictions":">= 0",
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"sceneItemBlendMode",
"valueType":"String",
"valueDescription":"Current blend mode"
}
]
},
{
"description":"Sets the blend mode of a scene item.\n\nScenes and Groups",
"requestType":"SetSceneItemBlendMode",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"scene items",
"requestFields":[
{
"valueName":"sceneName",
"valueType":"String",
"valueDescription":"Name of the scene the item is in",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"sceneItemId",
"valueType":"Number",
"valueDescription":"Numeric ID of the scene item",
"description":"Gets an array of all groups in OBS.\n\nGroups in OBS are actually scenes, but renamed and modified. In obs-websocket, we treat them as scenes where we can.",
"description":"Gets the active and show state of a source.\n\n**Compatible with inputs and scenes.**",
"requestType":"GetSourceActive",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"sources",
"requestFields":[
{
"valueName":"sourceName",
"valueType":"String",
"valueDescription":"Name of the source to get the active state of",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[
{
"valueName":"videoActive",
"valueType":"Boolean",
"valueDescription":"Whether the source is showing in Program"
},
{
"valueName":"videoShowing",
"valueType":"Boolean",
"valueDescription":"Whether the source is showing in the UI (Preview, Projector, Properties)"
}
]
},
{
"description":"Gets a Base64-encoded screenshot of a source.\n\nThe `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.\nIf `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source.\n\n**Compatible with inputs and scenes.**",
"requestType":"GetSourceScreenshot",
"complexity":4,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"sources",
"requestFields":[
{
"valueName":"sourceName",
"valueType":"String",
"valueDescription":"Name of the source to take a screenshot of",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"imageFormat",
"valueType":"String",
"valueDescription":"Image compression format to use. Use `GetVersion` to get compatible image formats",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"imageWidth",
"valueType":"Number",
"valueDescription":"Width to scale the screenshot to",
"valueRestrictions":">= 8, <= 4096",
"valueOptional":true,
"valueOptionalBehavior":"Source value is used"
},
{
"valueName":"imageHeight",
"valueType":"Number",
"valueDescription":"Height to scale the screenshot to",
"valueRestrictions":">= 8, <= 4096",
"valueOptional":true,
"valueOptionalBehavior":"Source value is used"
},
{
"valueName":"imageCompressionQuality",
"valueType":"Number",
"valueDescription":"Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use \"default\" (whatever that means, idk)",
"valueRestrictions":">= -1, <= 100",
"valueOptional":true,
"valueOptionalBehavior":"-1"
}
],
"responseFields":[
{
"valueName":"imageData",
"valueType":"String",
"valueDescription":"Base64-encoded screenshot"
}
]
},
{
"description":"Saves a screenshot of a source to the filesystem.\n\nThe `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.\nIf `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source.\n\n**Compatible with inputs and scenes.**",
"description":"Gets information about the current scene transition.",
"requestType":"GetCurrentSceneTransition",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"transitions",
"requestFields":[],
"responseFields":[
{
"valueName":"transitionName",
"valueType":"String",
"valueDescription":"Name of the transition"
},
{
"valueName":"transitionKind",
"valueType":"String",
"valueDescription":"Kind of the transition"
},
{
"valueName":"transitionFixed",
"valueType":"Boolean",
"valueDescription":"Whether the transition uses a fixed (unconfigurable) duration"
},
{
"valueName":"transitionDuration",
"valueType":"Number",
"valueDescription":"Configured transition duration in milliseconds. `null` if transition is fixed"
},
{
"valueName":"transitionConfigurable",
"valueType":"Boolean",
"valueDescription":"Whether the transition supports being configured"
},
{
"valueName":"transitionSettings",
"valueType":"Object",
"valueDescription":"Object of settings for the transition. `null` if transition is not configurable"
}
]
},
{
"description":"Sets the current scene transition.\n\nSmall note: While the namespace of scene transitions is generally unique, that uniqueness is not a guarantee as it is with other resources like inputs.",
"requestType":"SetCurrentSceneTransition",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"transitions",
"requestFields":[
{
"valueName":"transitionName",
"valueType":"String",
"valueDescription":"Name of the transition to make active",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
}
],
"responseFields":[]
},
{
"description":"Sets the duration of the current scene transition, if it is not fixed.",
"description":"Gets the cursor position of the current scene transition.\n\nNote: `transitionCursor` will return 1.0 when the transition is inactive.",
"requestType":"GetCurrentSceneTransitionCursor",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"transitions",
"requestFields":[],
"responseFields":[
{
"valueName":"transitionCursor",
"valueType":"Number",
"valueDescription":"Cursor position, between 0.0 and 1.0"
"description":"Opens a projector for a specific output video mix.\n\nMix types:\n\n- `OBS_WEBSOCKET_VIDEO_MIX_TYPE_PREVIEW`\n- `OBS_WEBSOCKET_VIDEO_MIX_TYPE_PROGRAM`\n- `OBS_WEBSOCKET_VIDEO_MIX_TYPE_MULTIVIEW`\n\nNote: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release.",
"valueDescription":"Monitor index, use `GetMonitorList` to obtain index",
"valueRestrictions":null,
"valueOptional":true,
"valueOptionalBehavior":"-1: Opens projector in windowed mode"
},
{
"valueName":"projectorGeometry",
"valueType":"String",
"valueDescription":"Size/Position data for a windowed projector, in Qt Base64 encoded format. Mutually exclusive with `monitorIndex`",
"valueRestrictions":null,
"valueOptional":true,
"valueOptionalBehavior":"N/A"
}
],
"responseFields":[]
},
{
"description":"Opens a projector for a source.\n\nNote: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release.",
"requestType":"OpenSourceProjector",
"complexity":3,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"ui",
"requestFields":[
{
"valueName":"sourceName",
"valueType":"String",
"valueDescription":"Name of the source to open a projector for",
"valueRestrictions":null,
"valueOptional":false,
"valueOptionalBehavior":null
},
{
"valueName":"monitorIndex",
"valueType":"Number",
"valueDescription":"Monitor index, use `GetMonitorList` to obtain index",
"valueRestrictions":null,
"valueOptional":true,
"valueOptionalBehavior":"-1: Opens projector in windowed mode"
},
{
"valueName":"projectorGeometry",
"valueType":"String",
"valueDescription":"Size/Position data for a windowed projector, in Qt Base64 encoded format. Mutually exclusive with `monitorIndex`",
"description":"The current scene collection has begun changing.\n\nNote: We recommend using this event to trigger a pause of all polling requests, as performing any requests during a\nscene collection change is considered undefined behavior and can cause crashes!",
"eventType":"CurrentSceneCollectionChanging",
"eventSubscription":"Config",
"complexity":1,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"dataFields":[
{
"valueName":"sceneCollectionName",
"valueType":"String",
"valueDescription":"Name of the current scene collection"
}
]
},
{
"description":"The current scene collection has changed.\n\nNote: If polling has been paused during `CurrentSceneCollectionChanging`, this is the que to restart polling.",
"eventType":"CurrentSceneCollectionChanged",
"eventSubscription":"Config",
"complexity":1,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"dataFields":[
{
"valueName":"sceneCollectionName",
"valueType":"String",
"valueDescription":"Name of the new scene collection"
}
]
},
{
"description":"The scene collection list has changed.",
"eventType":"SceneCollectionListChanged",
"eventSubscription":"Config",
"complexity":1,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"config",
"dataFields":[
{
"valueName":"sceneCollections",
"valueType":"Array<String>",
"valueDescription":"Updated list of scene collections"
}
]
},
{
"description":"The current profile has begun changing.",
"description":"The monitor type of an input has changed.\n\nAvailable types are:\n\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`",
"description":"A scene transition has completed fully.\n\nNote: Does not appear to trigger when the transition is interrupted by the user.",
"eventType":"SceneTransitionEnded",
"eventSubscription":"Transitions",
"complexity":2,
"rpcVersion":"1",
"deprecated":false,
"initialVersion":"5.0.0",
"category":"transitions",
"dataFields":[
{
"valueName":"transitionName",
"valueType":"String",
"valueDescription":"Scene transition name"
}
]
},
{
"description":"A scene transition's video has completed fully.\n\nUseful for stinger transitions to tell when the video *actually* ends.\n`SceneTransitionEnded` only signifies the cut point, not the completion of transition playback.\n\nNote: Appears to be called by every transition, regardless of relevance.",
"description":"An event has been emitted from a vendor.\n\nA 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.\nIf a plugin or script implements vendor requests or events, documentation is expected to be provided with them.",