Datasources
Every source of packet and device data in Kismet is a datasource. Typically a datasource is analogous to a network interface, but may encompass other captures such as SDR, serially attached capture systems, or summarized scan data posted to an endpoint.
Datasources 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.prettyjsonGETDatasource defaults
kismet.conf, and include options likw default hopping
behavior, hopping speeds, and other generic settings for all datasources.readonly/datasource/defaults.jsonGETDatasource list
readonly/datasource/all_sources.json/datasource/all_sources.ekjson/datasource/all_sources.prettyjsonGETDatasource details
readonly/datasource/by-uuid/{UUID}/source.jsonGETPARAMETERS
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.cmdPOSTPARAMETERS
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.cmdPOSTPARAMETERS
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.cmdPOSTPARAMETERS
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.cmdPOSTPARAMETERS
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.cmdPOSTPARAMETERS
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.cmdPOSTPARAMETERS
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.cmdPOSTPARAMETERS
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.prettyjsonGETRemote 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.wsWEBSOCKET UPGRADEDisable a source
Disable a source. The source is closed, marked in error with the reason “Source disabled”, and is not re-opened automatically.
Unlike closing a source, a disabled remote capture source is not re-opened when the remote reconnects; incoming connections for it are refused. Use re-open a source to re-enable it.
admin/datasource/by-uuid/{UUID}/disable_source.cmdGET
POSTPARAMETERS
UUID
string
REQUIREDSource UUID
Antennas
Kismet tracks antennas as a combination of a datasource and an antenna number on that datasource, and assigns each a small numerical ID, so that per-antenna signal data can be grouped across sources.
Antennas are only created by datasources which report multiple antennas; this list is typically empty.
readonly/antennas/antennas.json/antennas/antennas.ekjson/antennas/antennas.prettyjsonGET
POSTPARAMETERS
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.
fields
field simplification
OPTIONALKismet can reduce the amount of information being processed and returned by an API by simplifying the fields to only return the data needed by the caller.
You can read more about the field simplification API and how to use it here.
JSON object keyed by antenna ID, of antenna records:
| Field | Content |
|---|---|
kismet.antenna.id | Antenna ID |
kismet.antenna.uuid | Antenna UUID |
kismet.antenna.source_uuid | UUID of the datasource the antenna belongs to |
kismet.antenna.source_antnum | Antenna number on the datasource |
kismet.antenna.power_adjust | Signal adjustment applied to the antenna |