obs_input_kind_reference
List OBS input kinds and their default settings to determine which plugin types are loaded and which settings keys are legal, preventing silent misconfiguration when creating inputs.
Instructions
What source types this OBS build supports, and which settings keys each type legally accepts.
Call it with no arguments to list the kinds - that list is also the honest answer to 'which plugins are loaded', since a kind like 'ndi_source' only appears if its plugin initialised. Call it with inputKind to get that kind's default settings object, which is the closest thing to a schema OBS offers: an input's kind decides which settings keys mean anything, and a key that belongs to a different kind is accepted and silently ignored rather than rejected. That silent acceptance is why guessing keys wastes so much time - obs_set_input_settings returns success either way.
Two limits worth knowing. The defaults object lists only keys the plugin registered a default for, so it is a floor and not the full set: dshow_input returns nine keys and video_device_id is not among them, because it has no sensible default. To see the rest, read a WORKING input of the same kind with obs_get_input_settings, and get legal values for the dropdown keys from obs_input_property_items. Second, kind ids carry version suffixes - this build reports color_source_v3, text_gdiplus_v3, slideshow_v2 - and the versioned id is what existing inputs report and what obs_create_input expects. unversioned:true strips the suffixes, which is useful for recognising a kind named in an older config or article, but do not create sources with the stripped names.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| inputKind | No | Omit to list all kinds. Give a versioned kind id (e.g. 'dshow_input', 'color_source_v3') to get that kind's default settings. | |
| unversioned | No | Only affects the list. true strips version suffixes (color_source_v3 -> color_source). Default false, which is the form obs_create_input wants. |