Datasources
Every source of packet and device data in Kismet is a datasource. Typically a datasource is analogous to a network interace, but may encompass other captures such as SDR, serially attached capture systems, or summarized scan data posted to an endpoint.
Datasoruces are defined on startup in kismet.conf
as a source=...
, or on the command line
with -c {source definition}
Supported datasource types
Datasource types are defined by the Kismet server code and plugins.
Clients can use this API to determine if Kismet has been started with required plugins or to display all possible datasource types.
readonly
/datasource/types.json
/datasource/types.ekjson
/datasource/types.prettyjson
GET
Datasource defaults
kismet.conf
, and include options likw default hopping
behavior, hopping speeds, and other generic settings for all datasources.readonly
/datasource/defaults.json
GET
Datasource list
readonly
/datasource/all_sources.json
/datasource/all_sources.ekjson
/datasource/all_sources.prettyjson
GET
Datasource details
readonly
/datasource/by-uuid/{UUID}/source.json
GET
PARAMETERS
UUID
string
REQUIREDSource UUID
Adding datasources
Dynamically add a new datasource at runtime.
New datasources use a complete source definition line,
as if they were defined as a source=
configuration option.
admin
/datasource/add_source.cmd
POST
PARAMETERS
This endpoint takes additional parameters by using a `POST` request and supplying a
JSON document or json
form variable.
You can find more information about API parameters here.
definition
string
REQUIREDThis endpoint will block until the source has been added.
Typically this is instantaneous, but may take several seconds on some configurations.
Setting channels
admin
/datasource/by-uuid/{UUID}/set_channel.cmd
POST
PARAMETERS
UUID
string
REQUIREDSource UUID
PARAMETERS
This endpoint takes additional parameters by using a `POST` request and supplying a
JSON document or json
form variable.
You can find more information about API parameters here.
channel
string
OPTIONALSet a single channel and disable channel hopping.
rate
number
OPTIONALChannel hopping speed, as channels per second. To hop slower than one channel per second,
use the formula hoprate = 1 / (6 / N)
where N is the number of hops per minute.
channels
list of strings
OPTIONALList of channels for hopping
shuffle
number
OPTIONALEnable channel list shuffling
To lock a Wi-Fi source to channel 6 with HT40 enabled:
{
"channel": "6HT40"
}
To set a Wi-Fi source channel hop list, but leave the existing hopping rate:
{
"channels": ["1", "6", "11", "6HT40"]
}
To set a Wi-Fi source channel hop list and change the hop rate:
{
"channels": ["1", "6", "11", "6HT40"],
"hoprate": 5
}
Control channel hopping
Enable hopping on the specified source.
Most useful to enable hopping again after locking to a single channel.
admin
/datasource/by-uuid/{UUID}/set_hop.cmd
POST
PARAMETERS
UUID
string
REQUIREDSource UUID
Close a source
Close a source.
A source will remain closed until re-opened, unless it is a remote capture source. Remote capture sources are re-opened when the remote reconnects.
A closed source is not deleted from the sources list, but will no longer generate packets or consume resources.
admin
/datasource/by-uuid/{UUID}/close_source.cmd
POST
PARAMETERS
UUID
string
REQUIREDSource UUID
Re-open a source
Re-open a closed source.
Re-opening a source uses the existing source definition.
admin
/datasource/by-uuid/{UUID}/open_source.cmd
POST
PARAMETERS
UUID
string
REQUIREDSource UUID
Pausing a source
Pause a source.
Paused sources are not clsoed, but packets received from them will be discarded.
admin
/datasource/by-uuid/{UUID}/pause_source.cmd
POST
PARAMETERS
UUID
string
REQUIREDSource UUID
Resuming a source
Resume a paused source.
Paused sources are not clsoed, but packets received from them will be discarded.
admin
/datasource/by-uuid/{UUID}/resume_source.cmd
POST
PARAMETERS
UUID
string
REQUIREDSource UUID
Interface list
A datasource is a packet source which provides data. An interface is a physical device that
a datasource may capture from, for example wlan0
for a Wi-Fi interface, or a USB address for a
RTL-SDR device.
This endpoint causes Kismet to index available interfaces by calling every datasource helper with the probe option.
The Kismet UI uses this endpoint to provide the runtime list of potential capture devices in the Datasources panel.
This endpoint can be stressful for the Kismet server, depending on the type of hardware Kismet is runnig on. It’s recommended that a UI call this less frequently - for instance once every 10 or 20 seconds.
admin
/datasource/list_interfaces.json
/datasource/list_interfaces.ekjson
/datasource/list_interfaces.prettyjson
GET
Remote capture websocket
Kismet remote capture tools can connect via a legacy TCP connection, or the more modern websocket implementation.
Contained within the websocket is the standard Kismet remote capture protocol.
This endpoint is designed for use with Kismet remote capture tools, and uses a binary message type.
datasource
/datasource/remote/remotesource.ws
WEBSOCKET UPGRADE