JavaScript OBS API¶
API version 6.6 — the host API SE.Live exposes to page JavaScript running inside OBS.
Converted from JavaScript OBS API Version 6.6.docx — last recorded
API revision 2025-10-07, file last saved 2025-10-09, Word revision 117 of a
document started 2018-05-22. That document is no longer the source of truth;
this tree is.
Looking for how the plug-in itself works?
This reference documents the surface a page sees. The Architecture documentation documents what is behind it — lifecycle, services, the bridge that carries these calls, compositions, outputs, UI, threading and diagnostics.
Start here¶
| Abstract | what this API is |
| Status of this Document | how stable the spec is |
| Conventions | naming, callbacks, error handling |
| General guidelines | how to use the API well |
| Versioning | how API versions are numbered |
| Web Authentication | authenticating a page |
| Goals and Considerations | design rationale |
| Revision History | every change, 1.0 → 6.6 |
Reference¶
window— 104 events and methods on the page's ownwindowwindow.host— 217 calls across 58 groups- Data structures — 70 object types
window.host by group¶
- Properties — 4 calls
- Startup flags — 2 calls
- Cookies — 1 call
- On-boarding — 2 calls
- Logged-in notification — 2 calls
- External browser — 1 call
- Popup window — 3 calls
- Modal dialog — 2 calls
- Non-Modal dialog — 6 calls
- Generic dialog API — 1 call
- Container information — 1 call
- Central widget — 2 calls
- Docking widgets — 13 calls
- Background workers — 3 calls
- Scene collections — 3 calls
- Scenes — 10 calls
- Scene items — 34 calls
- Streaming bandwidth test — 3 calls
- Encoders — 4 calls
- Input source types — 4 calls
- Existing input sources — 3 calls
- Filter source types — 4 calls
- Output settings — 3 calls
- Streaming Outputs — 5 calls
- Recording Outputs — 6 calls
- Replay Buffer Outputs — 6 calls
- Native Integration with Streaming Services — 1 call
- Streaming — 6 calls
- Notification bar — 2 calls
- Output preview area title bar — 2 calls
- Output preview area frame — 2 calls
- Status bar — 1 call
- System resources — 3 calls
- Hotkey bindings — 5 calls
- Host information — 2 calls
- Message bus — 2 calls
- Release groups — 3 calls
- External Scene Data — 3 calls
- HTTP Requests — 1 call
- User interface state — 2 calls
- Menu — 4 calls
- Profiles — 3 calls
- Backup/Restore — 4 calls
- Browser Sources — 1 call
- Razer WYVRN — 2 calls
- Defer settings save — 2 calls
- Invoke API methods in Batch Mode — 1 call
- Synthetic input — 2 calls
- HTTP server — 4 calls
- Scoped Storage — 4 calls
- Audio & Video Composition Encoders — 4 calls
- Audio Compositions — 4 calls
- Video Compositions — 4 calls
- Shared Video Compositions — 6 calls
- Video Composition View Overlays — 3 calls
- Screenshots — 1 call
- Transitions — 4 calls
- Menus — 1 call
- Modules — 2 calls
All window.host calls, alphabetically¶
Calls marked ⚠️ are documented but not registered by the plug-in — deprecated and removed, or never implemented. Open one to see which.
Adding a new API call¶
The tree mirrors the shape of the API, so a new call touches one file:
- Add it to the group file under
host/covering its area —host/scenes.md,host/docking-widgets.md, and so on. Copy a neighbouring entry: a##heading holding the full signature in backticks, then anAvailable since API version Xline, then the description. - If it takes or returns a new object type, add
types/<TypeName>.mdwith aProperty | Type | Descriptiontable. - Add a row to revision-history.md, newest last.
- Add a row to the alphabetical index above.
A new group is a new file under host/, plus a line in the group list and in
host/README.md.
Signatures are the headings, so keep them exact — the index links to them by anchor, and a changed signature silently breaks that link.