Kismet developer documentation
The Kismet REST-like API
REST webserver endpoints
The Kismet REST-like API
Link
API Changes and Updates
Significant changes to the API endpoints
Link
Exploring endpoints
Exploring the REST API should be simple, here's how to get the most out of the endpoints and self-documenting fields.
Link
Serialization types
Data can be serialized in several different ways, as traditional JSON, streaming pseudo-JSON for large queries, and as 'pretty' output for learning the API.
Link
Logins and sessions
Kismet uses a standard login and session cookie system which is easily supported by most HTTP libraries.
Link
Commands
Commands (actionable API calls) use a common method for defining arguments and options.
Link
Keys and MAC addresses
The differences between keys and macs, and optional MAC group matching.
Link
System status
Basic system status and health reporting.
Link
Eventbus socket
Event bus socket
Link
Devices
Device listing, sorting, and related interfaces.
Link
Device views
A common 'device view' API which is used by many components of Kismet to present different views of the device data while retaining identical API calls.
Link
Messages
Kismet exposes the console messages via the messagebus API.
Link
Alerts
The alerts API allows for fetching raised alerts, defining new custom alerts purely via the API interface, and raising alerts via the API interface, allowing external tools to tie into the Kismet alert subsystem.
Link
Channels
Observed channels and channel traffic API.
Link
Datasources
APIs for accessing defined, and potential, datasources, as well as controlling the behavior of datasources.
Link
GPS
Supported GPS devices, defined GPS devices, and current location information.
Link
Packet capture
Access the packet stream live with optional datasource and device filtering.
Link
Filters
Dynamically control filtering options to include or exclude devices and packets; the filtering API is used by multiple components in Kismet to define filters.
Link
Plugins
Information about running Kismet plugins.
Link
Streams
Logging and long-running live exports of data are classified as streams and can be observed and manipulated via the stream API.
Link
Logging
View and control logging attributes live.
Link
Points of interest
Points-of-interest can be tagged live, allowing for integration of physical buttons or other scripts to make a kismetdb entry for future analysis.
Link
KismetDB logs
Kismet stores all of its information in the kismetdb log; by exposing interfaces to the kismetdb log via the REST api, it becomes possible to access not only the current data and live packet streams, but previously captured packets and events.
Link
Phy80211 Wi-Fi
The 802.11 Wi-Fi subsystem defines a set of Wi-Fi specific APIs for accessing information about APs, related devices, and more.
Link
Phy802.11 SSID Scan module
Still under development, the ssidscan module will allow for targetting devices by SSID and automatically searching for behavior.
Link
Phy802.11 Scanning-mode Sources
A simple API for non-packet-capture 802.11 devices to report scanning results to Kismet
Link
SSID views
A dedicated SSID aggregator API
Link
UAV / Drones
Kismet can track additional information about UAV/Drone/Quadcopter devices based on manufacturer, SSID, and packet contents.
Link
PhyBluetooth Scanning-mode Sources
A simple API for non-packet-capture bluetooth scanning results
Link
ADSB
Kismet can track aircraft using the ADSB transponder protocol using additional hardware
Link
Kismet WebUI interfaces
Extending the webui - device data
The web UI has pluggable interfaces for extending the device details window.
Link
Extending the web ui
The web UI can be extended via Javascript and the UI pluggable interface, allowing for alterations and entirely new web UI systems.
Link
General Kismet interfaces
Kismetdb logs
The kismetdb log file is the new unified system for storing data, state, snapshots, devices, and all other info in Kismet.
Link
Pcap-NG GPS
Embedded GPS in pcap-ng
Link
Creating Kismet plugins
Kismet plugins can change server behavior (via C++ plugins), interface behavior (via Javascript), or both
Link
Kismet External HTTP Helper Plugins
Extending Kismet via external helpers in Python and other languages
Link
Kismet C++ and C interfaces
Extending device and data tracking
How to extend the Kismet interface for parsing 802.11 IE tags.
Link
Creating Kismet datasources
How to extend Kismet by creating new datasources
Link
Datasource capframework library
The datasource captureframework C API
Link
Extending device and data tracking
Extending the Kismet C++ data classifier system.
Link
Helper tools
The Kismet external tool API defines how Kismet talks to capture and helper binaries.
Link
Creating tracked components
The tracked_component system is the Kismet internal architecture for introspectable and serializable data storage, and is used to define tracked structures like devices and protocol attributes.
Link